diff options
author | mmis <michael.morris@ericsson.com> | 2018-08-02 09:45:44 +0100 |
---|---|---|
committer | mmis <michael.morris@ericsson.com> | 2018-08-02 11:32:24 +0100 |
commit | f85f63f52d38ca962fc0e68eae184dd7018dc47b (patch) | |
tree | a9e2165c4812fe02b9a18fadd95441a7ac2a922b /plugins | |
parent | 37d8ade146096bf343f494163a528f75b2161095 (diff) |
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 <michael.morris@ericsson.com>
Diffstat (limited to 'plugins')
7 files changed, 242 insertions, 0 deletions
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 @@ +<!-- + ============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========================================================= +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.policy.distribution</groupId> + <artifactId>plugins</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> + + <artifactId>forwarding-plugins</artifactId> + <name>${project.artifactId}</name> + <description>[${project.parent.artifactId}] module contains plugins for forwarding of policies.</description> + + <dependencies> + <dependency> + <groupId>org.onap.policy.distribution</groupId> + <artifactId>forwarding</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> 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<Policy> 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 @@ <name>${project.artifactId}</name> <description>The module of Policy Distribution that holds plugins for custom policy reception and forwarding.</description> <packaging>pom</packaging> + + <modules> + <module>forwarding-plugins</module> + <module>reception-plugins</module> + </modules> </project> 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 @@ +<!-- + ============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========================================================= +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.policy.distribution</groupId> + <artifactId>plugins</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> + + <artifactId>reception-plugins</artifactId> + <name>${project.artifactId}</name> + <description>[${project.parent.artifactId}] module contains plugins for reception of policies.</description> + + <dependencies> + <dependency> + <groupId>org.onap.policy.distribution</groupId> + <artifactId>reception</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> +</project> 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<Tosca, PdpxPolicy> { + + @Override + public Collection<PdpxPolicy> 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 + } + +} |