From f32508381ce0b555fc14978cbaa458aa4e2d91c5 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Thu, 30 Aug 2018 09:37:29 +0100 Subject: Use parameter service in apex Switch parameter handling in apex to use the ONAP PF common parameter service Change-Id: Id318d19c726b18b1a69c630fa81ca7d695355e9c Issue-ID: POLICY-954 Signed-off-by: liamfallon --- .../basicmodel/service/AbstractParameters.java | 87 ---------------- .../model/basicmodel/service/ParameterService.java | 116 --------------------- .../basicmodel/service/IllegalParameters.java | 32 ------ .../model/basicmodel/service/LegalParameters.java | 32 ------ .../basicmodel/service/TestAbstractParameters.java | 55 ---------- .../basicmodel/service/TestParameterService.java | 79 -------------- 6 files changed, 401 deletions(-) delete mode 100644 model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/AbstractParameters.java delete mode 100644 model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/ParameterService.java delete mode 100644 model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/IllegalParameters.java delete mode 100644 model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/LegalParameters.java delete mode 100644 model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestAbstractParameters.java delete mode 100644 model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestParameterService.java (limited to 'model/basic-model') diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/AbstractParameters.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/AbstractParameters.java deleted file mode 100644 index cc7c7b06f..000000000 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/AbstractParameters.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import org.onap.policy.apex.model.basicmodel.concepts.ApexRuntimeException; -import org.onap.policy.apex.model.utilities.Assertions; - -/** - * This class defines an abstract parameter class that acts as a base class for all parameters in Apex. The abstract parameter class holds the name of a - * subclass of this abstract parameter class {@link AbstractParameters}. The class of the parameter class is checked at construction and on calls to the - * {@link #getParameterClass()} method. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public abstract class AbstractParameters { - // The name of the parameter subclass - private final String parameterClassName; - - /** - * Constructor, creates a parameter class that must be a subclass of {@link AbstractParameters}. - * - * @param parameterClassName the full canonical class name of the parameter class - */ - public AbstractParameters(final String parameterClassName) { - try { - Assertions.assignableFrom(Class.forName(parameterClassName), AbstractParameters.class); - } - catch (IllegalArgumentException | ClassNotFoundException e) { - throw new ApexRuntimeException( - "class \"" + parameterClassName + "\" not found or not an instance of \"" + this.getClass().getCanonicalName() + "\"", e); - } - - this.parameterClassName = parameterClassName; - } - - /** - * Gets the parameter class. - * - * @return the parameter class - */ - @SuppressWarnings("unchecked") - public final Class getParameterClass() { - try { - return (Class) Class.forName(parameterClassName); - } - catch (final ClassNotFoundException e) { - throw new ApexRuntimeException("class not found for parameter class name \"" + parameterClassName + "\"", e); - } - } - - /** - * Gets the parameter class name. - * - * @return the parameter class name - */ - public final String getParameterClassName() { - return parameterClassName; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AbstractParameters [parameterClassName=" + parameterClassName + "]"; - } -} diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/ParameterService.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/ParameterService.java deleted file mode 100644 index 062213093..000000000 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/service/ParameterService.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -import org.onap.policy.apex.model.basicmodel.concepts.ApexRuntimeException; - -/** - * The parameter service makes Apex parameters available to all classes in a JVM. - * - * The reason for having a parameter service is to avoid having to pass parameters down long call chains in modules such as the Apex engine and editor. The - * parameter service makes parameters available statically. - * - * The parameter service must be used with care because changing a parameter set anywhere in a JVM will affect all users of those parameters anywhere in the - * JVM. - * - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public abstract class ParameterService { - // The map holding the parameters - private static Map, AbstractParameters> parameterMap = new ConcurrentHashMap<>(); - - /** - * This class is an abstract static class that cannot be extended. - */ - private ParameterService() { - } - - /** - * Register parameters with the parameter service. - * - * @param

the generic type - * @param parametersClass the class of the parameter, used to index the parameter - * @param parameters the parameters - */ - public static

void registerParameters(final Class

parametersClass, final P parameters) { - parameterMap.put(parametersClass, parameters); - } - - /** - * Remove parameters from the parameter service. - * - * @param

the generic type - * @param parametersClass the class of the parameter, used to index the parameter - */ - public static

void deregisterParameters(final Class

parametersClass) { - parameterMap.remove(parametersClass); - } - - /** - * Get parameters from the parameter service. - * - * @param

the generic type - * @param parametersClass the class of the parameter, used to index the parameter - * @return The parameter - */ - @SuppressWarnings("unchecked") - public static

P getParameters(final Class

parametersClass) { - final P parameter = (P) parameterMap.get(parametersClass); - - if (parameter == null) { - throw new ApexRuntimeException("Parameters for " + parametersClass.getCanonicalName() + " not found in parameter service"); - } - - return parameter; - } - - /** - * Check if parameters is defined on the parameter service. - * - * @param

the generic type - * @param parametersClass the class of the parameter, used to index the parameter - * @return true if the parameter is defined - */ - public static

boolean existsParameters(final Class

parametersClass) { - return parameterMap.get(parametersClass) != null; - } - - /** - * Get all the entries in the parameters map. - * - * @return The entries - */ - public static Set, AbstractParameters>> getAll() { - return parameterMap.entrySet(); - } - - /** - * Clear all parameters in the parameter service. - */ - public static void clear() { - parameterMap.clear(); - } -} diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/IllegalParameters.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/IllegalParameters.java deleted file mode 100644 index 3a7fdf530..000000000 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/IllegalParameters.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import org.onap.policy.apex.model.basicmodel.service.AbstractParameters; - -/** - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class IllegalParameters extends AbstractParameters { - public IllegalParameters() { - super("somewhere.over.the.rainbow"); - } -} diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/LegalParameters.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/LegalParameters.java deleted file mode 100644 index 3de3ecb58..000000000 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/LegalParameters.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import org.onap.policy.apex.model.basicmodel.service.AbstractParameters; - -/** - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class LegalParameters extends AbstractParameters { - public LegalParameters() { - super(LegalParameters.class.getCanonicalName()); - } -} diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestAbstractParameters.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestAbstractParameters.java deleted file mode 100644 index 7afa14440..000000000 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestAbstractParameters.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import org.junit.Test; - -/** - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class TestAbstractParameters { - - @Test - public void testAbstractParameters() { - final LegalParameters parameters = new LegalParameters(); - assertNotNull(parameters); - assertEquals( - "AbstractParameters [parameterClassName=org.onap.policy.apex.model.basicmodel.service.LegalParameters]", - parameters.toString()); - - assertEquals(LegalParameters.class, parameters.getParameterClass()); - assertEquals("org.onap.policy.apex.model.basicmodel.service.LegalParameters", - parameters.getParameterClassName()); - - try { - new IllegalParameters(); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertEquals( - "class \"somewhere.over.the.rainbow\" not found or not an instance of \"org.onap.policy.apex.model.basicmodel.service.IllegalParameters\"", - e.getMessage()); - } - } -} diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestParameterService.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestParameterService.java deleted file mode 100644 index e84b3e252..000000000 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/service/TestParameterService.java +++ /dev/null @@ -1,79 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.apex.model.basicmodel.service; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/** - * @author Liam Fallon (liam.fallon@ericsson.com) - */ -public class TestParameterService { - - @Test - public void testParameterService() { - ParameterService.clear(); - - assertFalse(ParameterService.existsParameters(LegalParameters.class)); - try { - ParameterService.getParameters(LegalParameters.class); - } catch (final Exception e) { - assertEquals( - "Parameters for org.onap.policy.apex.model.basicmodel.service.LegalParameters not found in parameter service", - e.getMessage()); - } - - ParameterService.registerParameters(LegalParameters.class, new LegalParameters()); - assertTrue(ParameterService.existsParameters(LegalParameters.class)); - assertNotNull(ParameterService.getParameters(LegalParameters.class)); - - ParameterService.deregisterParameters(LegalParameters.class); - - assertFalse(ParameterService.existsParameters(LegalParameters.class)); - try { - ParameterService.getParameters(LegalParameters.class); - } catch (final Exception e) { - assertEquals( - "Parameters for org.onap.policy.apex.model.basicmodel.service.LegalParameters not found in parameter service", - e.getMessage()); - } - - ParameterService.registerParameters(LegalParameters.class, new LegalParameters()); - assertTrue(ParameterService.existsParameters(LegalParameters.class)); - assertNotNull(ParameterService.getParameters(LegalParameters.class)); - - assertNotNull(ParameterService.getAll()); - ParameterService.clear(); - assertFalse(ParameterService.existsParameters(LegalParameters.class)); - try { - ParameterService.getParameters(LegalParameters.class); - } catch (final Exception e) { - assertEquals( - "Parameters for org.onap.policy.apex.model.basicmodel.service.LegalParameters not found in parameter service", - e.getMessage()); - } - - } -} -- cgit 1.2.3-korg