add subplugin field support and new Cloud Artifact class 17/83917/1
authorliboNet <libo.zhu@intel.com>
Tue, 2 Apr 2019 18:26:05 +0000 (02:26 +0800)
committerliboNet <libo.zhu@intel.com>
Tue, 2 Apr 2019 18:26:05 +0000 (02:26 +0800)
. add subplugin field to integrate with Distribution framework
. add new Cloud Artifact which is to be used by subplugin like k8s
. update test .json file to include reception and forward fields
. add dummy test class to ensure the flow works as expected
. fix typos

Change-Id: I9d69d88e448a18247e19b3b7a6062b20814b5f8c
Issue-ID: MULTICLOUD-512
Signed-off-by: liboNet <libo.zhu@intel.com>
27 files changed:
artifactbroker/forwarding/src/main/java/org/onap/policy/distribution/forwarding/ArtifactForwarder.java
artifactbroker/main/pom.xml
artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParameterGroup.java [new file with mode: 0644]
artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParametersJsonAdapter.java [new file with mode: 0644]
artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java
artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java
artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarder.java [new file with mode: 0644]
artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarderParameterGroup.java [new file with mode: 0644]
artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandler.java [new file with mode: 0644]
artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandlerParameterGroup.java [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/BadParameters.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json
artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_EmptyReceptionHandler.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json
artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoPolicyForwarder.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoReceptionHandler.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/EmptyParameters.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/InvalidParameters.json [new file with mode: 0644]
artifactbroker/main/src/test/resources/parameters/NoParameters.json [new file with mode: 0644]
artifactbroker/model/pom.xml
artifactbroker/model/src/main/java/org/onap/policy/distribution/model/CloudArtifact.java
artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuleModel.java [moved from artifactbroker/model/src/main/java/org/onap/policy/distribution/model/VfModuelModel.java with 86% similarity]
artifactbroker/plugins/reception-plugins/src/main/java/org/onap/policy/distribution/reception/handling/sdc/SdcReceptionHandler.java
artifactbroker/plugins/reception-plugins/src/test/java/org/onap/policy/distribution/reception/handling/sdc/DummyArtifactForwarder.java
artifactbroker/pom.xml
artifactbroker/reception/src/main/java/org/onap/policy/distribution/reception/handling/AbstractReceptionHandler.java
artifactbroker/reception/src/test/java/org/onap/policy/distribution/reception/handling/DummyArtifactForwarder.java

index 7e0d42b..ff6d97e 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.policy.distribution.forwarding;
 
 import java.util.Collection;
 import org.onap.sdc.api.notification.IArtifactInfo;
 
 import java.util.Collection;
 import org.onap.sdc.api.notification.IArtifactInfo;
+import org.onap.policy.distribution.model.PolicyInput;
 
 /**
  * Forwards polices.
 
 /**
  * Forwards polices.
@@ -49,6 +50,6 @@ public interface ArtifactForwarder {
      * @param policies the policies to forward
      * @throws ArtifactForwardingException if an error occurs when forwarding the given Artifact
      */
      * @param policies the policies to forward
      * @throws ArtifactForwardingException if an error occurs when forwarding the given Artifact
      */
-    void forward(Collection<IArtifactInfo> artifacts) throws ArtifactForwardingException;
+    void forward(PolicyInput policyInput) throws ArtifactForwardingException;
 
 }
 
 }
index db1c855..4e0ecc0 100644 (file)
     <name>${project.artifactId}</name>
     <description>The main module of Policy Distribution that handles startup, lifecycle management, and parameters.</description>
 
     <name>${project.artifactId}</name>
     <description>The main module of Policy Distribution that handles startup, lifecycle management, and parameters.</description>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.multicloud.framework</groupId>
+            <artifactId>multicloud-framework-artifactbroker-reception</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
     <build>
         <resources>
             <!-- Output the version of the distribution service -->
     <build>
         <resources>
             <!-- Output the version of the distribution service -->
diff --git a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParameterGroup.java b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParameterGroup.java
new file mode 100644 (file)
index 0000000..6a1fe79
--- /dev/null
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.main.parameters;
+
+import org.onap.policy.common.parameters.ParameterGroup;
+
+/**
+ * Base class of all {@link ParameterGroup} classes for configuration parameters for
+ * {@link ArtifactForwarder} classes.
+ */
+public abstract class ArtifactForwarderConfigurationParameterGroup implements ParameterGroup {
+
+    private String name;
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+}
diff --git a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParametersJsonAdapter.java b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParametersJsonAdapter.java
new file mode 100644 (file)
index 0000000..c63056d
--- /dev/null
@@ -0,0 +1,81 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019-2020 Intel. 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.main.parameters;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import java.lang.reflect.Type;
+import org.slf4j.ext.XLogger;
+import org.slf4j.ext.XLoggerFactory;
+
+/**
+ * This class deserialises policy forwarder parameters from JSON.
+ */
+public class ArtifactForwarderConfigurationParametersJsonAdapter
+        implements JsonDeserializer<ArtifactForwarderConfigurationParameterGroup> {
+    private static final XLogger LOGGER =
+            XLoggerFactory.getXLogger(ArtifactForwarderConfigurationParametersJsonAdapter.class);
+
+    private static final String PARAMETER_CLASS_NAME = "parameterClassName";
+    private static final String Artifact_FORWARDER_PARAMETERS = "parameters";
+
+    @Override
+    public ArtifactForwarderConfigurationParameterGroup deserialize(final JsonElement json, final Type typeOfT,
+            final JsonDeserializationContext context) {
+        final JsonObject jsonObject = json.getAsJsonObject();
+
+        final String artifactForwarderParameterClassName = getParameterGroupClassName(jsonObject);
+        Class<?> artifactForwarderParameterClass = getParameterGroupClass(artifactForwarderParameterClassName);
+
+        return context.deserialize(jsonObject.get(Artifact_FORWARDER_PARAMETERS), artifactForwarderParameterClass);
+    }
+
+    private String getParameterGroupClassName(final JsonObject jsonObject) {
+        final JsonPrimitive classNameJsonPrimitive = ((JsonPrimitive) jsonObject.get(PARAMETER_CLASS_NAME));
+
+        if (classNameJsonPrimitive == null || classNameJsonPrimitive.getAsString().length() == 0) {
+            final String errorMessage = "parameter \"" + PARAMETER_CLASS_NAME + "\" value \""
+                    + (classNameJsonPrimitive != null ? classNameJsonPrimitive.getAsString() : "null")
+                    + "\" invalid in JSON file";
+            LOGGER.warn(errorMessage);
+            throw new IllegalArgumentException(errorMessage);
+        }
+        return classNameJsonPrimitive.getAsString().replaceAll("\\s+", "");
+    }
+
+    private Class<?> getParameterGroupClass(final String artifactForwarderParameterClassName) {
+        Class<?> artifactForwarderParameterClass = null;
+        try {
+            artifactForwarderParameterClass = Class.forName(artifactForwarderParameterClassName);
+        } catch (final ClassNotFoundException e) {
+            final String errorMessage = "parameter \"" + PARAMETER_CLASS_NAME + "\" value \""
+                    + artifactForwarderParameterClassName + "\", could not find class";
+            LOGGER.warn(errorMessage, e);
+            throw new IllegalArgumentException(errorMessage, e);
+        }
+        return artifactForwarderParameterClass;
+    }
+
+}
index d034e5e..5a588f8 100644 (file)
@@ -28,6 +28,8 @@ import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.common.parameters.ParameterGroup;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.utils.validation.ParameterValidationUtils;
 import org.onap.policy.common.parameters.ParameterGroup;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.utils.validation.ParameterValidationUtils;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
  * Class to hold all parameters needed for Distribution component.
 
 /**
  * Class to hold all parameters needed for Distribution component.
@@ -38,6 +40,11 @@ public class DistributionParameterGroup implements ParameterGroup {
     // @formatter:off
     private String name;
     private RestServerParameters restServerParameters;
     // @formatter:off
     private String name;
     private RestServerParameters restServerParameters;
+    private Map<String, ReceptionHandlerParameters> receptionHandlerParameters;
+    private Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters
+        = new LinkedHashMap<>();
+    private Map<String, ArtifactForwarderConfigurationParameterGroup> artifactForwarderConfigurationParameters
+        = new LinkedHashMap<>();
     // @formatter:on
 
     /**
     // @formatter:on
 
     /**
@@ -45,9 +52,15 @@ public class DistributionParameterGroup implements ParameterGroup {
      *
      * @param name the parameter group name
      */
      *
      * @param name the parameter group name
      */
-    public DistributionParameterGroup(final String name, final RestServerParameters restServerParameters) {
+    public DistributionParameterGroup(final String name, final RestServerParameters restServerParameters,
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters,
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters,
+        final Map<String, ArtifactForwarderConfigurationParameterGroup> artifactForwarderConfigurationParameters) {
         this.name = name;
         this.restServerParameters = restServerParameters;
         this.name = name;
         this.restServerParameters = restServerParameters;
+        this.receptionHandlerParameters = receptionHandlerParameters;
+        this.receptionHandlerConfigurationParameters = receptionHandlerConfigurationParameters;
+        this.artifactForwarderConfigurationParameters = artifactForwarderConfigurationParameters;
     }
 
     /**
     }
 
     /**
@@ -70,6 +83,15 @@ public class DistributionParameterGroup implements ParameterGroup {
         this.name = name;
     }
 
         this.name = name;
     }
 
+    /**
+     * Return the receptionHandlerParameters of this parameter group instance.
+     *
+     * @return the receptionHandlerParameters
+     */
+    public Map<String, ReceptionHandlerParameters> getReceptionHandlerParameters() {
+        return receptionHandlerParameters;
+    }
+
     /**
      * Return the restServerParameters of this parameter group instance.
      *
     /**
      * Return the restServerParameters of this parameter group instance.
      *
@@ -79,6 +101,44 @@ public class DistributionParameterGroup implements ParameterGroup {
         return restServerParameters;
     }
 
         return restServerParameters;
     }
 
+    /**
+     * Gets the reception handler configuration parameter map.
+     *
+     * @return the reception handler configuration parameter map
+     */
+    public Map<String, ReceptionHandlerConfigurationParameterGroup> getReceptionHandlerConfigurationParameters() {
+        return receptionHandlerConfigurationParameters;
+    }
+
+    /**
+     * Sets the reception handler configuration parameter map.
+     *
+     * @param receptionHandlerConfigurationParameters the reception handler configuration parameters
+     */
+    public void setReceptionHandlerConfigurationParameters(
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters) {
+        this.receptionHandlerConfigurationParameters = receptionHandlerConfigurationParameters;
+    }
+
+    /**
+     * Gets the policy forwarder configuration parameter map.
+     *
+     * @return the policy forwarder configuration parameter map
+     */
+    public Map<String, ArtifactForwarderConfigurationParameterGroup> getArtifactForwarderConfigurationParameters() {
+        return artifactForwarderConfigurationParameters;
+    }
+
+    /**
+     * Sets the policy forwarder configuration parameter map.
+     *
+     * @param artifactForwarderConfigurationParameters the policy forwarder configuration parameters
+     */
+    public void setArtifactForwarderConfigurationParameters(
+        final Map<String, ArtifactForwarderConfigurationParameterGroup> artifactForwarderConfigurationParameters) {
+        this.artifactForwarderConfigurationParameters = artifactForwarderConfigurationParameters;
+    }
+
     /**
      * Validate the parameter group.
      *
     /**
      * Validate the parameter group.
      *
@@ -96,7 +156,32 @@ public class DistributionParameterGroup implements ParameterGroup {
         } else {
             validationResult.setResult("restServerParameters", restServerParameters.validate());
         }
         } else {
             validationResult.setResult("restServerParameters", restServerParameters.validate());
         }
+        validateReceptionHandlers(validationResult);
+        validateForwarderConfigurations(validationResult);
         return validationResult;
     }
 
         return validationResult;
     }
 
+    private void validateReceptionHandlers(final GroupValidationResult validationResult) {
+        if (receptionHandlerParameters == null || receptionHandlerParameters.size() == 0) {
+            validationResult.setResult("receptionHandlerParameters", ValidationStatus.INVALID,
+                "must have at least one reception handler");
+        } else {
+            for (final Entry<String, ReceptionHandlerParameters> nestedGroupEntry : receptionHandlerParameters
+                .entrySet()) {
+                validationResult.setResult("receptionHandlerParameters", nestedGroupEntry.getKey(),
+                    nestedGroupEntry.getValue().validate());
+            }
+        }
+    }
+
+    private void validateForwarderConfigurations(final GroupValidationResult validationResult) {
+        // @formatter:off
+        for (final Entry<String, ArtifactForwarderConfigurationParameterGroup> configurationParameters :
+            artifactForwarderConfigurationParameters.entrySet()) {
+            validationResult.setResult("artifactForwarderConfigurationParameters", configurationParameters.getKey(),
+                configurationParameters.getValue().validate());
+        }
+        // @formatter:on
+    }
+
 }
 }
index dc72978..839d46d 100644 (file)
@@ -30,6 +30,8 @@ import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.distribution.main.PolicyDistributionException;
 import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.distribution.main.PolicyDistributionException;
 import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParametersJsonAdapter;
 
 /**
  * This class handles reading, parsing and validating of policy distribution parameters from JSON files.
 
 /**
  * This class handles reading, parsing and validating of policy distribution parameters from JSON files.
@@ -52,6 +54,10 @@ public class DistributionParameterHandler {
         try {
             // Read the parameters from JSON using Gson
             final Gson gson = new GsonBuilder()
         try {
             // Read the parameters from JSON using Gson
             final Gson gson = new GsonBuilder()
+                    .registerTypeAdapter(ArtifactForwarderConfigurationParameterGroup.class,
+                            new ArtifactForwarderConfigurationParametersJsonAdapter())
+                    .registerTypeAdapter(ReceptionHandlerConfigurationParameterGroup.class,
+                            new ReceptionHandlerConfigurationParametersJsonAdapter())
                     .create();
             distributionParameterGroup = gson.fromJson(new FileReader(arguments.getFullConfigurationFilePath()),
                     DistributionParameterGroup.class);
                     .create();
             distributionParameterGroup = gson.fromJson(new FileReader(arguments.getFullConfigurationFilePath()),
                     DistributionParameterGroup.class);
diff --git a/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarder.java b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarder.java
new file mode 100644 (file)
index 0000000..bb4e2fc
--- /dev/null
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.main.testclasses;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import org.onap.policy.distribution.forwarding.ArtifactForwarder;
+import org.onap.policy.distribution.forwarding.ArtifactForwardingException;
+import org.onap.policy.distribution.model.PolicyInput;
+
+/**
+ * Class to create a dummy forwarder for test cases.
+ *
+ * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
+ */
+public class DummyArtifactForwarder implements ArtifactForwarder {
+    private int numberOfPoliciesReceived = 0;
+
+    @Override
+    public void forward(final PolicyInput policy) throws ArtifactForwardingException {
+        numberOfPoliciesReceived += 1;
+    }
+
+    public int getNumberOfPoliciesReceived() {
+        return numberOfPoliciesReceived;
+    }
+
+    @Override
+    public void configure(String parameterGroupName) {}
+}
diff --git a/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarderParameterGroup.java b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarderParameterGroup.java
new file mode 100644 (file)
index 0000000..e0e99b5
--- /dev/null
@@ -0,0 +1,132 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.main.testclasses;
+
+import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.distribution.main.parameters.ArtifactForwarderConfigurationParameterGroup;
+
+/**
+ * Dummy policy forwarder parameter group.
+ */
+public class DummyArtifactForwarderParameterGroup extends ArtifactForwarderConfigurationParameterGroup {
+
+    private boolean useHttps;
+    private String hostname;
+    private int port;
+    private String userName;
+    private String password;
+    private boolean isManaged;
+
+    public boolean isUseHttps() {
+        return useHttps;
+    }
+
+    public String getHostname() {
+        return hostname;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public boolean isManaged() {
+        return isManaged;
+    }
+
+    /**
+     * Builder for DummyArtifactForwarderParameterGroup.
+     */
+    public static class DummyArtifactForwarderParameterGroupBuilder {
+        private boolean useHttps;
+        private String hostname;
+        private int port;
+        private String userName;
+        private String password;
+        private boolean isManaged;
+
+        public DummyArtifactForwarderParameterGroupBuilder setUseHttps(final boolean useHttps) {
+            this.useHttps = useHttps;
+            return this;
+        }
+
+        public DummyArtifactForwarderParameterGroupBuilder setHostname(final String hostname) {
+            this.hostname = hostname;
+            return this;
+        }
+
+        public DummyArtifactForwarderParameterGroupBuilder setPort(final int port) {
+            this.port = port;
+            return this;
+        }
+
+        public DummyArtifactForwarderParameterGroupBuilder setUserName(final String userName) {
+            this.userName = userName;
+            return this;
+        }
+
+        public DummyArtifactForwarderParameterGroupBuilder setPassword(final String password) {
+            this.password = password;
+            return this;
+        }
+
+        public DummyArtifactForwarderParameterGroupBuilder setIsManaged(final boolean isManaged) {
+            this.isManaged = isManaged;
+            return this;
+        }
+
+        /**
+         * Creates a new DummyArtifactForwarderParameterGroup instance.
+         */
+        public DummyArtifactForwarderParameterGroup build() {
+            return new DummyArtifactForwarderParameterGroup(this);
+        }
+    }
+
+    /**
+     * Construct an instance.
+     *
+     * @param builder the builder create the instance from
+     */
+    private DummyArtifactForwarderParameterGroup(final DummyArtifactForwarderParameterGroupBuilder builder) {
+        this.useHttps = builder.useHttps;
+        this.hostname = builder.hostname;
+        this.port = builder.port;
+        this.userName = builder.userName;
+        this.password = builder.password;
+        this.isManaged = builder.isManaged;
+    }
+
+    @Override
+    public GroupValidationResult validate() {
+        final GroupValidationResult validationResult = new GroupValidationResult(this);
+        return validationResult;
+    }
+
+}
diff --git a/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandler.java b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandler.java
new file mode 100644 (file)
index 0000000..1540776
--- /dev/null
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.main.testclasses;
+
+import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler;
+
+/**
+ * Class to create a dummy reception handler for test cases.
+ *
+ * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
+ */
+public class DummyReceptionHandler extends AbstractReceptionHandler {
+
+    @Override
+    public void initializeReception(final String parameterGroupName) {}
+
+    @Override
+    public void destroy() {}
+}
diff --git a/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandlerParameterGroup.java b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandlerParameterGroup.java
new file mode 100644 (file)
index 0000000..9fbcae8
--- /dev/null
@@ -0,0 +1,99 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.main.testclasses;
+
+import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+
+public class DummyReceptionHandlerParameterGroup extends ReceptionHandlerConfigurationParameterGroup {
+
+    private String myStringParameter;
+    private int myIntegerParameter;
+    private boolean myBooleanParameter;
+
+    /**
+     * Inner static class is to used as a Builder.
+     *
+     */
+    public static class DummyReceptionHandlerParameterGroupBuilder {
+        private String myStringParameter;
+        private int myIntegerParameter;
+        private boolean myBooleanParameter;
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyStringParameter(final String val) {
+            myStringParameter = val;
+            return this;
+        }
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyIntegerParameter(final int val) {
+            myIntegerParameter = val;
+            return this;
+        }
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyBooleanParameter(final boolean val) {
+            myBooleanParameter = val;
+            return this;
+        }
+
+        /**
+         * Creates a new DummyReceptionHandlerConfigurationParameterGroup instance.
+         */
+        public DummyReceptionHandlerParameterGroup build() {
+            return new DummyReceptionHandlerParameterGroup(this);
+        }
+    }
+
+    /**
+     * The constructor for instantiating PssdConfigurationParameterGroup. It is kept private so that
+     * it could only be called by PssdConfigurationBuilder.
+     *
+     * @param builder stores all the values used by PssdConfigurationParametersGroup
+     */
+    private DummyReceptionHandlerParameterGroup(final DummyReceptionHandlerParameterGroupBuilder builder) {
+        myStringParameter = builder.myStringParameter;
+        myIntegerParameter = builder.myIntegerParameter;
+        myBooleanParameter = builder.myBooleanParameter;
+    }
+
+    public String getMyStringParameter() {
+        return myStringParameter;
+    }
+
+    public int getMyIntegerParameter() {
+        return myIntegerParameter;
+    }
+
+    public boolean isMyBooleanParameter() {
+        return myBooleanParameter;
+    }
+
+
+    /**
+     * {@inheritDoc}.
+     */
+    @Override
+    public GroupValidationResult validate() {
+        return new GroupValidationResult(this);
+    }
+
+}
+
diff --git a/artifactbroker/main/src/test/resources/parameters/BadParameters.json b/artifactbroker/main/src/test/resources/parameters/BadParameters.json
new file mode 100644 (file)
index 0000000..de2040c
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "name" : []
+}
\ No newline at end of file
index 9e20224..3808d7e 100644 (file)
@@ -5,5 +5,44 @@
         "port":6969,
         "userName":"healthcheck",
         "password":"zb!XztG34"
         "port":6969,
         "userName":"healthcheck",
         "password":"zb!XztG34"
+    },
+    "receptionHandlerParameters":{
+        "DummyReceptionHandler":{
+            "receptionHandlerType":"DummyReceptionHandler",
+            "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
+            "pluginHandlerParameters":{
+                "artifactForwarders":{
+                    "DummyForwarder":{
+                        "forwarderType":"DummyForwarder",
+                        "forwarderClassName":"org.onap.policy.distribution.main.testclasses.DummyArtifactForwarder",
+                        "forwarderConfigurationParameters": "dummyConfiguration"
+                    }
+                }
+            }
+        }
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
+    "artifactForwarderConfigurationParameters":{
+        "dummyConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyArtifactForwarderParameterGroup",
+            "parameters":{
+                "useHttps": false,
+                "hostname": "192.168.99.100",
+                "port": 8081,
+                "userName": "user",
+                "password": "pw123",
+                "isManaged": true
+            }
+        }
     }
 }
     }
 }
diff --git a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_EmptyReceptionHandler.json b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_EmptyReceptionHandler.json
new file mode 100644 (file)
index 0000000..c1535e0
--- /dev/null
@@ -0,0 +1,34 @@
+{
+    "name":"SDCDistributionGroup",
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34"
+    },
+    "receptionHandlerParameters":{
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
+    "policyForwarderConfigurationParameters":{
+        "dummyConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
+            "parameters":{
+                "useHttps": false,
+                "hostname": "192.168.99.100",
+                "port": 8081,
+                "userName": "user",
+                "password": "pw123",
+                "isManaged": true
+            }
+        }
+    }
+}
index 6aa6116..78a7e11 100644 (file)
@@ -6,5 +6,44 @@
         "userName":"healthcheck",
         "password":"zb!XztG34",
         "https":true
         "userName":"healthcheck",
         "password":"zb!XztG34",
         "https":true
-    }
+    },
+    "receptionHandlerParameters":{
+        "DummyReceptionHandler":{
+            "receptionHandlerType":"DummyReceptionHandler",
+            "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
+            "pluginHandlerParameters":{
+                "artifactForwarders":{
+                    "DummyForwarder":{
+                        "forwarderType":"DummyForwarder",
+                        "forwarderClassName":"org.onap.policy.distribution.main.testclasses.DummyArtifactForwarder",
+                        "forwarderConfigurationParameters": "dummyConfiguration"
+                    }
+                }
+            }
+        }
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
+    "artifactForwarderConfigurationParameters":{
+        "dummyConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyArtifactForwarderParameterGroup",
+            "parameters":{
+                "useHttps": false,
+                "hostname": "192.168.99.100",
+                "port": 8081,
+                "userName": "user",
+                "password": "pw123",
+                "isManaged": true
+            }
+        }
+    },
 }
 }
diff --git a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoPolicyForwarder.json b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoPolicyForwarder.json
new file mode 100644 (file)
index 0000000..abd0d6d
--- /dev/null
@@ -0,0 +1,28 @@
+{
+    "name":"SDCDistributionGroup",
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34"
+    },
+    "receptionHandlerParameters":{
+        "DummyReceptionHandler":{
+            "receptionHandlerType":"DummyReceptionHandler",
+            "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
+            "pluginHandlerParameters":{
+            }
+        }
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    }
+}
diff --git a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoReceptionHandler.json b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoReceptionHandler.json
new file mode 100644 (file)
index 0000000..7a9ecd1
--- /dev/null
@@ -0,0 +1,19 @@
+{
+    "name":"SDCDistributionGroup",
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34"
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/artifactbroker/main/src/test/resources/parameters/EmptyParameters.json b/artifactbroker/main/src/test/resources/parameters/EmptyParameters.json
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/artifactbroker/main/src/test/resources/parameters/InvalidParameters.json b/artifactbroker/main/src/test/resources/parameters/InvalidParameters.json
new file mode 100644 (file)
index 0000000..de2040c
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "name" : []
+}
\ No newline at end of file
diff --git a/artifactbroker/main/src/test/resources/parameters/NoParameters.json b/artifactbroker/main/src/test/resources/parameters/NoParameters.json
new file mode 100644 (file)
index 0000000..6b0805d
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34"
+    }
+}
\ No newline at end of file
index 21f0ba4..f2c2850 100644 (file)
     <name>${project.artifactId}</name>
     <description>[${project.parent.artifactId}] module provides the model for policy distribution</description>
 
     <name>${project.artifactId}</name>
     <description>[${project.parent.artifactId}] module provides the model for policy distribution</description>
 
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.sdc.sdc-distribution-client</groupId>
+            <artifactId>sdc-distribution-client</artifactId>
+            <version>1.3.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+          </exclusions>
+        </dependency>
+    </dependencies>
 </project>
 </project>
index 2447c68..834bbcf 100644 (file)
@@ -23,17 +23,19 @@ package org.onap.policy.distribution.model;
 import java.util.List;
 import java.util.Map;
 
 import java.util.List;
 import java.util.Map;
 
+import org.onap.sdc.api.notification.IArtifactInfo;
+
 /**
  * Represents a CloudArtifact that a {@link Policy} can be decoded from.
  */
 public class CloudArtifact implements PolicyInput {
 
 /**
  * Represents a CloudArtifact that a {@link Policy} can be decoded from.
  */
 public class CloudArtifact implements PolicyInput {
 
-    List<VfModuelModel> vfModulePayload;
-    Map<String, String> artifactTypeMap;
+    List<VfModuleModel> vfModulePayload;
+    Map<String, IArtifactInfo> artifactMap;
 
 
-    public CloudArtifact(List<VfModuelModel> vfModulePayload, Map<String, String> artifactTypeMap) {
+    public CloudArtifact(List<VfModuleModel> vfModulePayload, Map<String, IArtifactInfo> artifactMap) {
         this.vfModulePayload = vfModulePayload;
         this.vfModulePayload = vfModulePayload;
-        this.artifactTypeMap = artifactTypeMap;
+        this.artifactMap = artifactMap;
     }
 
     /**
     }
 
     /**
@@ -41,7 +43,7 @@ public class CloudArtifact implements PolicyInput {
      *
      * @return the path of the TOSCA file
      */
      *
      * @return the path of the TOSCA file
      */
-    List<VfModuelModel> getVfModulePayload() {
+    public List<VfModuleModel> getVfModulePayload() {
         return vfModulePayload;
     }
 
         return vfModulePayload;
     }
 
@@ -50,8 +52,8 @@ public class CloudArtifact implements PolicyInput {
      *
      * @return the path of the TOSCA file
      */
      *
      * @return the path of the TOSCA file
      */
-    Map<String, String> getArtifactTypeMap() {
-        return artifactTypeMap;
+    public Map<String, IArtifactInfo> getArtifactTypeMap() {
+        return artifactMap;
     }
 
 }
     }
 
 }
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  Copyright (C) 2019 Intel. 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.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,10 +26,11 @@ import java.util.Map;
 
 
 /**
 
 
 /**
- * Represents a VfModuleModel that a {@link VfModuleModel} can be parsed.
+ * Represents a VfModuleModel that a {@link Policy} can be decoded from.
  */
 
  */
 
-public class VfModuelModel {
+@SuppressWarnings("unchecked")
+public class VfModuleModel {
 
     private String vfModuleModelName;
     private String vfModuleModelInvariantUUID;
 
     private String vfModuleModelName;
     private String vfModuleModelInvariantUUID;
@@ -44,6 +46,10 @@ public class VfModuelModel {
         return vfModuleModelName;
     }
 
         return vfModuleModelName;
     }
 
+    public String getVfModuleModelVersion() {
+        return vfModuleModelVersion;
+    }
+
     public String getVfModuleModelCustomizationUUID() {
         return vfModuleModelCustomizationUUID;
     }
     public String getVfModuleModelCustomizationUUID() {
         return vfModuleModelCustomizationUUID;
     }
@@ -55,7 +61,7 @@ public class VfModuelModel {
     public List<String> getArtifacts() {
         return artifacts;
     }
     public List<String> getArtifacts() {
         return artifacts;
     }
-
+    
     public Map<String, Object> getProperties() {
         return properties;
     }
     public Map<String, Object> getProperties() {
         return properties;
     }
index fc2211b..998527b 100644 (file)
@@ -36,7 +36,7 @@ import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.distribution.model.CloudArtifact;
 import org.onap.policy.distribution.model.Csar;
 import org.onap.policy.distribution.model.GsonUtil;
 import org.onap.policy.distribution.model.CloudArtifact;
 import org.onap.policy.distribution.model.Csar;
 import org.onap.policy.distribution.model.GsonUtil;
-import org.onap.policy.distribution.model.VfModuelModel;
+import org.onap.policy.distribution.model.VfModuleModel;
 import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
 import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler;
 import org.onap.policy.distribution.reception.handling.sdc.SdcClientHandler.SdcClientOperationType;
 import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
 import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler;
 import org.onap.policy.distribution.reception.handling.sdc.SdcClientHandler.SdcClientOperationType;
@@ -220,13 +220,11 @@ public class SdcReceptionHandler extends AbstractReceptionHandler implements INo
         DistributionStatisticsManager.updateTotalDistributionCount();
         List<String> relevantArtifactTypes = sdcConfig.getRelevantArtifactTypes();
         Path path = Paths.get("/data");
         DistributionStatisticsManager.updateTotalDistributionCount();
         List<String> relevantArtifactTypes = sdcConfig.getRelevantArtifactTypes();
         Path path = Paths.get("/data");
-        List<VfModuelModel> vfModuelModels = null;
-        Map<String, String> artifactTypeMap = null; //key is UUID, value is type for k8s plugin
+        List<VfModuleModel> vfModuleModels = null;
         Map<String, IArtifactInfo> artifactMap = null;//key is UUID, value is artifact for shared folder
         String vfArtifactData = null;
 
         for (final IArtifactInfo artifact : resource.getArtifacts()) {
         Map<String, IArtifactInfo> artifactMap = null;//key is UUID, value is artifact for shared folder
         String vfArtifactData = null;
 
         for (final IArtifactInfo artifact : resource.getArtifacts()) {
-            artifactTypeMap.put(artifact.getArtifactUUID(),artifact.getArtifactType());
             artifactMap.put(artifact.getArtifactUUID(),artifact);
 
              //extract the artifactlist and write them into MongoDB
             artifactMap.put(artifact.getArtifactUUID(),artifact);
 
              //extract the artifactlist and write them into MongoDB
@@ -235,7 +233,7 @@ public class SdcReceptionHandler extends AbstractReceptionHandler implements INo
                     final IDistributionClientDownloadResult resultArtifact =
                             downloadTheArtifact(artifact,notificationData);
                     vfArtifactData = new String(resultArtifact.getArtifactPayload());
                     final IDistributionClientDownloadResult resultArtifact =
                             downloadTheArtifact(artifact,notificationData);
                     vfArtifactData = new String(resultArtifact.getArtifactPayload());
-                    vfModuelModels= GsonUtil.parseJsonArrayWithGson(vfArtifactData,VfModuelModel.class);
+                    vfModuleModels= GsonUtil.parseJsonArrayWithGson(vfArtifactData,VfModuleModel.class);
                 } catch (final ArtifactDownloadException exp) {
                     LOGGER.error("Failed to process csar service artifacts ", exp);
                     artifactsProcessedSuccessfully = false;
                 } catch (final ArtifactDownloadException exp) {
                     LOGGER.error("Failed to process csar service artifacts ", exp);
                     artifactsProcessedSuccessfully = false;
@@ -251,7 +249,7 @@ public class SdcReceptionHandler extends AbstractReceptionHandler implements INo
         //  2. put the vfmodule-meta.json into it
         //  3. put the service-meta.json into it
         //  3. go through each aritfact uuid under artifact_list of vf_module and download
         //  2. put the vfmodule-meta.json into it
         //  3. put the service-meta.json into it
         //  3. go through each aritfact uuid under artifact_list of vf_module and download
-        for (final VfModuelModel vfModule : vfModuelModels) {
+        for (final VfModuleModel vfModule : vfModuleModels) {
             try {
                 //create the new dir
                 Path temp = Paths.get("/data",vfModule.getVfModuleModelCustomizationUUID());
             try {
                 //create the new dir
                 Path temp = Paths.get("/data",vfModule.getVfModuleModelCustomizationUUID());
@@ -283,7 +281,7 @@ public class SdcReceptionHandler extends AbstractReceptionHandler implements INo
 
         //for subplug work
         try {
 
         //for subplug work
         try {
-            final CloudArtifact cloudArtifact = new CloudArtifact(vfModuelModels, artifactTypeMap);
+            final CloudArtifact cloudArtifact = new CloudArtifact(vfModuleModels, artifactMap);
             inputReceived(cloudArtifact);
         } catch ( final PolicyDecodingException exp) {
             LOGGER.error("Failed to process cloud  artifacts ", exp);
             inputReceived(cloudArtifact);
         } catch ( final PolicyDecodingException exp) {
             LOGGER.error("Failed to process cloud  artifacts ", exp);
index 445d47c..e3bafc5 100644 (file)
  * ============LICENSE_END=========================================================
  */
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.distribution.reception.handling.sdc;
+package org.onap.policy.distribution.main.testclasses;
 
 import java.util.ArrayList;
 import java.util.Collection;
 
 import java.util.ArrayList;
 import java.util.Collection;
-
 import org.onap.policy.distribution.forwarding.ArtifactForwarder;
 import org.onap.policy.distribution.forwarding.ArtifactForwardingException;
 import org.onap.policy.distribution.forwarding.ArtifactForwarder;
 import org.onap.policy.distribution.forwarding.ArtifactForwardingException;
-import org.onap.sdc.api.notification.IArtifactInfo;
+import org.onap.policy.distribution.model.PolicyInput;
 
 /**
  * Class to create a dummy forwarder for test cases.
 
 /**
  * Class to create a dummy forwarder for test cases.
@@ -34,39 +33,16 @@ import org.onap.sdc.api.notification.IArtifactInfo;
  */
 public class DummyArtifactForwarder implements ArtifactForwarder {
     private int numberOfPoliciesReceived = 0;
  */
 public class DummyArtifactForwarder implements ArtifactForwarder {
     private int numberOfPoliciesReceived = 0;
-    private Collection<IArtifactInfo> policiesReceived = new ArrayList<>();
 
 
-    /**
-     * {@inheritDoc}.
-     */
     @Override
     @Override
-    public void forward(final Collection<IArtifactInfo> policies) throws ArtifactForwardingException {
-        numberOfPoliciesReceived += policies.size();
-        policiesReceived.addAll(policies);
+    public void forward(final PolicyInput policy) throws ArtifactForwardingException {
+        numberOfPoliciesReceived += 1;
     }
 
     }
 
-    /**
-     * Returns the number of policies received by this forwarder.
-     *
-     * @return the integer value
-     */
     public int getNumberOfPoliciesReceived() {
         return numberOfPoliciesReceived;
     }
 
     public int getNumberOfPoliciesReceived() {
         return numberOfPoliciesReceived;
     }
 
-    /**
-     * Checks if the forwarder has received a policy with given policy type.
-     *
-     * @param policyType the policy type
-     * @return the boolean result
-     */
-    public boolean receivedPolicyWithGivenType(final String policyType) {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}.
-     */
     @Override
     @Override
-    public void configure(final String parameterGroupName) {}
+    public void configure(String parameterGroupName) {}
 }
 }
index da6b1d3..11d3903 100644 (file)
@@ -33,6 +33,7 @@
         <nexusproxy>https://nexus.onap.org</nexusproxy>
         <version.logback>1.2.3</version.logback>
         <policy.common.version>1.3.4</policy.common.version>
         <nexusproxy>https://nexus.onap.org</nexusproxy>
         <version.logback>1.2.3</version.logback>
         <policy.common.version>1.3.4</policy.common.version>
+        <policy.engine.version>1.3.5</policy.engine.version>
     </properties>
     <modules>
         <module>model</module>
     </properties>
     <modules>
         <module>model</module>
index 7081dc7..c00bfa1 100644 (file)
@@ -74,11 +74,10 @@ public abstract class AbstractReceptionHandler implements ReceptionHandler {
      */
     protected void inputReceived(final PolicyInput policyInput) throws PolicyDecodingException {
 
      */
     protected void inputReceived(final PolicyInput policyInput) throws PolicyDecodingException {
 
-        final Collection<IArtifactInfo> policies = new ArrayList<>();
 
         for (final ArtifactForwarder policyForwarder : pluginHandler.getArtifactForwarders()) {
             try {
 
         for (final ArtifactForwarder policyForwarder : pluginHandler.getArtifactForwarders()) {
             try {
-                policyForwarder.forward(policies);
+                policyForwarder.forward(policyInput);
             } catch (final ArtifactForwardingException policyForwardingException) {
                 LOGGER.error("Error when forwarding policies to " + policyForwarder, policyForwardingException);
             }
             } catch (final ArtifactForwardingException policyForwardingException) {
                 LOGGER.error("Error when forwarding policies to " + policyForwarder, policyForwardingException);
             }
index 5785927..ee3d166 100644 (file)
@@ -24,7 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import org.onap.policy.distribution.forwarding.ArtifactForwarder;
 import org.onap.policy.distribution.forwarding.ArtifactForwardingException;
 import java.util.Collection;
 import org.onap.policy.distribution.forwarding.ArtifactForwarder;
 import org.onap.policy.distribution.forwarding.ArtifactForwardingException;
-import org.onap.sdc.api.notification.IArtifactInfo;
+import org.onap.policy.distribution.model.PolicyInput;
 
 /**
  * Class to create a dummy forwarder for test cases in AbstractReceptionHandlerTest.
 
 /**
  * Class to create a dummy forwarder for test cases in AbstractReceptionHandlerTest.
@@ -33,21 +33,16 @@ import org.onap.sdc.api.notification.IArtifactInfo;
  */
 public class DummyArtifactForwarder implements ArtifactForwarder {
     private int numberOfPoliciesReceived = 0;
  */
 public class DummyArtifactForwarder implements ArtifactForwarder {
     private int numberOfPoliciesReceived = 0;
-    private Collection<IArtifactInfo> policiesReceived = new ArrayList<>();
 
     @Override
 
     @Override
-    public void forward(final Collection<IArtifactInfo> policies) throws ArtifactForwardingException {
-        numberOfPoliciesReceived += policies.size();
-        policiesReceived.addAll(policies);
+    public void forward(final PolicyInput policy) throws ArtifactForwardingException {
+        numberOfPoliciesReceived += 1;
     }
 
     public int getNumberOfPoliciesReceived() {
         return numberOfPoliciesReceived;
     }
 
     }
 
     public int getNumberOfPoliciesReceived() {
         return numberOfPoliciesReceived;
     }
 
-    public boolean receivedPolicy(final IArtifactInfo policy) {
-        return policiesReceived.contains(policy);
-    }
 
     @Override
     public void configure(String parameterGroupName) {}
 
     @Override
     public void configure(String parameterGroupName) {}