From 0c7d117a4cb41913101cfce1e8667782fd6abf21 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 31 Jul 2019 11:16:39 -0400 Subject: 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 --- .../common/endpoints/http/server/RestServer.java | 2 +- .../common/endpoints/utils/ParameterUtils.java | 126 --------------------- .../parameters/TopicParameterGroupTest.java | 3 +- .../common/endpoints/utils/ParameterUtilsTest.java | 115 ------------------- 4 files changed, 3 insertions(+), 243 deletions(-) delete mode 100644 policy-endpoints/src/main/java/org/onap/policy/common/endpoints/utils/ParameterUtils.java delete mode 100644 policy-endpoints/src/test/java/org/onap/policy/common/endpoints/utils/ParameterUtilsTest.java 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 1f7a921a..597375bf 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 @@ public class RestServer extends ServiceManagerContainer { * * @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 5e93cfa4..00000000 --- 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 topicSources = topicParameters.getTopicSources(); - List 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 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 f1507365..98b3d84a 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 static org.junit.Assert.assertTrue; 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 @@ public class TopicParameterGroupTest { 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 54a14606..00000000 --- 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")); - } -} -- cgit 1.2.3-korg