summaryrefslogtreecommitdiffstats
path: root/artifactbroker/main/src
diff options
context:
space:
mode:
authorliboNet <libo.zhu@intel.com>2019-04-03 02:26:05 +0800
committerliboNet <libo.zhu@intel.com>2019-04-03 02:26:05 +0800
commit41373a9619308bdbab6a31c02fe3d54e91ac6ee3 (patch)
tree4e79dc6d6573e9fab2415294e5e926589b0f9827 /artifactbroker/main/src
parentb852967aa9ebbf7a37e562e562c21b9df76f04d7 (diff)
add subplugin field support and new Cloud Artifact class
. 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>
Diffstat (limited to 'artifactbroker/main/src')
-rw-r--r--artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParameterGroup.java43
-rw-r--r--artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParametersJsonAdapter.java81
-rw-r--r--artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java87
-rw-r--r--artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java6
-rw-r--r--artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarder.java49
-rw-r--r--artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarderParameterGroup.java132
-rw-r--r--artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandler.java38
-rw-r--r--artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandlerParameterGroup.java99
-rw-r--r--artifactbroker/main/src/test/resources/parameters/BadParameters.json3
-rw-r--r--artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json39
-rw-r--r--artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_EmptyReceptionHandler.json34
-rw-r--r--artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json41
-rw-r--r--artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoPolicyForwarder.json28
-rw-r--r--artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoReceptionHandler.json19
-rw-r--r--artifactbroker/main/src/test/resources/parameters/EmptyParameters.json0
-rw-r--r--artifactbroker/main/src/test/resources/parameters/InvalidParameters.json3
-rw-r--r--artifactbroker/main/src/test/resources/parameters/NoParameters.json8
17 files changed, 708 insertions, 2 deletions
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
index 0000000..6a1fe79
--- /dev/null
+++ b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParameterGroup.java
@@ -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
index 0000000..c63056d
--- /dev/null
+++ b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/ArtifactForwarderConfigurationParametersJsonAdapter.java
@@ -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;
+ }
+
+}
diff --git a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java
index d034e5e..5a588f8 100644
--- a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java
+++ b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterGroup.java
@@ -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.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
/**
* 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;
+ private Map<String, ReceptionHandlerParameters> receptionHandlerParameters;
+ private Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters
+ = new LinkedHashMap<>();
+ private Map<String, ArtifactForwarderConfigurationParameterGroup> artifactForwarderConfigurationParameters
+ = new LinkedHashMap<>();
// @formatter:on
/**
@@ -45,9 +52,15 @@ public class DistributionParameterGroup implements ParameterGroup {
*
* @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.receptionHandlerParameters = receptionHandlerParameters;
+ this.receptionHandlerConfigurationParameters = receptionHandlerConfigurationParameters;
+ this.artifactForwarderConfigurationParameters = artifactForwarderConfigurationParameters;
}
/**
@@ -71,6 +84,15 @@ public class DistributionParameterGroup implements ParameterGroup {
}
/**
+ * 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
@@ -80,6 +102,44 @@ public class DistributionParameterGroup implements ParameterGroup {
}
/**
+ * 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.
*
* @return the result of the validation
@@ -96,7 +156,32 @@ public class DistributionParameterGroup implements ParameterGroup {
} else {
validationResult.setResult("restServerParameters", restServerParameters.validate());
}
+ validateReceptionHandlers(validationResult);
+ validateForwarderConfigurations(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
+ }
+
}
diff --git a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java
index dc72978..839d46d 100644
--- a/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java
+++ b/artifactbroker/main/src/main/java/org/onap/policy/distribution/main/parameters/DistributionParameterHandler.java
@@ -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.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.
@@ -52,6 +54,10 @@ public class DistributionParameterHandler {
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);
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
index 0000000..bb4e2fc
--- /dev/null
+++ b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarder.java
@@ -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
index 0000000..e0e99b5
--- /dev/null
+++ b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyArtifactForwarderParameterGroup.java
@@ -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
index 0000000..1540776
--- /dev/null
+++ b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandler.java
@@ -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
index 0000000..9fbcae8
--- /dev/null
+++ b/artifactbroker/main/src/test/java/org/onap/policy/distribution/main/testclasses/DummyReceptionHandlerParameterGroup.java
@@ -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
index 0000000..de2040c
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/BadParameters.json
@@ -0,0 +1,3 @@
+{
+ "name" : []
+} \ No newline at end of file
diff --git a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json
index 9e20224..3808d7e 100644
--- a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json
+++ b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters.json
@@ -5,5 +5,44 @@
"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
index 0000000..c1535e0
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_EmptyReceptionHandler.json
@@ -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
+ }
+ }
+ }
+}
diff --git a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json
index 6aa6116..78a7e11 100644
--- a/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json
+++ b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_Https.json
@@ -6,5 +6,44 @@
"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
index 0000000..abd0d6d
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoPolicyForwarder.json
@@ -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
index 0000000..7a9ecd1
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/DistributionConfigParameters_NoReceptionHandler.json
@@ -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
index 0000000..e69de29
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/EmptyParameters.json
diff --git a/artifactbroker/main/src/test/resources/parameters/InvalidParameters.json b/artifactbroker/main/src/test/resources/parameters/InvalidParameters.json
new file mode 100644
index 0000000..de2040c
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/InvalidParameters.json
@@ -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
index 0000000..6b0805d
--- /dev/null
+++ b/artifactbroker/main/src/test/resources/parameters/NoParameters.json
@@ -0,0 +1,8 @@
+{
+ "restServerParameters":{
+ "host":"0.0.0.0",
+ "port":6969,
+ "userName":"healthcheck",
+ "password":"zb!XztG34"
+ }
+} \ No newline at end of file