Remove ParameterUtils

Removed ParameterUtils.
Also made RestServer.getServerProperties() protected so it can be
overridden.
Also fixed issue in TopicParameterGroupTest to prevent it from validating
static fields.

Change-Id: Icb4580f5802b9edca489a38896d61ad24aece449
Issue-ID: POLICY-1953
Signed-off-by: Jim Hahn <jrh3@att.com>
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/server/RestServer.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/server/RestServer.java
index 1f7a921..597375b 100644
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/server/RestServer.java
+++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/http/server/RestServer.java
@@ -77,7 +77,7 @@
      *
      * @return the properties object
      */
-    private Properties getServerProperties(RestServerParameters restServerParameters, String names) {
+    protected Properties getServerProperties(RestServerParameters restServerParameters, String names) {
         final Properties props = new Properties();
         props.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES, restServerParameters.getName());
 
diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/utils/ParameterUtils.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/utils/ParameterUtils.java
deleted file mode 100644
index 5e93cfa..0000000
--- a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/utils/ParameterUtils.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.common.endpoints.utils;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-import java.util.Properties;
-import org.apache.commons.lang3.StringUtils;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
-import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
-import org.onap.policy.common.endpoints.parameters.TopicParameters;
-import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This is common utility class with utility methods for parameters.
- *
- * @author Ajith Sreekumar (ajith.sreekumar@est.tech)
- */
-public class ParameterUtils {
-
-    /**
-     * Logger.
-     */
-    private static final Logger logger = LoggerFactory.getLogger(ParameterUtils.class);
-
-    /**
-     * Private constructor used to prevent sub class instantiation.
-     */
-    private ParameterUtils() {
-        // Prevent construction of this class
-    }
-
-    /**
-     * Create topic properties object from the parameters.
-     *
-     * @param topicParameters the topic parameters read from config file
-     * @return the topic properties object
-     */
-    public static Properties getTopicProperties(TopicParameterGroup topicParameters) {
-        Properties topicProperties = new Properties();
-        List<TopicParameters> topicSources = topicParameters.getTopicSources();
-        List<TopicParameters> topicSinks = topicParameters.getTopicSinks();
-
-        // for each topicCommInfrastructure, there could be multiple topics (specified as comma separated string)
-        // for each such topics, there could be multiple servers (specified as comma separated string)
-        for (TopicParameters source : topicSources) {
-            updateTopicProperties(topicProperties, "source", source);
-        }
-        for (TopicParameters sink : topicSinks) {
-            updateTopicProperties(topicProperties, "sink", sink);
-        }
-
-        return topicProperties;
-    }
-
-    /**
-     * Common method to update topic properties object using the parameters passed.
-     *
-     * @param topicProperties the topic properties object which is to be updated
-     * @param keyName either it is source or sink
-     * @param topicParameters the topic parameters object
-     */
-    public static void updateTopicProperties(Properties topicProperties, String keyName,
-        TopicParameters topicParameters) {
-        String topicCommInfra = topicParameters.getTopicCommInfrastructure();
-        String topicName = topicParameters.getTopic();
-        List<String> servers = topicParameters.getServers();
-
-        String propKey = topicCommInfra + "." + keyName + PolicyEndPointProperties.PROPERTY_TOPIC_TOPICS_SUFFIX;
-        if (topicProperties.containsKey(propKey)) {
-            topicProperties.setProperty(propKey, topicProperties.getProperty(propKey) + "," + topicName);
-        } else {
-            topicProperties.setProperty(propKey, topicName);
-        }
-        String propWithTopicKey = propKey + "." + topicName;
-        topicProperties.setProperty(propWithTopicKey + PolicyEndPointProperties.PROPERTY_TOPIC_SERVERS_SUFFIX,
-                String.join(",", servers));
-
-        Field[] fields = BusTopicParams.class.getDeclaredFields();
-        for (Field field : fields) {
-            if (field.isSynthetic()) {
-                continue;
-            }
-            try {
-                Object parameter = new PropertyDescriptor(field.getName(), TopicParameters.class)
-                    .getReadMethod().invoke(topicParameters);
-                if ((parameter instanceof String && StringUtils.isNotBlank(parameter.toString()))
-                    || (parameter instanceof Number && ((Number) parameter).longValue() > 0)) {
-                    topicProperties.setProperty(propWithTopicKey + "." + field.getName(), parameter.toString());
-                }
-                if (parameter instanceof Boolean && (Boolean) parameter) {
-                    topicProperties.setProperty(propWithTopicKey + "." + field.getName(),
-                        Boolean.toString((Boolean) parameter));
-                }
-            } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException
-                | IntrospectionException e) {
-                logger.error("Error while creating Properties object from TopicParameters for {}", field.getName(), e);
-            }
-        }
-
-    }
-}
diff --git a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/parameters/TopicParameterGroupTest.java b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/parameters/TopicParameterGroupTest.java
index f150736..98b3d84 100644
--- a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/parameters/TopicParameterGroupTest.java
+++ b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/parameters/TopicParameterGroupTest.java
@@ -28,6 +28,7 @@
 
 import java.beans.PropertyDescriptor;
 import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
 import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
@@ -127,7 +128,7 @@
         for (TopicParameters topicParameters : topicParametersList) {
             Field[] fields = BusTopicParams.class.getDeclaredFields();
             for (Field field : fields) {
-                if (!field.isSynthetic()) {
+                if (!field.isSynthetic() && !Modifier.isStatic(field.getModifiers())) {
                     Object parameter = new PropertyDescriptor(field.getName(), TopicParameters.class).getReadMethod()
                         .invoke(topicParameters);
                     if ((parameter instanceof String && StringUtils.isBlank(parameter.toString()))
diff --git a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/utils/ParameterUtilsTest.java b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/utils/ParameterUtilsTest.java
deleted file mode 100644
index 54a1460..0000000
--- a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/utils/ParameterUtilsTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
-
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.common.endpoints.utils;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Properties;
-import org.junit.Test;
-import org.onap.policy.common.endpoints.parameters.CommonTestData;
-import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
-import org.onap.policy.common.parameters.GroupValidationResult;
-import org.onap.policy.common.utils.coder.Coder;
-import org.onap.policy.common.utils.coder.StandardCoder;
-
-/**
- * Class to perform unit test of {@link ParameterUtils}.
- *
- * @author Ajith Sreekumar (ajith.sreekumar@est.tech)
- */
-public class ParameterUtilsTest {
-    private static final String SOURCE_TOPICS_POLICY_PDP_PAP1 = ".source.topics.POLICY-PDP-PAP1.";
-    private static final String SINK_TOPICS_POLICY_PDP_PAP1 = ".sink.topics.POLICY-PDP-PAP1.";
-    private static final String SERVERS = ".servers";
-    private static CommonTestData testData = new CommonTestData();
-    private static final Coder coder = new StandardCoder();
-
-    /**
-     * Test getTopicProperties from TopicParameterGroup.
-     */
-    @Test
-    public void testGetTopicProperties() {
-        CommonTestData testData = new CommonTestData();
-        final TopicParameterGroup topicParameterGroup =
-            testData.toObject(testData.getTopicParameterGroupMap(false), TopicParameterGroup.class);
-        Properties topicProperties = ParameterUtils.getTopicProperties(topicParameterGroup);
-        assertEquals(CommonTestData.TOPIC_NAME,
-            topicProperties.getProperty(CommonTestData.TOPIC_INFRA + ".source.topics"));
-        assertEquals(CommonTestData.TOPIC_NAME,
-            topicProperties.getProperty(CommonTestData.TOPIC_INFRA + ".sink.topics"));
-        assertEquals(CommonTestData.TOPIC_SERVER, topicProperties
-            .getProperty(CommonTestData.TOPIC_INFRA + ".source.topics." + CommonTestData.TOPIC_NAME + SERVERS));
-        assertEquals(CommonTestData.TOPIC_SERVER, topicProperties
-            .getProperty(CommonTestData.TOPIC_INFRA + ".sink.topics." + CommonTestData.TOPIC_NAME + SERVERS));
-    }
-
-    @Test
-    public void testUpdateTopicProperties() {
-        Properties topicProperties = new Properties();
-        ParameterUtils.updateTopicProperties(topicProperties, "source", CommonTestData.TOPIC_PARAMS.get(0));
-        assertEquals(CommonTestData.TOPIC_NAME,
-            topicProperties.getProperty(CommonTestData.TOPIC_INFRA + ".source.topics"));
-        assertEquals(CommonTestData.TOPIC_SERVER, topicProperties
-            .getProperty(CommonTestData.TOPIC_INFRA + ".source.topics." + CommonTestData.TOPIC_NAME + SERVERS));
-        ParameterUtils.updateTopicProperties(topicProperties, "sink", CommonTestData.TOPIC_PARAMS.get(0));
-        assertEquals(CommonTestData.TOPIC_NAME,
-            topicProperties.getProperty(CommonTestData.TOPIC_INFRA + ".sink.topics"));
-        assertEquals(CommonTestData.TOPIC_SERVER, topicProperties
-            .getProperty(CommonTestData.TOPIC_INFRA + ".sink.topics." + CommonTestData.TOPIC_NAME + SERVERS));
-    }
-
-    @Test
-    public void testGetTopicProperties_all_props() throws Exception {
-        String json = testData.getParameterGroupAsString(
-            "src/test/resources/org/onap/policy/common/endpoints/parameters/TopicParameters_all_params.json");
-        TopicParameterGroup topicParameterGroup = coder.decode(json, TopicParameterGroup.class);
-        final GroupValidationResult result = topicParameterGroup.validate();
-        assertNull(result.getResult());
-        assertTrue(result.isValid());
-        Properties topicProperties = ParameterUtils.getTopicProperties(topicParameterGroup);
-        assertEquals("true", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "managed"));
-        assertEquals("true", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SINK_TOPICS_POLICY_PDP_PAP1 + "managed"));
-        assertEquals("123", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "port"));
-        assertEquals("123", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SINK_TOPICS_POLICY_PDP_PAP1 + "port"));
-        assertEquals("my-api-key", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "apiKey"));
-        assertEquals("my-api-key", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SINK_TOPICS_POLICY_PDP_PAP1 + "apiKey"));
-        assertEquals("my-effective-topic", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "effectiveTopic"));
-        assertEquals("true", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "useHttps"));
-        assertEquals("username", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "userName"));
-        assertEquals("password", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "password"));
-        assertEquals("true", topicProperties.getProperty(
-            CommonTestData.TOPIC_INFRA + SOURCE_TOPICS_POLICY_PDP_PAP1 + "allowSelfSignedCerts"));
-    }
-}