--- /dev/null
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pdpx.main.parameters;
+
+import lombok.Getter;
+import org.onap.policy.common.parameters.ParameterGroupImpl;
+import org.onap.policy.common.parameters.annotations.NotBlank;
+import org.onap.policy.common.parameters.annotations.NotNull;
+
+@NotBlank
+@Getter
+public class XacmlApplicationParameters extends ParameterGroupImpl {
+
+ @NotNull
+ private String applicationPath;
+
+ public XacmlApplicationParameters() {
+ super(XacmlApplicationParameters.class.getSimpleName());
+ }
+
+}
private BusTopicParams policyApiParameters;
@Valid
private TopicParameterGroup topicParameterGroup;
- private String applicationPath;
+ @Valid
+ private XacmlApplicationParameters applicationParameters;
/**
* Create the xacml pdp parameter group.
*/
public XacmlPdpParameterGroup(final String name, final String pdpGroup, final String pdpType,
final RestServerParameters restServerParameters, final BusTopicParams policyApiParameters,
- final TopicParameterGroup topicParameterGroup, final String applicationPath) {
+ final TopicParameterGroup topicParameterGroup, final XacmlApplicationParameters applicationParameters) {
super(name);
this.pdpGroup = pdpGroup;
this.pdpType = pdpType;
this.restServerParameters = restServerParameters;
this.policyApiParameters = policyApiParameters;
this.topicParameterGroup = topicParameterGroup;
- this.applicationPath = applicationPath;
+ this.applicationParameters = applicationParameters;
}
/**
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.onap.policy.pdp.xacml.application.common.XacmlApplicationException;
import org.onap.policy.pdp.xacml.application.common.XacmlApplicationServiceProvider;
+import org.onap.policy.pdpx.main.parameters.XacmlApplicationParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* One time to initialize the applications upon startup.
*/
- public XacmlPdpApplicationManager(Path applicationPath, BusTopicParams policyApiParameters) {
+ public XacmlPdpApplicationManager(XacmlApplicationParameters applicationParameters,
+ BusTopicParams policyApiParameters) {
if (LOGGER.isInfoEnabled()) {
- LOGGER.info("Initialization applications {} {}", applicationPath.toAbsolutePath(), policyApiParameters);
+ LOGGER.info("Initialization applications {} {}", applicationParameters, policyApiParameters);
}
//
// Load service
// Have it initialize at a path
//
try {
- initializeApplicationPath(applicationPath, application, policyApiParameters);
+ initializeApplicationPath(Paths.get(applicationParameters.getApplicationPath()), application,
+ policyApiParameters);
//
// We are initialized
//
package org.onap.policy.pdpx.main.startstop;
-import java.nio.file.Paths;
import java.util.Arrays;
import lombok.Getter;
import lombok.Setter;
try {
var appmgr =
- new XacmlPdpApplicationManager(Paths.get(xacmlPdpParameterGroup.getApplicationPath()),
+ new XacmlPdpApplicationManager(xacmlPdpParameterGroup.getApplicationParameters(),
xacmlPdpParameterGroup.getPolicyApiParameters());
XacmlPdpApplicationManager.setCurrent(appmgr);
}
return map;
}
+
+ /**
+ * Returns a property map for a XacmlApplicationParameters map for test cases.
+ *
+ * @param isEmpty boolean value to represent that object created should be empty or not
+ * @param tempPath Application Path string
+ * @return a property map suitable for constructing an object
+ */
+ public Map<String, Object> getXacmlapplicationParametersMap(boolean isEmpty, String tempPath) {
+ final Map<String, Object> map = new TreeMap<>();
+ if (!isEmpty) {
+ map.put("applicationPath", tempPath);
+ }
+ return map;
+ }
}
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
CommonTestData.PDPX_GROUP, "flavor", restServerParameters, policyApiParameters,
- topicParameterGroup, applicationPath.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertThat(validationResult.getResult()).isNull();
assertTrue(validationResult.isValid());
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
- null, restServerParameters, policyApiParameters, topicParameterGroup,
- applicationPath.getAbsolutePath());
+ null, restServerParameters, policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertEquals(null, pdpxParameters.getName());
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
- applicationPath.getAbsolutePath());
+ xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertEquals("", pdpxParameters.getName());
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
- policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
+ policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertEquals(null, pdpxParameters.getPdpGroup());
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
- policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
+ policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertEquals("", pdpxParameters.getPdpGroup());
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
null, restServerParameters, policyApiParameters,
- topicParameterGroup, applicationPath.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertThat(validationResult.getResult()).contains("\"RestServerParameters\"");
testData.toObject(testData.getPolicyApiParametersMap(true), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
null, restServerParameters, policyApiParameters,
- topicParameterGroup, applicationPath.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertThat(validationResult.getResult()).contains("\"policyApiParameters\"");
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
final TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
final XacmlPdpParameterGroup pdpxParameters =
new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
null, restServerParameters, policyApiParameters,
- topicParameterGroup, applicationPath.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
final ValidationResult validationResult = pdpxParameters.validate();
assertFalse(validationResult.isValid());
assertThat(validationResult.getResult()).contains("\"TopicParameterGroup\"");
}
+
+ @Test
+ public void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
+ final RestServerParameters restServerParameters =
+ testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
+ final BusTopicParams policyApiParameters =
+ testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+ final TopicParameterGroup topicParameterGroup =
+ testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(true,
+ applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
+ final XacmlPdpParameterGroup pdpxParameters =
+ new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
+ null, restServerParameters, policyApiParameters,
+ topicParameterGroup, xacmlApplicationParameters);
+ final ValidationResult validationResult = pdpxParameters.validate();
+ assertFalse(validationResult.isValid());
+ assertThat(validationResult.getResult()).contains("\"XacmlApplicationParameters\"");
+ }
}
import org.onap.policy.pdp.xacml.xacmltest.TestUtils;
import org.onap.policy.pdpx.main.PolicyXacmlPdpException;
import org.onap.policy.pdpx.main.parameters.CommonTestData;
+import org.onap.policy.pdpx.main.parameters.XacmlApplicationParameters;
import org.onap.policy.pdpx.main.parameters.XacmlPdpParameterGroup;
import org.onap.policy.pdpx.main.startstop.Main;
import org.onap.policy.pdpx.main.startstop.XacmlPdpActivator;
policyApiParameters = testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false),
TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ apps.getAbsolutePath().toString()), XacmlApplicationParameters.class);
XacmlPdpParameterGroup params =
new XacmlPdpParameterGroup("XacmlPdpParameters", "XacmlPdpGroup", "xacml", rest, policyApiParameters,
- topicParameterGroup, apps.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
StandardCoder gson = new StandardCoder();
File fileParams = appsFolder.newFile("params.json");
String jsonParams = gson.encode(params);
import org.onap.policy.models.errors.concepts.ErrorResponse;
import org.onap.policy.pdpx.main.PolicyXacmlPdpException;
import org.onap.policy.pdpx.main.parameters.CommonTestData;
+import org.onap.policy.pdpx.main.parameters.XacmlApplicationParameters;
import org.onap.policy.pdpx.main.parameters.XacmlPdpParameterGroup;
import org.onap.policy.pdpx.main.startstop.Main;
import org.onap.policy.pdpx.main.startstop.XacmlPdpActivator;
testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
TopicParameterGroup topicParameterGroup =
testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ apps.getAbsolutePath().toString()), XacmlApplicationParameters.class);
XacmlPdpParameterGroup params =
new XacmlPdpParameterGroup("XacmlPdpParameters", "XacmlPdpGroup", "xacml", rest, policyApiParameters,
- topicParameterGroup, apps.getAbsolutePath());
+ topicParameterGroup, xacmlApplicationParameters);
final Gson gson = new GsonBuilder().create();
File fileParams = appsFolder.newFile("params.json");
String jsonParams = gson.toJson(params);
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
import org.onap.policy.pdp.xacml.application.common.XacmlApplicationException;
+import org.onap.policy.pdpx.main.parameters.CommonTestData;
+import org.onap.policy.pdpx.main.parameters.XacmlApplicationParameters;
import org.onap.policy.xacml.pdp.application.guard.GuardPdpApplication;
import org.onap.policy.xacml.pdp.application.nativ.NativePdpApplication;
import org.onap.policy.xacml.pdp.application.optimization.OptimizationPdpApplication;
private static final BusTopicParams params = new BusTopicParams();
private static Path appsDirectory;
private static ToscaServiceTemplate completedJtst;
+ private static CommonTestData testData = new CommonTestData();
@ClassRule
public static final TemporaryFolder appsFolder = new TemporaryFolder();
// Make up a non existent directory to initialize from
//
Path nonExistentPath = Paths.get(appsFolder.getRoot().getAbsolutePath(), "nonexistent");
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ nonExistentPath.toString()), XacmlApplicationParameters.class);
//
// Create our app manager
//
- XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(nonExistentPath, params);
+ XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
//
// Still creates the manager, but the apps were not able to initialize
//
// Now create the directory
//
Files.createDirectory(nonExistentPath);
- manager = new XacmlPdpApplicationManager(nonExistentPath, params);
+ manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
//
// Now it should have initialized the apps
//
@Test
public void testXacmlPdpApplicationManagerSimple() {
- XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(appsDirectory, params);
+ final XacmlApplicationParameters xacmlApplicationParameters =
+ testData.toObject(testData.getXacmlapplicationParametersMap(false,
+ appsDirectory.toString()), XacmlApplicationParameters.class);
+ XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
//
// Test the basics from the startup
//
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "apps.test",
+ "applicationParameters": {
+ "applicationPath": "apps.test"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"userName": "healthcheck",
"password": "zb!XztG34"
},
- "applicationPath": "src/test/resources/apps",
+ "applicationParameters": {
+ "applicationPath": "src/test/resources/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",
"useHttps": true,
"aaf": false
},
- "applicationPath": "/opt/app/policy/pdpx/apps",
+ "applicationParameters": {
+ "applicationPath": "/opt/app/policy/pdpx/apps"
+ },
"topicParameterGroup": {
"topicSources" : [{
"topic" : "POLICY-PDP-PAP",