From f85f63f52d38ca962fc0e68eae184dd7018dc47b Mon Sep 17 00:00:00 2001 From: mmis Date: Thu, 2 Aug 2018 09:45:44 +0100 Subject: Create interfaces for Policy Distribution Created interfaces and some skeletal implementations. Implememtations to be further developed in subsequent stories Change-Id: If55be78e34c8783451cb9aa755a563bc0850e569 Issue-ID: POLICY-1029 Signed-off-by: mmis --- plugins/forwarding-plugins/pom.xml | 40 +++++++++++++++++++ .../pap/engine/XacmlPapServletPolicyForwarder.java | 37 ++++++++++++++++++ plugins/pom.xml | 5 +++ plugins/reception-plugins/pom.xml | 40 +++++++++++++++++++ .../reception/decoding/pdpx/PdpxPolicy.java | 31 +++++++++++++++ .../decoding/pdpx/PolicyDecoderToscaPdpx.java | 45 ++++++++++++++++++++++ .../handling/sdc/SdcReceptionHandler.java | 44 +++++++++++++++++++++ 7 files changed, 242 insertions(+) create mode 100644 plugins/forwarding-plugins/pom.xml create mode 100644 plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/pap/engine/XacmlPapServletPolicyForwarder.java create mode 100644 plugins/reception-plugins/pom.xml create mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PdpxPolicy.java create mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderToscaPdpx.java create mode 100644 plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/handling/sdc/SdcReceptionHandler.java (limited to 'plugins') diff --git a/plugins/forwarding-plugins/pom.xml b/plugins/forwarding-plugins/pom.xml new file mode 100644 index 00000000..24985bbe --- /dev/null +++ b/plugins/forwarding-plugins/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + org.onap.policy.distribution + plugins + 2.0.0-SNAPSHOT + + + forwarding-plugins + ${project.artifactId} + [${project.parent.artifactId}] module contains plugins for forwarding of policies. + + + + org.onap.policy.distribution + forwarding + ${project.version} + + + diff --git a/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/pap/engine/XacmlPapServletPolicyForwarder.java b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/pap/engine/XacmlPapServletPolicyForwarder.java new file mode 100644 index 00000000..8691a3ad --- /dev/null +++ b/plugins/forwarding-plugins/src/main/java/org/onap/policy/distribution/forwarding/pap/engine/XacmlPapServletPolicyForwarder.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.distribution.forwarding.pap.engine; + +import java.util.Collection; +import org.onap.policy.distribution.forwarding.PolicyForwarder; +import org.onap.policy.distribution.model.Policy; + +/** + * Forwards policies to the XACML PAP Servlet + */ +public class XacmlPapServletPolicyForwarder implements PolicyForwarder { + + @Override + public void forward(Collection policies) { + // Send policies to PAP using common/policy-endpoints + } + +} diff --git a/plugins/pom.xml b/plugins/pom.xml index 0776f2fb..a7077de9 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -31,4 +31,9 @@ ${project.artifactId} The module of Policy Distribution that holds plugins for custom policy reception and forwarding. pom + + + forwarding-plugins + reception-plugins + diff --git a/plugins/reception-plugins/pom.xml b/plugins/reception-plugins/pom.xml new file mode 100644 index 00000000..3ac93083 --- /dev/null +++ b/plugins/reception-plugins/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + org.onap.policy.distribution + plugins + 2.0.0-SNAPSHOT + + + reception-plugins + ${project.artifactId} + [${project.parent.artifactId}] module contains plugins for reception of policies. + + + + org.onap.policy.distribution + reception + ${project.version} + + + diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PdpxPolicy.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PdpxPolicy.java new file mode 100644 index 00000000..14d686be --- /dev/null +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PdpxPolicy.java @@ -0,0 +1,31 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.distribution.reception.decoding.pdpx; + +import org.onap.policy.distribution.model.Policy; +import org.onap.policy.distribution.reception.decoding.PolicyDecoder; + +/** + * A PDP-X Policy, decoded by a {@link PolicyDecoder} + */ +public class PdpxPolicy implements Policy { + +} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderToscaPdpx.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderToscaPdpx.java new file mode 100644 index 00000000..fa993579 --- /dev/null +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/decoding/pdpx/PolicyDecoderToscaPdpx.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.distribution.reception.decoding.pdpx; + +import java.util.Collection; +import java.util.Collections; +import org.onap.policy.distribution.model.PolicyInput; +import org.onap.policy.distribution.model.Tosca; +import org.onap.policy.distribution.reception.decoding.PolicyDecoder; + +/** + * Decodes PDP-X policies from a TOSCA file. + */ +public class PolicyDecoderToscaPdpx implements PolicyDecoder { + + @Override + public Collection decode(Tosca tosca) { + // Add logic for generating the policies from the TOSCA + return Collections.emptySet(); + } + + @Override + public boolean canHandle(PolicyInput policyInput) { + return policyInput.getClass().isAssignableFrom(Tosca.class); + } + +} diff --git a/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/handling/sdc/SdcReceptionHandler.java b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/handling/sdc/SdcReceptionHandler.java new file mode 100644 index 00000000..494f47f6 --- /dev/null +++ b/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/handling/sdc/SdcReceptionHandler.java @@ -0,0 +1,44 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.distribution.reception.handling.sdc; + +import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler; + +/** + * Handles reception of inputs from ONAP Service Design and Creation (SDC) from which policies may + * be decoded. + */ +public class SdcReceptionHandler extends AbstractReceptionHandler { + + @Override + protected void initializeReception(String parameterGroupName) { + // Set up subscription to SDC + } + + // Add functionality for receiving SDC distibutions and invoking AbstractReceptionHandler + // inputReceived() + + @Override + public void destroy() { + // Tear down subscription etc + } + +} -- cgit 1.2.3-korg