summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--LogParser/pom.xml3
-rw-r--r--ONAP-PAP-REST/pom.xml1
-rw-r--r--ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java3
-rw-r--r--ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java2
-rw-r--r--ONAP-PDP-REST/pom.xml2
-rw-r--r--ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/utils/test/PolicyApiUtilsTest.java268
-rw-r--r--ONAP-SDK-APP/pom.xml5
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java6
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java92
-rw-r--r--PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java43
-rw-r--r--PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java39
-rw-r--r--PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java17
-rw-r--r--PolicyEngineUtils/pom.xml19
13 files changed, 453 insertions, 47 deletions
diff --git a/LogParser/pom.xml b/LogParser/pom.xml
index 0bd21a8de..16c58dd4c 100644
--- a/LogParser/pom.xml
+++ b/LogParser/pom.xml
@@ -34,7 +34,6 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.4.193</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
@@ -70,7 +69,7 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
- <version>2.4</version>
+ <version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
diff --git a/ONAP-PAP-REST/pom.xml b/ONAP-PAP-REST/pom.xml
index 828f466c4..0c04a8600 100644
--- a/ONAP-PAP-REST/pom.xml
+++ b/ONAP-PAP-REST/pom.xml
@@ -190,7 +190,6 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>[1.4.186,)</version>
</dependency>
<dependency>
<groupId>com.github.fge</groupId>
diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java
index fa4bd20f5..39b21f184 100644
--- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java
+++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/components/MicroServicePolicyTest.java
@@ -40,7 +40,6 @@ import java.io.File;
import java.util.Collections;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MicroServiceConfigPolicy.class, CreateNewMicroServiceModel.class})
public class MicroServicePolicyTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
@@ -60,6 +59,7 @@ public class MicroServicePolicyTest {
assertNull(policy.getCorrectPolicyDataObject());
}
+ @PrepareForTest({MicroServiceConfigPolicy.class})
@Test
public void testPrepareToSave() throws Exception {
// Need to mock internal dictionary retrieval
@@ -84,6 +84,7 @@ public class MicroServicePolicyTest {
assertNotNull(model);
}
+ @PrepareForTest({CreateNewMicroServiceModel.class})
@Test
public void testCreateModel() throws Exception {
// Mock file retrieval
diff --git a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java
index 9e9da17a5..3941593e9 100644
--- a/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java
+++ b/ONAP-PAP-REST/src/test/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandlerTest.java
@@ -46,7 +46,6 @@ import java.util.List;
import javax.persistence.EntityManager;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({DeleteHandler.class, XACMLPapServlet.class})
public class DeleteHandlerTest {
@Test
public void testGets() {
@@ -62,6 +61,7 @@ public class DeleteHandlerTest {
assertNotNull(handler);
}
+ @PrepareForTest({DeleteHandler.class, XACMLPapServlet.class})
@Test
public void testDeletes() throws Exception {
// Mock request
diff --git a/ONAP-PDP-REST/pom.xml b/ONAP-PDP-REST/pom.xml
index bd08a0e63..ad7c70c88 100644
--- a/ONAP-PDP-REST/pom.xml
+++ b/ONAP-PDP-REST/pom.xml
@@ -198,7 +198,7 @@
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
- <version>2.5.0</version>
+ <version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.onap.policy.engine</groupId>
diff --git a/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/utils/test/PolicyApiUtilsTest.java b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/utils/test/PolicyApiUtilsTest.java
new file mode 100644
index 000000000..a38603a33
--- /dev/null
+++ b/ONAP-PDP-REST/src/test/java/org/onap/policy/pdp/rest/api/utils/test/PolicyApiUtilsTest.java
@@ -0,0 +1,268 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP-PDP-REST
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdp.rest.api.utils.test;
+
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+
+import org.json.JSONObject;
+import org.junit.Test;
+import org.onap.policy.pdp.rest.api.utils.PolicyApiUtils;
+
+public class PolicyApiUtilsTest {
+
+ @Test
+ public void testValidateDirectoryJsonFields() {
+
+ String dictonaryAction = "Action";
+
+
+ JsonObject jsonObjAttrGood = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+
+ JsonObject jsonObjAttrNull = Json.createObjectBuilder().add("attributeName", "").build();
+ JsonObject jsonObjAttrBad = Json.createObjectBuilder().add("attributeName", "succ ess").build();
+ JsonObject jsonObjectMissingAttrName = Json.createObjectBuilder().add("foo", "bar").build();
+
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGood, dictonaryAction).contains("success"));
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrNull, dictonaryAction).contains("No Attribute Name provided"));
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrBad, dictonaryAction).contains("Invalid Attribute Name"));
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjectMissingAttrName, dictonaryAction).contains("Missing attributeName"));
+
+ /* "type" parameter variations. */
+ JsonObject jsonObjAttrGoodTemp = jsonObjAttrGood;
+
+ //null/empty type
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Type provided"));
+
+ //missing type
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing type key in the dictionaryJson parameter"));
+
+ //invalid type
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "INVALID")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Invalid Type value"));
+
+ /* "method" parameter variations. */
+ jsonObjAttrGoodTemp = jsonObjAttrGood;
+
+ //null/empty method
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Method provided"));
+
+ //missing method
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing method key in the dictionaryJson parameter"));
+
+ //valid method
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
+
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "PUT")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
+
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "POST")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
+
+
+ //invalid method
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "INVALID")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Invalid Method value"));
+
+
+ /* url parameter variations */
+ jsonObjAttrGoodTemp = jsonObjAttrGood;
+
+ //null/empty url
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No URL provided"));
+
+ //missing url
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("body", "foobody")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing url key in the dictionaryJson parameter"));
+
+ /* body parameter variations */
+ jsonObjAttrGoodTemp = jsonObjAttrGood;
+
+ //null body
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Body provided"));
+
+ //missing body
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .build();
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing body key in the dictionaryJson parameter"));
+
+
+ /*headers parameter variations*/
+ JsonObject jsonObjOption;
+ JsonObject jsonObjNumber;
+ JsonArray jsonArrayHeaders;
+
+ //missing number headers
+ jsonObjOption = Json.createObjectBuilder().add("option","foobar").build();
+ //jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
+
+ jsonArrayHeaders = Json.createArrayBuilder()
+ .add(jsonObjOption)
+ //.add(jsonObjNumber)
+ .build();
+
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .add("headers", jsonArrayHeaders)
+ .build();
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing number key in the headers list of the dictionaryJson parameter."));
+
+ //missing options headers
+ jsonObjOption = Json.createObjectBuilder().add("option","foobar").build();
+ jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
+
+ jsonArrayHeaders = Json.createArrayBuilder()
+ //.add(jsonObjOption)
+ .add(jsonObjNumber)
+ .build();
+
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .add("headers", jsonArrayHeaders)
+ .build();
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing option key in the headers list of the dictionaryJson parameter."));
+
+ //null option
+ jsonObjOption = Json.createObjectBuilder().add("option","").build();
+ jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
+
+ jsonArrayHeaders = Json.createArrayBuilder()
+ .add(jsonObjOption)
+ .add(jsonObjNumber)
+ .build();
+
+ jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
+ .add("type", "REST")
+ .add("method", "GET")
+ .add("url", "http://foobar.com")
+ .add("body", "foobody")
+ .add("headers", jsonArrayHeaders)
+ .build();
+
+ assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing required Option value"));
+
+ //null number can't be tested
+
+ }
+
+ @Test
+ public void testStringToJsonObject() {
+ String jsonString = "{\"foo\":\"bar\"}";
+ JsonObject obj = PolicyApiUtils.stringToJsonObject(jsonString);
+ assertTrue(obj.get("foo").toString().equals("\"bar\""));
+ }
+
+ @Test
+ public void testIsNumeric() {
+ assertFalse(PolicyApiUtils.isNumeric("notNumeric"));
+ assertTrue(PolicyApiUtils.isNumeric("2"));
+ }
+
+
+}
diff --git a/ONAP-SDK-APP/pom.xml b/ONAP-SDK-APP/pom.xml
index 687e5b3a2..9e6f1b21c 100644
--- a/ONAP-SDK-APP/pom.xml
+++ b/ONAP-SDK-APP/pom.xml
@@ -279,11 +279,6 @@
<artifactId>epsdk-workflow</artifactId>
<version>${epsdk.version}</version>
</dependency>
- <dependency>
- <groupId>com.att.eelf</groupId>
- <artifactId>eelf-core</artifactId>
- <version>0.0.1</version>
- </dependency>
<!-- bridge to implement commons-logging using slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
index 9498529af..4d549fea2 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
@@ -1123,7 +1123,11 @@ public class PolicyManagerServlet extends HttpServlet {
SimpleBindings peParams = new SimpleBindings();
peParams.put("oldPolicySplit_1", oldPolicySplit[1]);
peParams.put("oldPolicySplit_0", oldPolicySplit[0]);
- queryData = controller.getDataByQuery(policyEntityquery, peParams);
+ if(PolicyController.isjUnit()){
+ queryData = controller.getDataByQuery(policyEntityquery, null);
+ }else{
+ queryData = controller.getDataByQuery(policyEntityquery, peParams);
+ }
if(!queryData.isEmpty()){
entity = (PolicyEntity) queryData.get(0);
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
index be0a92e55..06a2bb98e 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
@@ -31,7 +31,6 @@ import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.IOUtils;
@@ -53,6 +52,7 @@ import org.onap.policy.rest.jpa.PolicyVersion;
import org.onap.policy.rest.jpa.UserInfo;
import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.mock.web.MockHttpServletResponse;
public class PolicyManagerServletTest extends Mockito{
@@ -64,15 +64,16 @@ public class PolicyManagerServletTest extends Mockito{
private static List<Object> policyEditorScopes;
private static List<Object> policyVersion;
private static CommonClassDao commonClassDao;
+ private ConfigurationDataEntity configurationEntity;
private HttpServletRequest request;
- private HttpServletResponse response;
+ private MockHttpServletResponse response;
@Before
public void setUp() throws Exception{
logger.info("setUp: Entering");
request = mock(HttpServletRequest.class);
- response = mock(HttpServletResponse.class);
+ response = new MockHttpServletResponse();
PolicyController.setjUnit(true);
UserInfo userinfo = new UserInfo();
@@ -103,7 +104,7 @@ public class PolicyManagerServletTest extends Mockito{
entity.setPolicyName("Config_SampleTest.1.xml");
entity.setPolicyData(policyContent);
entity.setScope("com");
- ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
+ configurationEntity = new ConfigurationDataEntity();
configurationEntity.setConfigBody("Sample Test");
configurationEntity.setConfigType("OTHER");
configurationEntity.setConfigurationName("com.Config_SampleTest1206.1.txt");
@@ -139,6 +140,7 @@ public class PolicyManagerServletTest extends Mockito{
user.setOrgUserId("Test");
Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
+ commonClassDao = mock(CommonClassDao.class);
}
@@ -608,4 +610,86 @@ public class PolicyManagerServletTest extends Mockito{
}
}
}
+
+ @Test
+ public void testAddScope(){
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ PolicyController controller = mock(PolicyController.class);
+ List<BufferedReader> readers = new ArrayList<>();
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
+ for(int i=0; i<readers.size(); i++){
+ try {
+ when(request.getReader()).thenReturn(readers.get(i));
+ PolicyManagerServlet.setPolicyController(controller);
+ servlet.doPost(request, response);
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+ } catch (Exception e1) {
+ logger.error("Exception Occured"+e1);
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void testClone(){
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ PolicyController controller = mock(PolicyController.class);
+ List<BufferedReader> readers = new ArrayList<>();
+ when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName", "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null)).thenReturn(basePolicyData);
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml', newPath: 'com.Config_testClone.1.xml'}}")));
+ for(int i=0; i<readers.size(); i++){
+ try {
+ when(request.getReader()).thenReturn(readers.get(i));
+ PolicyManagerServlet.setPolicyController(controller);
+ servlet.doPost(request, response);
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+ } catch (Exception e1) {
+ logger.error("Exception Occured"+e1);
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void testRename(){
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ PolicyController controller = mock(PolicyController.class);
+ List<BufferedReader> readers = new ArrayList<>();
+ when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName", "com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null)).thenReturn(basePolicyData);
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml', newPath: 'com.Config_testClone.1.xml'}}")));
+ for(int i=0; i<readers.size(); i++){
+ try {
+ when(request.getReader()).thenReturn(readers.get(i));
+ PolicyManagerServlet.setPolicyController(controller);
+ servlet.doPost(request, response);
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+ } catch (Exception e1) {
+ logger.error("Exception Occured"+e1);
+ fail();
+ }
+ }
+ }
+
+ @Test
+ public void testRenameScope(){
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ PolicyController controller = mock(PolicyController.class);
+ List<BufferedReader> readers = new ArrayList<>();
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
+ for(int i=0; i<readers.size(); i++){
+ try {
+ when(request.getReader()).thenReturn(readers.get(i));
+ PolicyManagerServlet.setPolicyController(controller);
+ servlet.doPost(request, response);
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
+ } catch (Exception e1) {
+ logger.error("Exception Occured"+e1);
+ fail();
+ }
+ }
+ }
}
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java b/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
index 0d224cee0..b8b077c99 100644
--- a/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
+++ b/PolicyEngineAPI/src/main/java/org/onap/policy/api/PolicyEngine.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* PolicyEngineAPI
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@ package org.onap.policy.api;
import java.util.Collection;
import java.util.Map;
+import java.util.Properties;
import java.util.UUID;
import javax.json.JsonObject;
@@ -36,11 +37,20 @@ import org.onap.policy.std.StdPolicyEngine;
* @version 2.0
*/
public class PolicyEngine{
- private String propertyFilePath = null;
private final StdPolicyEngine stdPolicyEngine;
private NotificationScheme scheme = null;
private NotificationHandler handler = null;
+ /**
+ * PolicyEngine Constructor with <code>Properties</code> structure
+ *
+ * @param properties the <code>Properties</code> structure containing the Policy engine parameters
+ * @throws PolicyEngineException PolicyEngine Exception
+ */
+ public PolicyEngine(final Properties properties) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(properties, (String)null);
+ }
+
/**
* PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
*
@@ -48,22 +58,31 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath, (String)null);
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname, (String)null);
}
/**
- * PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
+ * PolicyEngine Constructor with <code>Properties</code> structure
*
- * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname
+ * @param properties the <code>Properties</code> structure containing the Policy engine parameters
* @param clientKey depicts String format of Password/ Client_Key.
* @throws PolicyEngineException PolicyEngine Exception
*/
- public PolicyEngine(final String propertiesFilePathname, final String clientKey) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath, clientKey);
+ public PolicyEngine(final Properties properties, final String clientKey) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(properties, clientKey);
}
+ /**
+ * PolicyEngine Constructor with <code>String</code> format of propertiesFilePathname
+ *
+ * @param propertiesFilePathname the <code>String</code> format of the propertiesFilePathname
+ * @param clientKey depicts String format of Password/ Client_Key.
+ * @throws PolicyEngineException PolicyEngine Exception
+ */
+ public PolicyEngine(final String propertiesFilePathname, final String clientKey) throws PolicyEngineException {
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname, clientKey);
+ }
+
/**
* PolicyEngine Constructor with <code>String</code> format of PropertiesFilePathname and <code>NotificationScheme</code>
*
@@ -72,9 +91,8 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname, final NotificationScheme scheme) throws PolicyEngineException{
- this.propertyFilePath = propertiesFilePathname;
this.scheme = scheme;
- this.stdPolicyEngine = new StdPolicyEngine(this.propertyFilePath, this.scheme);
+ this.stdPolicyEngine = new StdPolicyEngine(propertiesFilePathname, this.scheme);
}
/**
@@ -86,10 +104,9 @@ public class PolicyEngine{
* @throws PolicyEngineException PolicyEngine Exception
*/
public PolicyEngine(final String propertiesFilePathname, final NotificationScheme scheme, final NotificationHandler handler) throws PolicyEngineException {
- this.propertyFilePath = propertiesFilePathname ;
this.scheme = scheme;
this.handler = handler;
- this.stdPolicyEngine= new StdPolicyEngine(this.propertyFilePath,this.scheme,this.handler);
+ this.stdPolicyEngine= new StdPolicyEngine(propertiesFilePathname,this.scheme,this.handler);
}
/**
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
index 3d3eceead..2349c2e2f 100644
--- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
+++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* PolicyEngineAPI
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -175,6 +175,13 @@ public class StdPolicyEngine {
public StdPolicyEngine(final String propertyFilePath, final String clientKey) throws PolicyEngineException {
setProperty(propertyFilePath, clientKey);
}
+
+ /*
+ * Taking the Property structure even if it null.
+ */
+ public StdPolicyEngine(final Properties properties, final String clientKey) throws PolicyEngineException {
+ setProperty(properties, clientKey);
+ }
/*
* Taking the Notification Constructor.
@@ -840,14 +847,22 @@ public class StdPolicyEngine {
throw new PolicyEngineException(
XACMLErrorConstants.ERROR_DATA_ISSUE + "Error NO PropertyFile Path provided");
}
-
final Properties prop = getProperties(propertyFilePath);
+ setProperty(prop,clientKey);
+ }
+
+ private void setProperty(final Properties properties, String clientKey) throws PolicyEngineException {
+ if (properties == null) {
+ throw new PolicyEngineException(
+ XACMLErrorConstants.ERROR_DATA_ISSUE + "NO properties provided, the value is NULL");
+ }
+
// UEB and DMAAP Settings
- final String notificationTypeValue = prop.getProperty(NOTIFICATION_TYPE_PROP_NAME);
- final String serverList = prop.getProperty(NOTIFICATION_SERVERS_PROP_NAME);
- topic = prop.getProperty(NOTIFICATION_TOPIC_PROP_NAME);
- apiKey = prop.getProperty(UEB_API_KEY_PROP_NAME);
- apiSecret = prop.getProperty(UEB_API_SECRET_PROP_NAME);
+ final String notificationTypeValue = properties.getProperty(NOTIFICATION_TYPE_PROP_NAME);
+ final String serverList = properties.getProperty(NOTIFICATION_SERVERS_PROP_NAME);
+ topic = properties.getProperty(NOTIFICATION_TOPIC_PROP_NAME);
+ apiKey = properties.getProperty(UEB_API_KEY_PROP_NAME);
+ apiSecret = properties.getProperty(UEB_API_SECRET_PROP_NAME);
setNotificationType(notificationTypeValue, DEFAULT_NOTIFICATION);
@@ -867,9 +882,9 @@ public class StdPolicyEngine {
}
// Client ID Authorization Settings.
- final String clientID = prop.getProperty(CLIENT_ID_PROP_NAME);
+ final String clientID = properties.getProperty(CLIENT_ID_PROP_NAME);
if (clientKey == null) {
- clientKey = getClientKeyFromProperties(prop);
+ clientKey = getClientKeyFromProperties(properties);
}
if (clientID == null || clientKey == null || clientID.isEmpty() || clientKey.isEmpty()) {
LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS
@@ -880,12 +895,12 @@ public class StdPolicyEngine {
setClientId(clientID.trim());
setClientKey(clientKey.trim());
}
- setEnvironment(prop);
+ setEnvironment(properties);
// Initializing the values.
init();
- readPdpProperites(prop);
+ readPdpProperites(properties);
// Get JUNIT property from properties file when running tests
- checkJunit(prop);
+ checkJunit(properties);
}
private void readPdpProperites(final Properties prop) throws PolicyEngineException {
diff --git a/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java b/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
index d4c1012cf..1218f1914 100644
--- a/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
+++ b/PolicyEngineAPI/src/test/java/org/onap/policy/std/StdPolicyEngineTest.java
@@ -142,6 +142,16 @@ public class StdPolicyEngineTest {
assertEquals(Arrays.asList(UEB, DMAAP), policyEngine.getNotificationType());
assertEquals(Arrays.asList(SERVER_NAME, SERVER_NAME), policyEngine.getNotificationURLList());
}
+
+ @Test
+ public void testStdPolicyEngineWithPropertiesInitialize_noException() throws Exception {
+ final StdPolicyEngine policyEngine = new StdPolicyEngine(getDefaultProperties(), (String) null);
+ policyEngine.setScheme(NotificationScheme.MANUAL_NOTIFICATIONS);
+ assertEquals("TEST", StdPolicyEngine.getEnvironment());
+ assertEquals("http://localhost:8092/pdp/", StdPolicyEngine.getPDPURL());
+ assertEquals(Arrays.asList(UEB, DMAAP), policyEngine.getNotificationType());
+ assertEquals(Arrays.asList(SERVER_NAME, SERVER_NAME), policyEngine.getNotificationURLList());
+ }
@Test
public void testStdPolicyEngineInitializeWithSingleServerName_noException() throws Exception {
@@ -194,7 +204,12 @@ public class StdPolicyEngineTest {
@Test(expected = PolicyEngineException.class)
public void testStdPolicyEngineInitialize_NullArguments_Exception() throws Exception {
- new StdPolicyEngine(null, (String) null);
+ new StdPolicyEngine((String)null, (String) null);
+ }
+
+ @Test(expected = PolicyEngineException.class)
+ public void testStdPolicyEngineWithPropertiesInitialize_NullArguments_Exception() throws Exception {
+ new StdPolicyEngine((Properties)null, (String) null);
}
@Test(expected = PolicyEngineException.class)
diff --git a/PolicyEngineUtils/pom.xml b/PolicyEngineUtils/pom.xml
index 9e2e13b15..e7196c511 100644
--- a/PolicyEngineUtils/pom.xml
+++ b/PolicyEngineUtils/pom.xml
@@ -88,15 +88,20 @@
<version>4.11</version>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.mariadb.jdbc</groupId>
- <artifactId>mariadb-java-client</artifactId>
- <version>1.2.3</version>
+ <!--
+ CLM security fix - force use of xstream
+ Remove this if a new version of drools-verifier is upgraded
+ that upgrades to xstream.
+ -->
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.4.10</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-verifier</artifactId>
- <version>6.3.0.Final</version>
+ <version>6.5.0.Final</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
@@ -106,6 +111,10 @@
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>