diff options
author | Jim Hahn <jrh3@att.com> | 2018-02-19 16:56:06 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2018-02-20 09:59:15 -0500 |
commit | a45f8909871dc1ddb75845f067a602951afc8d11 (patch) | |
tree | fa72aff7ceede971d4e6922f62a503a8ee8924d5 /policy-management/src/main/java/org | |
parent | 1708e9a45cb88571613c10b68d392811b2b3f0f4 (diff) |
Sonar fixes to drools-pdp
Fixed most of the instances of the following sonar issues:
Moved array designator
Used diamond operator
Changed System.out/err to use a logger
Changed several Thread.sleep() in test code to a single sleep()
Useless assignments
Replaced comparison with "" to string.isEmpty()
Merged if's
Replaced ArrayList with List in method returns
Reordered type modifiers
Reordered constructor methods
Defined constants for literals, or replaced them with method calls
Removed "throws Xxx" for subclasses of RuntimeException
Combined identical "catch" blocks
Re-interrupted the current thread after catching an InterruptedException
Removed tests against the literal "false"
Fix indentation of new makeTopicOperError() method.
Fix exception variable name in new methods, logNoUebEncoder()
and logNoDmaapEncoder().
Change-Id: Iddae5210553662f733b67333b372dec8c3fe2c94
Issue-ID: POLICY-336
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'policy-management/src/main/java/org')
21 files changed, 429 insertions, 468 deletions
diff --git a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java index f531c441..bdb95e77 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsController.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -51,6 +51,12 @@ public interface DroolsController extends Startable, Lockable { public static final String NO_VERSION = "NO-VERSION"; /** + * Factory to track and manage drools controllers + */ + public static final DroolsControllerFactory factory = + new IndexedDroolsControllerFactory(); + + /** * get group id * @return group id */ @@ -106,9 +112,7 @@ public interface DroolsController extends Startable, Lockable { * to the functionality missing (ie. communication infrastructure * not supported. */ - public boolean deliver(TopicSink sink, Object event) - throws IllegalArgumentException, IllegalStateException, - UnsupportedOperationException; + public boolean deliver(TopicSink sink, Object event); /** * @@ -133,7 +137,7 @@ public interface DroolsController extends Startable, Lockable { * @param encodedObject * @return */ - public boolean ownsCoder(Class<? extends Object> coderClass, int modelHash) throws IllegalStateException; + public boolean ownsCoder(Class<? extends Object> coderClass, int modelHash); /** * fetches a class from the model @@ -141,7 +145,7 @@ public interface DroolsController extends Startable, Lockable { * @param className the class to fetch * @return the actual class object, or null if not found */ - public Class<?> fetchModelClass(String className) throws IllegalArgumentException; + public Class<?> fetchModelClass(String className); /** * is this controller Smart? @@ -164,14 +168,14 @@ public interface DroolsController extends Startable, Lockable { public void updateToVersion(String newGroupId, String newArtifactId, String newVersion, List<TopicCoderFilterConfiguration> decoderConfigurations, List<TopicCoderFilterConfiguration> encoderConfigurations) - throws IllegalArgumentException, LinkageError; + throws LinkageError; /** * gets the classnames of facts as well as the current count * @param sessionName the session name * @return map of class to count */ - public Map<String,Integer> factClassNames(String sessionName) throws IllegalArgumentException; + public Map<String,Integer> factClassNames(String sessionName); /** * gets the count of facts for a given session @@ -179,7 +183,7 @@ public interface DroolsController extends Startable, Lockable { * @return the fact count * @throws IllegalArgumentException */ - public long factCount(String sessionName) throws IllegalArgumentException; + public long factCount(String sessionName); /** * gets all the facts of a given class for a given session @@ -208,11 +212,5 @@ public interface DroolsController extends Startable, Lockable { * halts and permanently releases all resources * @throws IllegalStateException */ - public void halt() throws IllegalStateException; - - /** - * Factory to track and manage drools controllers - */ - public static final DroolsControllerFactory factory = - new IndexedDroolsControllerFactory(); + public void halt(); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsControllerFactory.java b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsControllerFactory.java index 0b9f9887..65c9f334 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsControllerFactory.java +++ b/policy-management/src/main/java/org/onap/policy/drools/controller/DroolsControllerFactory.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -207,7 +207,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { protected List<TopicCoderFilterConfiguration> codersAndFilters (Properties properties, List<? extends Topic> topicEntities) { - String PROPERTY_TOPIC_ENTITY_PREFIX; + String propertyTopicEntityPrefix; List<TopicCoderFilterConfiguration> topics2DecodedClasses2Filters = new ArrayList<>(); @@ -222,19 +222,19 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { CommInfrastructure commInfra = topic.getTopicCommInfrastructure(); if (commInfra == CommInfrastructure.UEB) { if (isSource) { - PROPERTY_TOPIC_ENTITY_PREFIX = PolicyProperties.PROPERTY_UEB_SOURCE_TOPICS + "."; + propertyTopicEntityPrefix = PolicyProperties.PROPERTY_UEB_SOURCE_TOPICS + "."; } else { - PROPERTY_TOPIC_ENTITY_PREFIX = PolicyProperties.PROPERTY_UEB_SINK_TOPICS + "."; + propertyTopicEntityPrefix = PolicyProperties.PROPERTY_UEB_SINK_TOPICS + "."; } } else if (commInfra == CommInfrastructure.DMAAP) { if (isSource) { - PROPERTY_TOPIC_ENTITY_PREFIX = PolicyProperties.PROPERTY_DMAAP_SOURCE_TOPICS + "."; + propertyTopicEntityPrefix = PolicyProperties.PROPERTY_DMAAP_SOURCE_TOPICS + "."; } else { - PROPERTY_TOPIC_ENTITY_PREFIX = PolicyProperties.PROPERTY_DMAAP_SINK_TOPICS + "."; + propertyTopicEntityPrefix = PolicyProperties.PROPERTY_DMAAP_SINK_TOPICS + "."; } } else if (commInfra == CommInfrastructure.NOOP) { if (!isSource) - PROPERTY_TOPIC_ENTITY_PREFIX = PolicyProperties.PROPERTY_NOOP_SINK_TOPICS + "."; + propertyTopicEntityPrefix = PolicyProperties.PROPERTY_NOOP_SINK_TOPICS + "."; else continue; } else { @@ -249,7 +249,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { // instead of the ones provided in the platform String customGson = properties.getProperty - (PROPERTY_TOPIC_ENTITY_PREFIX + + (propertyTopicEntityPrefix + aTopic + PolicyProperties.PROPERTY_TOPIC_EVENTS_CUSTOM_MODEL_CODER_GSON_SUFFIX); @@ -264,7 +264,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { } String customJackson = properties.getProperty - (PROPERTY_TOPIC_ENTITY_PREFIX + + (propertyTopicEntityPrefix + aTopic + PolicyProperties.PROPERTY_TOPIC_EVENTS_CUSTOM_MODEL_CODER_JACKSON_SUFFIX); @@ -281,7 +281,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { // 3. second the list of classes associated with each topic String eventClasses = - properties.getProperty(PROPERTY_TOPIC_ENTITY_PREFIX + aTopic + PolicyProperties.PROPERTY_TOPIC_EVENTS_SUFFIX); + properties.getProperty(propertyTopicEntityPrefix + aTopic + PolicyProperties.PROPERTY_TOPIC_EVENTS_SUFFIX); if (eventClasses == null || eventClasses.isEmpty()) { // TODO warn @@ -299,7 +299,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { // 4. third, for each coder class, get the list of field filters String filter = properties.getProperty - (PROPERTY_TOPIC_ENTITY_PREFIX + + (propertyTopicEntityPrefix + aTopic + PolicyProperties.PROPERTY_TOPIC_EVENTS_SUFFIX + "." + aClass + @@ -509,9 +509,7 @@ class IndexedDroolsControllerFactory implements DroolsControllerFactory { @Override public List<DroolsController> inventory() { - List<DroolsController> controllers = - new ArrayList<>(this.droolsControllers.values()); - return controllers; + return new ArrayList<>(this.droolsControllers.values()); } @Override diff --git a/policy-management/src/main/java/org/onap/policy/drools/controller/internal/MavenDroolsController.java b/policy-management/src/main/java/org/onap/policy/drools/controller/internal/MavenDroolsController.java index 8a0073c0..1901526c 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/controller/internal/MavenDroolsController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/controller/internal/MavenDroolsController.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -251,11 +251,10 @@ public class MavenDroolsController implements DroolsController { String customGsonCoderClass = coderConfig.getCustomGsonCoder().getClassContainer(); if (!ReflectionUtil.isClass(this.policyContainer.getClassLoader(), customGsonCoderClass)) { - logger.error(customGsonCoderClass + " cannot be retrieved"); - throw new IllegalArgumentException(customGsonCoderClass + " cannot be retrieved"); + throw makeRetrieveEx(customGsonCoderClass); } else { if (logger.isInfoEnabled()) - logger.info("CLASS FETCHED " + customGsonCoderClass); + logClassFetched(customGsonCoderClass); } } @@ -267,11 +266,10 @@ public class MavenDroolsController implements DroolsController { String customJacksonCoderClass = coderConfig.getCustomJacksonCoder().getClassContainer(); if (!ReflectionUtil.isClass(this.policyContainer.getClassLoader(), customJacksonCoderClass)) { - logger.error(customJacksonCoderClass + " cannot be retrieved"); - throw new IllegalArgumentException(customJacksonCoderClass + " cannot be retrieved"); + throw makeRetrieveEx(customJacksonCoderClass); } else { if (logger.isInfoEnabled()) - logger.info("CLASS FETCHED " + customJacksonCoderClass); + logClassFetched(customJacksonCoderClass); } } @@ -286,11 +284,10 @@ public class MavenDroolsController implements DroolsController { if (!ReflectionUtil.isClass(this.policyContainer.getClassLoader(), potentialCodedClass)) { - logger.error(potentialCodedClass + " cannot be retrieved"); - throw new IllegalArgumentException(potentialCodedClass + " cannot be retrieved"); + throw makeRetrieveEx(potentialCodedClass); } else { if (logger.isInfoEnabled()) - logger.info("CLASS FETCHED " + potentialCodedClass); + logClassFetched(potentialCodedClass); } if (decoder) @@ -309,6 +306,24 @@ public class MavenDroolsController implements DroolsController { } } + /** + * Logs an error and makes an exception for an item that cannot be retrieved. + * @param itemName + * @return a new exception + */ + private IllegalArgumentException makeRetrieveEx(String itemName) { + logger.error(itemName + " cannot be retrieved"); + return new IllegalArgumentException(itemName + " cannot be retrieved"); + } + + /** + * Logs the name of the class that was fetched. + * @param className + */ + private void logClassFetched(String className) { + logger.info("CLASS FETCHED " + className); + } + /** * remove decoders. @@ -521,8 +536,7 @@ public class MavenDroolsController implements DroolsController { } @Override - public boolean deliver(TopicSink sink, Object event) - throws UnsupportedOperationException { + public boolean deliver(TopicSink sink, Object event) { if (logger.isInfoEnabled()) logger.info(this + "DELIVER: " + event + " FROM " + this + " TO " + sink); @@ -665,13 +679,17 @@ public class MavenDroolsController implements DroolsController { return session; } - throw new IllegalArgumentException("Invalid Session Name: " + sessionName); + throw invalidSessNameEx(sessionName); + } + + private IllegalArgumentException invalidSessNameEx(String sessionName) { + return new IllegalArgumentException("Invalid Session Name: " + sessionName); } @Override public Map<String,Integer> factClassNames(String sessionName) { if (sessionName == null || sessionName.isEmpty()) - throw new IllegalArgumentException("Invalid Session Name: " + sessionName); + throw invalidSessNameEx(sessionName); Map<String,Integer> classNames = new HashMap<>(); @@ -697,7 +715,7 @@ public class MavenDroolsController implements DroolsController { @Override public long factCount(String sessionName) { if (sessionName == null || sessionName.isEmpty()) - throw new IllegalArgumentException("Invalid Session Name: " + sessionName); + throw invalidSessNameEx(sessionName); PolicySession session = getSession(sessionName); return session.getKieSession().getFactCount(); @@ -706,7 +724,7 @@ public class MavenDroolsController implements DroolsController { @Override public List<Object> facts(String sessionName, String className, boolean delete) { if (sessionName == null || sessionName.isEmpty()) - throw new IllegalArgumentException("Invalid Session Name: " + sessionName); + throw invalidSessNameEx(sessionName); if (className == null || className.isEmpty()) throw new IllegalArgumentException("Invalid Class Name: " + className); @@ -738,7 +756,7 @@ public class MavenDroolsController implements DroolsController { @Override public List<Object> factQuery(String sessionName, String queryName, String queriedEntity, boolean delete, Object... queryParams) { if (sessionName == null || sessionName.isEmpty()) - throw new IllegalArgumentException("Invalid Session Name: " + sessionName); + throw invalidSessNameEx(sessionName); if (queryName == null || queryName.isEmpty()) throw new IllegalArgumentException("Invalid Query Name: " + queryName); @@ -779,9 +797,7 @@ public class MavenDroolsController implements DroolsController { @Override public Class<?> fetchModelClass(String className) { - Class<?> modelClass = - ReflectionUtil.fetchClass(this.policyContainer.getClassLoader(), className); - return modelClass; + return ReflectionUtil.fetchClass(this.policyContainer.getClassLoader(), className); } /** diff --git a/policy-management/src/main/java/org/onap/policy/drools/controller/internal/NullDroolsController.java b/policy-management/src/main/java/org/onap/policy/drools/controller/internal/NullDroolsController.java index 6dd542c3..245b0b58 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/controller/internal/NullDroolsController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/controller/internal/NullDroolsController.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -106,8 +106,8 @@ public class NullDroolsController implements DroolsController { } @Override - public boolean deliver(TopicSink sink, Object event) throws UnsupportedOperationException { - throw new IllegalStateException(this.getClass().getCanonicalName() + " invoked"); + public boolean deliver(TopicSink sink, Object event) { + throw new IllegalStateException(makeInvokeMsg()); } @Override @@ -127,12 +127,12 @@ public class NullDroolsController implements DroolsController { @Override public boolean ownsCoder(Class<? extends Object> coderClass, int modelHash) { - throw new IllegalStateException(this.getClass().getCanonicalName() + " invoked"); + throw new IllegalStateException(makeInvokeMsg()); } @Override public Class<?> fetchModelClass(String className) { - throw new IllegalArgumentException(this.getClass().getCanonicalName() + " invoked"); + throw new IllegalArgumentException(makeInvokeMsg()); } @Override @@ -151,13 +151,12 @@ public class NullDroolsController implements DroolsController { public void updateToVersion(String newGroupId, String newArtifactId, String newVersion, List<TopicCoderFilterConfiguration> decoderConfigurations, List<TopicCoderFilterConfiguration> encoderConfigurations) - throws IllegalArgumentException, LinkageError { - throw new IllegalArgumentException(this.getClass().getCanonicalName() + " invoked"); + throws LinkageError { + throw new IllegalArgumentException(makeInvokeMsg()); } @Override - public Map<String, Integer> factClassNames(String sessionName) - throws IllegalArgumentException { + public Map<String, Integer> factClassNames(String sessionName) { return new HashMap<>(); } @@ -177,4 +176,8 @@ public class NullDroolsController implements DroolsController { boolean delete, Object... queryParams) { return new ArrayList<>(); } + + private String makeInvokeMsg() { + return this.getClass().getCanonicalName() + " invoked"; + } } diff --git a/policy-management/src/main/java/org/onap/policy/drools/features/PolicyControllerFeatureAPI.java b/policy-management/src/main/java/org/onap/policy/drools/features/PolicyControllerFeatureAPI.java index 9d166f58..d4ebc232 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/features/PolicyControllerFeatureAPI.java +++ b/policy-management/src/main/java/org/onap/policy/drools/features/PolicyControllerFeatureAPI.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -28,6 +28,12 @@ import org.onap.policy.drools.utils.OrderedService; import org.onap.policy.drools.utils.OrderedServiceImpl; public interface PolicyControllerFeatureAPI extends OrderedService { + + /** + * Feature providers implementing this interface + */ + public static final OrderedServiceImpl<PolicyControllerFeatureAPI> providers = + new OrderedServiceImpl<PolicyControllerFeatureAPI>(PolicyControllerFeatureAPI.class); /** * called before creating a controller with name 'name' and @@ -212,11 +218,4 @@ public interface PolicyControllerFeatureAPI extends OrderedService { String topic, Object event, boolean success) {return false;} - - - /** - * Feature providers implementing this interface - */ - public static final OrderedServiceImpl<PolicyControllerFeatureAPI> providers = - new OrderedServiceImpl<PolicyControllerFeatureAPI>(PolicyControllerFeatureAPI.class); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/features/PolicyEngineFeatureAPI.java b/policy-management/src/main/java/org/onap/policy/drools/features/PolicyEngineFeatureAPI.java index eb65c706..956401ad 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/features/PolicyEngineFeatureAPI.java +++ b/policy-management/src/main/java/org/onap/policy/drools/features/PolicyEngineFeatureAPI.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -30,7 +30,12 @@ import org.onap.policy.drools.utils.OrderedServiceImpl; * Policy Engine Feature API. * Provides Interception Points during the Policy Engine lifecycle. */ -public interface PolicyEngineFeatureAPI extends OrderedService { +public interface PolicyEngineFeatureAPI extends OrderedService { + /** + * Feature providers implementing this interface + */ + public static final OrderedServiceImpl<PolicyEngineFeatureAPI> providers = + new OrderedServiceImpl<>(PolicyEngineFeatureAPI.class); /** * intercept before the Policy Engine is commanded to boot. @@ -39,7 +44,7 @@ public interface PolicyEngineFeatureAPI extends OrderedService { * of the operation preventing the invocation of * lower priority features. False, otherwise. */ - public default boolean beforeBoot(PolicyEngine engine, String cliArgs[]) {return false;}; + public default boolean beforeBoot(PolicyEngine engine, String[] cliArgs) {return false;}; /** * intercept after the Policy Engine is booted. @@ -193,10 +198,4 @@ public interface PolicyEngineFeatureAPI extends OrderedService { * lower priority features. False, otherwise. */ public default boolean afterShutdown(PolicyEngine engine) {return false;}; - - /** - * Feature providers implementing this interface - */ - public static final OrderedServiceImpl<PolicyEngineFeatureAPI> providers = - new OrderedServiceImpl<>(PolicyEngineFeatureAPI.class); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/persistence/FileSystemPersistence.java b/policy-management/src/main/java/org/onap/policy/drools/persistence/FileSystemPersistence.java index b436ef97..45c5c428 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/persistence/FileSystemPersistence.java +++ b/policy-management/src/main/java/org/onap/policy/drools/persistence/FileSystemPersistence.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -43,29 +43,29 @@ public class FileSystemPersistence implements SystemPersistence { /** * policy controllers suffix */ - public final static String CONTROLLER_SUFFIX_IDENTIFIER = "-controller"; + public static final String CONTROLLER_SUFFIX_IDENTIFIER = "-controller"; /** * policy controller properties file suffix */ - public final static String PROPERTIES_FILE_CONTROLLER_SUFFIX = + public static final String PROPERTIES_FILE_CONTROLLER_SUFFIX = CONTROLLER_SUFFIX_IDENTIFIER + ".properties"; /** * policy controller properties file suffix */ - public final static String PROPERTIES_FILE_CONTROLLER_BACKUP_SUFFIX = + public static final String PROPERTIES_FILE_CONTROLLER_BACKUP_SUFFIX = CONTROLLER_SUFFIX_IDENTIFIER + ".properties.bak"; /** * policy engine properties file name */ - public final static String PROPERTIES_FILE_ENGINE = "policy-engine.properties"; + public static final String PROPERTIES_FILE_ENGINE = "policy-engine.properties"; /** * Installation environment suffix for files */ - public final static String ENV_SUFFIX = ".environment"; + public static final String ENV_SUFFIX = ".environment"; /** * configuration directory diff --git a/policy-management/src/main/java/org/onap/policy/drools/persistence/SystemPersistence.java b/policy-management/src/main/java/org/onap/policy/drools/persistence/SystemPersistence.java index eb1521ba..0d0a33ce 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/persistence/SystemPersistence.java +++ b/policy-management/src/main/java/org/onap/policy/drools/persistence/SystemPersistence.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -34,6 +34,12 @@ public interface SystemPersistence { public static final String DEFAULT_CONFIGURATION_DIR = "config"; /** + * Persistence Manager. For now it is a file-based properties management, In the future, it will + * probably be DB based, so manager implementation will change. + */ + public static final SystemPersistence manager = new FileSystemPersistence(); + + /** * sets a configuration directory and ensures it exists * * @param configDir configuration directory or null to use the default one @@ -123,10 +129,4 @@ public interface SystemPersistence { * @throws IllegalArgumentException if the name does not lead to a properties configuration */ public Properties getProperties(String name); - - /** - * Persistence Manager. For now it is a file-based properties management, In the future, it will - * probably be DB based, so manager implementation will change. - */ - public static final SystemPersistence manager = new FileSystemPersistence(); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/EventProtocolCoder.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/EventProtocolCoder.java index 54466775..d0008f08 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/EventProtocolCoder.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/EventProtocolCoder.java @@ -1,4 +1,4 @@ -/*- +/* * ============LICENSE_START======================================================= * ONAP * ================================================================================ @@ -39,6 +39,11 @@ import org.slf4j.LoggerFactory; */ public interface EventProtocolCoder { + /** + * singleton reference to the global event protocol coder + */ + public static EventProtocolCoder manager = new MultiplexorEventProtocolCoder(); + public static class CoderFilters { /** @@ -133,8 +138,7 @@ public interface EventProtocolCoder { JsonProtocolFilter protocolFilter, CustomGsonCoder customGsonCoder, CustomJacksonCoder customJacksonCoder, - int modelClassLoaderHash) - throws IllegalArgumentException; + int modelClassLoaderHash); /** * removes all decoders associated with the controller id @@ -144,7 +148,7 @@ public interface EventProtocolCoder { * * @throws IllegalArgumentException if invalid arguments have been provided */ - void removeEncoders(String groupId, String artifactId, String topic) throws IllegalArgumentException; + void removeEncoders(String groupId, String artifactId, String topic); /** * removes decoders associated with the controller id and topic @@ -154,7 +158,7 @@ public interface EventProtocolCoder { * * @throws IllegalArgumentException if invalid arguments have been provided */ - public void removeDecoders(String groupId, String artifactId, String topic) throws IllegalArgumentException; + public void removeDecoders(String groupId, String artifactId, String topic); /** * Given a controller id and a topic, it gives back its filters @@ -167,8 +171,7 @@ public interface EventProtocolCoder { * * @throw IllegalArgumentException if an invalid parameter is passed */ - public List<CoderFilters> getDecoderFilters(String groupId, String artifactId, String topic) - throws IllegalArgumentException; + public List<CoderFilters> getDecoderFilters(String groupId, String artifactId, String topic); /** @@ -182,8 +185,7 @@ public interface EventProtocolCoder { * * @throw IllegalArgumentException if an invalid parameter is passed */ - public ProtocolCoderToolset getDecoders(String groupId, String artifactId, String topic) - throws IllegalArgumentException; + public ProtocolCoderToolset getDecoders(String groupId, String artifactId, String topic); /** * Given a controller id and a topic, it gives back all the decoding configurations @@ -196,8 +198,7 @@ public interface EventProtocolCoder { * * @throw IllegalArgumentException if an invalid parameter is passed */ - public List<ProtocolCoderToolset> getDecoders(String groupId, String artifactId) - throws IllegalArgumentException; + public List<ProtocolCoderToolset> getDecoders(String groupId, String artifactId); /** @@ -207,7 +208,7 @@ public interface EventProtocolCoder { * * @throws IllegalArgumentException if invalid arguments have been provided */ - public List<CoderFilters> getDecoderFilters(String groupId, String artifactId) throws IllegalArgumentException; + public List<CoderFilters> getDecoderFilters(String groupId, String artifactId); /** @@ -221,8 +222,7 @@ public interface EventProtocolCoder { * * @throw IllegalArgumentException if an invalid parameter is passed */ - public List<CoderFilters> getEncoderFilters(String groupId, String artifactId, String topic) - throws IllegalArgumentException; + public List<CoderFilters> getEncoderFilters(String groupId, String artifactId, String topic); /** * gets all encoders associated with the group and artifact ids @@ -231,7 +231,7 @@ public interface EventProtocolCoder { * * @throws IllegalArgumentException if invalid arguments have been provided */ - public List<CoderFilters> getEncoderFilters(String groupId, String artifactId) throws IllegalArgumentException; + public List<CoderFilters> getEncoderFilters(String groupId, String artifactId); /** * Given a controller id, a topic, and a classname, it gives back the classes that implements the decoding @@ -245,8 +245,7 @@ public interface EventProtocolCoder { * * @throw IllegalArgumentException if an invalid parameter is passed */ - public CoderFilters getDecoderFilters(String groupId, String artifactId, String topic, String classname) - throws IllegalArgumentException; + public CoderFilters getDecoderFilters(String groupId, String artifactId, String topic, String classname); /** * is there a decoder supported for the controller id and topic @@ -275,8 +274,7 @@ public interface EventProtocolCoder { JsonProtocolFilter protocolFilter, CustomGsonCoder customGsonCoder, CustomJacksonCoder customJacksonCoder, - int modelClassLoaderHash) - throws IllegalArgumentException; + int modelClassLoaderHash); /** * is there an encoder supported for the controller id and topic @@ -298,8 +296,7 @@ public interface EventProtocolCoder { * @return * @throws IllegalArgumentException invalid arguments passed in */ - public CoderFilters getEncoderFilters(String groupId, String artifactId, String topic, String classname) - throws IllegalArgumentException; + public CoderFilters getEncoderFilters(String groupId, String artifactId, String topic, String classname); /** * get encoder based on topic and encoded class @@ -309,8 +306,7 @@ public interface EventProtocolCoder { * @return * @throws IllegalArgumentException invalid arguments passed in */ - public List<CoderFilters> getReverseEncoderFilters(String topic, String encodedClass) - throws IllegalArgumentException; + public List<CoderFilters> getReverseEncoderFilters(String topic, String encodedClass); /** * gets the identifier of the creator of the encoder @@ -320,8 +316,7 @@ public interface EventProtocolCoder { * @return a drools controller * @throws IllegalArgumentException invalid arguments passed in */ - public DroolsController getDroolsController(String topic, Object encodedClass) - throws IllegalArgumentException; + public DroolsController getDroolsController(String topic, Object encodedClass); /** * gets the identifier of the creator of the encoder @@ -331,8 +326,7 @@ public interface EventProtocolCoder { * @return list of drools controllers * @throws IllegalArgumentException invalid arguments passed in */ - public List<DroolsController> getDroolsControllers(String topic, Object encodedClass) - throws IllegalArgumentException; + public List<DroolsController> getDroolsControllers(String topic, Object encodedClass); /** * decode topic's stringified event (json) to corresponding Event Object. @@ -346,8 +340,7 @@ public interface EventProtocolCoder { * @throws UnsupportedOperationException if the operation is not supported * @throws IllegalStateException if the system is in an illegal state */ - public Object decode(String groupId, String artifactId, String topic, String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException; + public Object decode(String groupId, String artifactId, String topic, String json); /** * encodes topic's stringified event (json) to corresponding Event Object. @@ -359,8 +352,7 @@ public interface EventProtocolCoder { * * @throws IllegalArgumentException invalid arguments passed in */ - public String encode(String groupId, String artifactId, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; + public String encode(String groupId, String artifactId, String topic, Object event); /** * encodes topic's stringified event (json) to corresponding Event Object. @@ -371,8 +363,7 @@ public interface EventProtocolCoder { * @throws IllegalArgumentException invalid arguments passed in * @throws UnsupportedOperationException operation cannot be performed */ - public String encode(String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; + public String encode(String topic, Object event); /** * encodes topic's stringified event (json) to corresponding Event Object. @@ -384,13 +375,7 @@ public interface EventProtocolCoder { * @throws IllegalArgumentException invalid arguments passed in * @throws UnsupportedOperationException operation cannot be performed */ - public String encode(String topic, Object event, DroolsController droolsController) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; - - /** - * singleton reference to the global event protocol coder - */ - public static EventProtocolCoder manager = new MultiplexorEventProtocolCoder(); + public String encode(String topic, Object event, DroolsController droolsController); } /** @@ -423,8 +408,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { JsonProtocolFilter protocolFilter, CustomGsonCoder customGsonCoder, CustomJacksonCoder customJacksonCoder, - int modelClassLoaderHash) - throws IllegalArgumentException { + int modelClassLoaderHash) { logger.info("{}: add-decoder {}:{}:{}:{}:{}:{}:{}:{}", this, groupId, artifactId, topic, eventClass, protocolFilter, customGsonCoder, customJacksonCoder, @@ -442,8 +426,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { JsonProtocolFilter protocolFilter, CustomGsonCoder customGsonCoder, CustomJacksonCoder customJacksonCoder, - int modelClassLoaderHash) - throws IllegalArgumentException { + int modelClassLoaderHash) { logger.info("{}: add-decoder {}:{}:{}:{}:{}:{}:{}:{}", this, groupId, artifactId, topic, eventClass, protocolFilter, customGsonCoder, customJacksonCoder, @@ -456,8 +439,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public void removeDecoders(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public void removeDecoders(String groupId, String artifactId, String topic) { logger.info("{}: remove-decoder {}:{}:{}", this, groupId, artifactId, topic); this.decoders.remove(groupId, artifactId, topic); } @@ -466,8 +448,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public void removeEncoders(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public void removeEncoders(String groupId, String artifactId, String topic) { logger.info("{}: remove-encoder {}:{}:{}", this, groupId, artifactId, topic); this.encoders.remove(groupId, artifactId, topic); } @@ -492,8 +473,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public Object decode(String groupId, String artifactId, String topic, String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException { + public Object decode(String groupId, String artifactId, String topic, String json) { logger.debug("{}: decode {}:{}:{}:{}", this, groupId, artifactId, topic, json); return this.decoders.decode(groupId, artifactId, topic, json); } @@ -502,8 +482,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public String encode(String groupId, String artifactId, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public String encode(String groupId, String artifactId, String topic, Object event) { logger.debug("{}: encode {}:{}:{}:{}", this, groupId, artifactId, topic, event); return this.encoders.encode(groupId, artifactId, topic, event); } @@ -512,8 +491,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public String encode(String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public String encode(String topic, Object event) { logger.debug("{}: encode {}:{}", this, topic, event); return this.encoders.encode(topic, event); } @@ -522,8 +500,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public String encode(String topic, Object event, DroolsController droolsController) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public String encode(String topic, Object event, DroolsController droolsController) { logger.debug("{}: encode {}:{}:{}", this, topic, event, droolsController); return this.encoders.encode(topic, event, droolsController); } @@ -532,8 +509,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<CoderFilters> getDecoderFilters(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public List<CoderFilters> getDecoderFilters(String groupId, String artifactId, String topic) { return this.decoders.getFilters(groupId, artifactId, topic); } @@ -541,8 +517,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public ProtocolCoderToolset getDecoders(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public ProtocolCoderToolset getDecoders(String groupId, String artifactId, String topic) { Pair<ProtocolCoderToolset,ProtocolCoderToolset> decoderToolsets = this.decoders.getCoders(groupId, artifactId, topic); if (decoderToolsets == null) throw new IllegalArgumentException("Decoders not found for " + groupId + ":" + artifactId + ":" + topic); @@ -554,8 +529,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<CoderFilters> getEncoderFilters(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public List<CoderFilters> getEncoderFilters(String groupId, String artifactId, String topic) { return this.encoders.getFilters(groupId, artifactId, topic); } @@ -563,8 +537,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public CoderFilters getDecoderFilters(String groupId, String artifactId, String topic, String classname) - throws IllegalArgumentException { + public CoderFilters getDecoderFilters(String groupId, String artifactId, String topic, String classname) { return this.decoders.getFilters(groupId, artifactId, topic, classname); } @@ -572,8 +545,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public CoderFilters getEncoderFilters(String groupId, String artifactId, String topic, String classname) - throws IllegalArgumentException { + public CoderFilters getEncoderFilters(String groupId, String artifactId, String topic, String classname) { return this.encoders.getFilters(groupId, artifactId, topic, classname); } @@ -581,7 +553,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<CoderFilters> getReverseEncoderFilters(String topic, String encodedClass) throws IllegalArgumentException { + public List<CoderFilters> getReverseEncoderFilters(String topic, String encodedClass) { return this.encoders.getReverseFilters(topic, encodedClass); } @@ -595,8 +567,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * @throws IllegalArgumentException if invalid input */ @Override - public List<ProtocolCoderToolset> getDecoders(String groupId, String artifactId) - throws IllegalArgumentException { + public List<ProtocolCoderToolset> getDecoders(String groupId, String artifactId) { List<Pair<ProtocolCoderToolset,ProtocolCoderToolset>> decoderToolsets = this.decoders.getCoders(groupId, artifactId); if (decoderToolsets == null) @@ -614,7 +585,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<CoderFilters> getDecoderFilters(String groupId, String artifactId) throws IllegalArgumentException { + public List<CoderFilters> getDecoderFilters(String groupId, String artifactId) { return this.decoders.getFilters(groupId, artifactId); } @@ -623,7 +594,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<CoderFilters> getEncoderFilters(String groupId, String artifactId) throws IllegalArgumentException { + public List<CoderFilters> getEncoderFilters(String groupId, String artifactId) { return this.encoders.getFilters(groupId, artifactId); } @@ -631,7 +602,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public DroolsController getDroolsController(String topic, Object encodedClass) throws IllegalArgumentException { + public DroolsController getDroolsController(String topic, Object encodedClass) { return this.encoders.getDroolsController(topic, encodedClass); } @@ -639,7 +610,7 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * {@inheritDoc} */ @Override - public List<DroolsController> getDroolsControllers(String topic, Object encodedClass) throws IllegalArgumentException { + public List<DroolsController> getDroolsControllers(String topic, Object encodedClass) { return this.encoders.getDroolsControllers(topic, encodedClass); } @@ -660,6 +631,16 @@ class MultiplexorEventProtocolCoder implements EventProtocolCoder { * class and best fitted json parsing tools. */ abstract class GenericEventProtocolCoder { + private static final String INVALID_ARTIFACT_ID_MSG = "Invalid artifact id"; + + private static final String INVALID_GROUP_ID_MSG = "Invalid group id"; + + private static final String INVALID_TOPIC_MSG = "Invalid Topic"; + + private static final String UNSUPPORTED_MSG = "Unsupported"; + + private static final String MISSING_CLASS = "class must be provided"; + private static Logger logger = LoggerFactory.getLogger(GenericEventProtocolCoder.class); /** @@ -702,17 +683,16 @@ abstract class GenericEventProtocolCoder { JsonProtocolFilter protocolFilter, CustomGsonCoder customGsonCoder, CustomJacksonCoder customJacksonCoder, - int modelClassLoaderHash) - throws IllegalArgumentException { + int modelClassLoaderHash) { if (groupId == null || groupId.isEmpty()) { - throw new IllegalArgumentException("Invalid group id"); + throw new IllegalArgumentException(INVALID_GROUP_ID_MSG); } if (artifactId == null || artifactId.isEmpty()) - throw new IllegalArgumentException("Invalid artifact id"); + throw new IllegalArgumentException(INVALID_ARTIFACT_ID_MSG); if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); if (eventClass == null) { throw new IllegalArgumentException("Invalid Event Class"); @@ -841,17 +821,16 @@ abstract class GenericEventProtocolCoder { * @param topic topic * @throws IllegalArgumentException if invalid input */ - public void remove(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public void remove(String groupId, String artifactId, String topic) { if (groupId == null || groupId.isEmpty()) - throw new IllegalArgumentException("Invalid group id"); + throw new IllegalArgumentException(INVALID_GROUP_ID_MSG); if (artifactId == null || artifactId.isEmpty()) - throw new IllegalArgumentException("Invalid artifact id"); + throw new IllegalArgumentException(INVALID_ARTIFACT_ID_MSG); if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); String key = this.codersKey(groupId, artifactId, topic); @@ -899,13 +878,13 @@ abstract class GenericEventProtocolCoder { public boolean isCodingSupported(String groupId, String artifactId, String topic) { if (groupId == null || groupId.isEmpty()) - throw new IllegalArgumentException("Invalid group id"); + throw new IllegalArgumentException(INVALID_GROUP_ID_MSG); if (artifactId == null || artifactId.isEmpty()) - throw new IllegalArgumentException("Invalid artifact id"); + throw new IllegalArgumentException(INVALID_ARTIFACT_ID_MSG); if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); String key = this.codersKey(groupId, artifactId, topic); synchronized(this) { @@ -924,8 +903,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalArgumentException if invalid argument is provided * @throws UnsupportedOperationException if the operation cannot be performed */ - public Object decode(String groupId, String artifactId, String topic, String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException { + public Object decode(String groupId, String artifactId, String topic, String json) { if (!isCodingSupported(groupId, artifactId, topic)) throw new IllegalArgumentException("Unsupported:" + codersKey(groupId, artifactId, topic) + " for encoding"); @@ -974,8 +952,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalArgumentException if invalid argument is provided * @throws UnsupportedOperationException if the operation cannot be performed */ - public String encode(String groupId, String artifactId, String topic, Object event) - throws IllegalArgumentException, UnsupportedOperationException { + public String encode(String groupId, String artifactId, String topic, Object event) { if (!isCodingSupported(groupId, artifactId, topic)) throw new IllegalArgumentException @@ -998,8 +975,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalArgumentException if invalid argument is provided * @throws UnsupportedOperationException if the operation cannot be performed */ - protected String encodeInternal(String key, Object event) - throws IllegalArgumentException, UnsupportedOperationException { + protected String encodeInternal(String key, Object event) { logger.debug("{}: encode for {}: {}", this, key, event); @@ -1045,8 +1021,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalArgumentException if invalid argument is provided * @throws UnsupportedOperationException if the operation cannot be performed */ - public String encode(String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public String encode(String topic, Object event) { if (event == null) throw new IllegalArgumentException("Invalid encoded class"); @@ -1074,8 +1049,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalArgumentException if invalid argument is provided * @throws UnsupportedOperationException if the operation cannot be performed */ - public String encode(String topic, Object encodedClass, DroolsController droolsController) - throws IllegalArgumentException, IllegalArgumentException, UnsupportedOperationException { + public String encode(String topic, Object encodedClass, DroolsController droolsController) { if (encodedClass == null) throw new IllegalArgumentException("Invalid encoded class"); @@ -1095,8 +1069,7 @@ abstract class GenericEventProtocolCoder { * @throws IllegalStateException * @throws IllegalArgumentException */ - protected List<DroolsController> droolsCreators(String topic, Object encodedClass) - throws IllegalStateException, IllegalArgumentException { + protected List<DroolsController> droolsCreators(String topic, Object encodedClass) { List<DroolsController> droolsControllers = new ArrayList<>(); @@ -1152,8 +1125,7 @@ abstract class GenericEventProtocolCoder { * @return list of coders * @throws IllegalArgumentException if invalid input */ - public List<CoderFilters> getFilters(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public List<CoderFilters> getFilters(String groupId, String artifactId, String topic) { if (!isCodingSupported(groupId, artifactId, topic)) throw new IllegalArgumentException("Unsupported:" + codersKey(groupId, artifactId, topic)); @@ -1172,15 +1144,13 @@ abstract class GenericEventProtocolCoder { * @return list of coders * @throws IllegalArgumentException if invalid input */ - public Pair<ProtocolCoderToolset,ProtocolCoderToolset> getCoders(String groupId, String artifactId, String topic) - throws IllegalArgumentException { + public Pair<ProtocolCoderToolset,ProtocolCoderToolset> getCoders(String groupId, String artifactId, String topic) { if (!isCodingSupported(groupId, artifactId, topic)) throw new IllegalArgumentException("Unsupported:" + codersKey(groupId, artifactId, topic)); String key = this.codersKey(groupId, artifactId, topic); - Pair<ProtocolCoderToolset,ProtocolCoderToolset> coderTools = coders.get(key); - return coderTools; + return coders.get(key); } /** @@ -1191,14 +1161,13 @@ abstract class GenericEventProtocolCoder { * @return list of coders * @throws IllegalArgumentException if invalid input */ - public List<CoderFilters> getFilters(String groupId, String artifactId) - throws IllegalArgumentException { + public List<CoderFilters> getFilters(String groupId, String artifactId) { if (groupId == null || groupId.isEmpty()) - throw new IllegalArgumentException("Invalid group id"); + throw new IllegalArgumentException(INVALID_GROUP_ID_MSG); if (artifactId == null || artifactId.isEmpty()) - throw new IllegalArgumentException("Invalid artifact id"); + throw new IllegalArgumentException(INVALID_ARTIFACT_ID_MSG); String key = this.codersKey(groupId, artifactId, ""); @@ -1220,14 +1189,13 @@ abstract class GenericEventProtocolCoder { * @return list of coders * @throws IllegalArgumentException if invalid input */ - public List<Pair<ProtocolCoderToolset,ProtocolCoderToolset>> getCoders(String groupId, String artifactId) - throws IllegalArgumentException { + public List<Pair<ProtocolCoderToolset,ProtocolCoderToolset>> getCoders(String groupId, String artifactId) { if (groupId == null || groupId.isEmpty()) - throw new IllegalArgumentException("Invalid group id"); + throw new IllegalArgumentException(INVALID_GROUP_ID_MSG); if (artifactId == null || artifactId.isEmpty()) - throw new IllegalArgumentException("Invalid artifact id"); + throw new IllegalArgumentException(INVALID_ARTIFACT_ID_MSG); String key = this.codersKey(groupId, artifactId, ""); @@ -1252,8 +1220,7 @@ abstract class GenericEventProtocolCoder { * @return list of coders * @throws IllegalArgumentException if invalid input */ - public CoderFilters getFilters(String groupId, String artifactId, String topic, String classname) - throws IllegalArgumentException { + public CoderFilters getFilters(String groupId, String artifactId, String topic, String classname) { if (!isCodingSupported(groupId, artifactId, topic)) throw new IllegalArgumentException("Unsupported:" + codersKey(groupId, artifactId, topic)); @@ -1274,14 +1241,13 @@ abstract class GenericEventProtocolCoder { * @return * @throws IllegalArgumentException */ - public List<CoderFilters> getReverseFilters(String topic, String codedClass) - throws IllegalArgumentException { + public List<CoderFilters> getReverseFilters(String topic, String codedClass) { if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Unsupported"); + throw new IllegalArgumentException(UNSUPPORTED_MSG); if (codedClass == null) - throw new IllegalArgumentException("class must be provided"); + throw new IllegalArgumentException(MISSING_CLASS); String key = this.reverseCodersKey(topic, codedClass); List<Pair<ProtocolCoderToolset,ProtocolCoderToolset>> toolsets = this.reverseCoders.get(key); @@ -1305,14 +1271,13 @@ abstract class GenericEventProtocolCoder { * @return * @throws IllegalArgumentException */ - DroolsController getDroolsController(String topic, Object fact) - throws IllegalArgumentException { + DroolsController getDroolsController(String topic, Object fact) { if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Unsupported"); + throw new IllegalArgumentException(UNSUPPORTED_MSG); if (fact == null) - throw new IllegalArgumentException("class must be provided"); + throw new IllegalArgumentException(MISSING_CLASS); List<DroolsController> droolsControllers = droolsCreators(topic, fact); @@ -1335,14 +1300,13 @@ abstract class GenericEventProtocolCoder { * @return * @throws IllegalArgumentException */ - List<DroolsController> getDroolsControllers(String topic, Object fact) - throws IllegalArgumentException { + List<DroolsController> getDroolsControllers(String topic, Object fact) { if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Unsupported"); + throw new IllegalArgumentException(UNSUPPORTED_MSG); if (fact == null) - throw new IllegalArgumentException("class must be provided"); + throw new IllegalArgumentException(MISSING_CLASS); List<DroolsController> droolsControllers = droolsCreators(topic, fact); if (droolsControllers.size() > 1) { diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilter.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilter.java index c5f82a47..a5902d66 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilter.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/JsonProtocolFilter.java @@ -1,4 +1,4 @@ -/*- +/* * ============LICENSE_START======================================================= * ONAP * ================================================================================ @@ -37,6 +37,7 @@ import com.google.gson.JsonParser; */ public class JsonProtocolFilter { + private static final String MISSING_RULE_NAME = "no rule name provided"; /** * Logger */ @@ -128,35 +129,11 @@ public class JsonProtocolFilter { protected List<FilterRule> rules = new CopyOnWriteArrayList<>(); /** - * - * @param rawFilters raw filter initialization - * - * @throws IllegalArgumentException an invalid input has been provided - */ - public static JsonProtocolFilter fromRawFilters(List<Pair<String, String>> rawFilters) - throws IllegalArgumentException { - - if (rawFilters == null) { - throw new IllegalArgumentException("No raw filters provided"); - } - - List<FilterRule> filters = new ArrayList<>(); - for (Pair<String, String> filterPair: rawFilters) { - if (filterPair.first() == null || filterPair.first().isEmpty()) { - continue; - } - - filters.add(new FilterRule(filterPair.first(), filterPair.second())); - } - return new JsonProtocolFilter(filters); - } - - /** * Create a Protocol Filter * * @throws IllegalArgumentException an invalid input has been provided */ - public JsonProtocolFilter() throws IllegalArgumentException {} + public JsonProtocolFilter() {} /** * @@ -164,7 +141,7 @@ public class JsonProtocolFilter { * * @throws IllegalArgumentException an invalid input has been provided */ - public JsonProtocolFilter(List<FilterRule> filters) throws IllegalArgumentException { + public JsonProtocolFilter(List<FilterRule> filters) { List<FilterRule> temp = new ArrayList<>(); for (FilterRule rule : filters) { if (rule.getName() == null || rule.getName().isEmpty()) { @@ -180,6 +157,29 @@ public class JsonProtocolFilter { this.rules.addAll(temp); } + + /** + * + * @param rawFilters raw filter initialization + * + * @throws IllegalArgumentException an invalid input has been provided + */ + public static JsonProtocolFilter fromRawFilters(List<Pair<String, String>> rawFilters) { + + if (rawFilters == null) { + throw new IllegalArgumentException("No raw filters provided"); + } + + List<FilterRule> filters = new ArrayList<>(); + for (Pair<String, String> filterPair: rawFilters) { + if (filterPair.first() == null || filterPair.first().isEmpty()) { + continue; + } + + filters.add(new FilterRule(filterPair.first(), filterPair.second())); + } + return new JsonProtocolFilter(filters); + } /** * are there any filters? @@ -198,7 +198,7 @@ public class JsonProtocolFilter { * * @throws IllegalArgumentException an invalid input has been provided */ - public boolean accept(JsonElement json) throws IllegalArgumentException { + public boolean accept(JsonElement json) { if (json == null) { throw new IllegalArgumentException("no JSON provided"); } @@ -248,7 +248,7 @@ public class JsonProtocolFilter { * * @throws IllegalArgumentException an invalid input has been provided */ - public boolean accept(String json) throws IllegalArgumentException { + public boolean accept(String json) { if (json == null || json.isEmpty()) { throw new IllegalArgumentException("no JSON provided"); } @@ -279,7 +279,7 @@ public class JsonProtocolFilter { public List<FilterRule> getRules(String name) { if (name == null || name.isEmpty()) - throw new IllegalArgumentException("no rule name provided"); + throw new IllegalArgumentException(MISSING_RULE_NAME); ArrayList<FilterRule> temp = new ArrayList<>(); for (FilterRule rule : this.rules) { @@ -300,7 +300,7 @@ public class JsonProtocolFilter { public void deleteRules(String name) { if (name == null || name.isEmpty()) - throw new IllegalArgumentException("no rule name provided"); + throw new IllegalArgumentException(MISSING_RULE_NAME); List<FilterRule> temp = new ArrayList<>(); for (FilterRule rule : this.rules) { @@ -313,7 +313,7 @@ public class JsonProtocolFilter { public void deleteRule(String name, String regex) { if (name == null || name.isEmpty()) - throw new IllegalArgumentException("no rule name provided"); + throw new IllegalArgumentException(MISSING_RULE_NAME); String nonNullRegex = regex; if (regex == null || regex.isEmpty()) { @@ -332,7 +332,7 @@ public class JsonProtocolFilter { public void addRule(String name, String regex) { if (name == null || name.isEmpty()) - throw new IllegalArgumentException("no rule name provided"); + throw new IllegalArgumentException(MISSING_RULE_NAME); String nonNullRegex = regex; if (regex == null || regex.isEmpty()) { diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolset.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolset.java index cb039ee5..7ee8b08a 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolset.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/ProtocolCoderToolset.java @@ -1,4 +1,4 @@ -/*- +/* * ============LICENSE_START======================================================= * ONAP * ================================================================================ @@ -20,21 +20,6 @@ package org.onap.policy.drools.protocol.coders; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonParser; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Type; @@ -44,6 +29,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; + import org.onap.policy.drools.controller.DroolsController; import org.onap.policy.drools.protocol.coders.EventProtocolCoder.CoderFilters; import org.onap.policy.drools.protocol.coders.TopicCoderFilterConfiguration.CustomCoder; @@ -52,6 +38,21 @@ import org.onap.policy.drools.protocol.coders.TopicCoderFilterConfiguration.Cust import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + /** * Protocol Coding/Decoding Toolset */ @@ -109,7 +110,7 @@ public abstract class ProtocolCoderToolset { */ public ProtocolCoderToolset(String topic, String controllerId, String groupId, String artifactId, String codedClass, JsonProtocolFilter filters, CustomCoder customCoder, - int modelClassLoaderHash) throws IllegalArgumentException { + int modelClassLoaderHash) { if (topic == null || controllerId == null || groupId == null || artifactId == null || codedClass == null || filters == null || topic.isEmpty() || controllerId.isEmpty()) { @@ -243,8 +244,7 @@ public abstract class ProtocolCoderToolset { * @throws UnsupportedOperationException can't filter * @throws IllegalArgumentException invalid input */ - protected CoderFilters filter(String json) - throws UnsupportedOperationException, IllegalArgumentException, IllegalStateException { + protected CoderFilters filter(String json) { // 1. Get list of decoding classes for this controller Id and topic @@ -297,8 +297,7 @@ public abstract class ProtocolCoderToolset { * @throws IllegalArgumentException if an invalid parameter has been received * @throws UnsupportedOperationException if parsing into POJO is not possible */ - public abstract Object decode(String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException; + public abstract Object decode(String json); /** * Encodes a POJO object into a JSON String @@ -308,8 +307,7 @@ public abstract class ProtocolCoderToolset { * @throws IllegalArgumentException if an invalid parameter has been received * @throws UnsupportedOperationException if parsing into POJO is not possible */ - public abstract String encode(Object event) - throws IllegalArgumentException, UnsupportedOperationException; + public abstract String encode(Object event); @Override public String toString() { @@ -328,7 +326,11 @@ public abstract class ProtocolCoderToolset { * Tools used for encoding/decoding using Jackson */ class JacksonProtocolCoderToolset extends ProtocolCoderToolset { - private static Logger logger = LoggerFactory.getLogger(JacksonProtocolCoderToolset.class); + private static final String WARN_FETCH_FAILED = "{}: cannot fetch application class {}"; +private static final String WARN_FETCH_FAILED_BECAUSE = "{}: cannot fetch application class {} because of {}"; +private static final String FETCH_FAILED = "cannot fetch application class "; +private static final String ENCODE_FAILED = "event cannot be encoded"; +private static Logger logger = LoggerFactory.getLogger(JacksonProtocolCoderToolset.class); /** * decoder */ @@ -381,8 +383,7 @@ class JacksonProtocolCoderToolset extends ProtocolCoderToolset { * {@inheritDoc} */ @Override - public Object decode(String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException { + public Object decode(String json) { // 0. Use custom coder if available @@ -408,21 +409,20 @@ class JacksonProtocolCoderToolset extends ProtocolCoderToolset { try { decoderClass = droolsController.fetchModelClass(decoderFilter.getCodedClass()); if (decoderClass == null) { - logger.warn("{}: cannot fetch application class {}", this, decoderFilter.getCodedClass()); + logger.warn(WARN_FETCH_FAILED, this, decoderFilter.getCodedClass()); throw new IllegalStateException( - "cannot fetch application class " + decoderFilter.getCodedClass()); + FETCH_FAILED + decoderFilter.getCodedClass()); } } catch (final Exception e) { - logger.warn("{}: cannot fetch application class {} because of {}", this, + logger.warn(WARN_FETCH_FAILED_BECAUSE, this, decoderFilter.getCodedClass(), e.getMessage()); throw new UnsupportedOperationException( - "cannot fetch application class " + decoderFilter.getCodedClass(), e); + FETCH_FAILED + decoderFilter.getCodedClass(), e); } try { - final Object fact = this.decoder.readValue(json, decoderClass); - return fact; + return this.decoder.readValue(json, decoderClass); } catch (final Exception e) { logger.warn("{} cannot decode {} into {} because of {}", this, json, decoderClass.getName(), e.getMessage(), e); @@ -435,8 +435,7 @@ class JacksonProtocolCoderToolset extends ProtocolCoderToolset { * {@inheritDoc} */ @Override - public String encode(Object event) - throws IllegalArgumentException, UnsupportedOperationException { + public String encode(Object event) { // 0. Use custom coder if available @@ -446,11 +445,10 @@ class JacksonProtocolCoderToolset extends ProtocolCoderToolset { } try { - final String encodedEvent = this.encoder.writeValueAsString(event); - return encodedEvent; + return this.encoder.writeValueAsString(event); } catch (final JsonProcessingException e) { logger.error("{} cannot encode {} because of {}", this, event, e.getMessage(), e); - throw new UnsupportedOperationException("event cannot be encoded"); + throw new UnsupportedOperationException(ENCODE_FAILED); } } @@ -491,7 +489,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { implements JsonSerializer<ZonedDateTime>, JsonDeserializer<ZonedDateTime> { @Override public ZonedDateTime deserialize(JsonElement element, Type type, - JsonDeserializationContext context) throws JsonParseException { + JsonDeserializationContext context) { try { return ZonedDateTime.parse(element.getAsString(), format); } catch (final Exception e) { @@ -511,8 +509,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { implements JsonSerializer<Instant>, JsonDeserializer<Instant> { @Override - public Instant deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) - throws JsonParseException { + public Instant deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) { return Instant.ofEpochMilli(json.getAsLong()); } @@ -578,8 +575,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { * {@inheritDoc} */ @Override - public Object decode(String json) - throws IllegalArgumentException, UnsupportedOperationException, IllegalStateException { + public Object decode(String json) { final DroolsController droolsController = DroolsController.factory.get(this.groupId, this.artifactId, ""); @@ -617,8 +613,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { final Object gsonObject = gsonField.get(null); final Method fromJsonMethod = gsonObject.getClass().getDeclaredMethod("fromJson", new Class[] {String.class, Class.class}); - final Object fact = fromJsonMethod.invoke(gsonObject, json, decoderClass); - return fact; + return fromJsonMethod.invoke(gsonObject, json, decoderClass); } catch (final Exception e) { logger.warn("{}: cannot fetch application class {} because of {}", this, decoderFilter.getCodedClass(), e.getMessage()); @@ -627,8 +622,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { } } else { try { - final Object fact = this.decoder.fromJson(json, decoderClass); - return fact; + return this.decoder.fromJson(json, decoderClass); } catch (final Exception e) { logger.warn("{} cannot decode {} into {} because of {}", this, json, decoderClass.getName(), e.getMessage(), e); @@ -644,8 +638,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { * {@inheritDoc} */ @Override - public String encode(Object event) - throws IllegalArgumentException, UnsupportedOperationException { + public String encode(Object event) { if (this.customCoder != null) { try { @@ -657,8 +650,7 @@ class GsonProtocolCoderToolset extends ProtocolCoderToolset { final Object gsonObject = gsonField.get(null); final Method toJsonMethod = gsonObject.getClass().getDeclaredMethod("toJson", new Class[] {Object.class}); - final String encodedJson = (String) toJsonMethod.invoke(gsonObject, event); - return encodedJson; + return (String) toJsonMethod.invoke(gsonObject, event); } catch (final Exception e) { logger.warn("{} cannot custom-encode {} because of {}", this, event, e.getMessage(), e); throw new UnsupportedOperationException("event cannot be encoded", e); diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/TopicCoderFilterConfiguration.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/TopicCoderFilterConfiguration.java index 93737267..7c1b128f 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/TopicCoderFilterConfiguration.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/coders/TopicCoderFilterConfiguration.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -28,7 +28,7 @@ public class TopicCoderFilterConfiguration { * Custom coder, contains class and static field to access parser that the controller * desires to use instead of the framework provided parser */ - public static abstract class CustomCoder { + public abstract static class CustomCoder { protected String className; protected String staticCoderField; @@ -41,7 +41,7 @@ public class TopicCoderFilterConfiguration { * * @param rawCustomCoder with format: <class-containing-custom-coder>,<static-coder-field> */ - public CustomCoder(String rawCustomCoder) throws IllegalArgumentException { + public CustomCoder(String rawCustomCoder) { if (rawCustomCoder != null && !rawCustomCoder.isEmpty()) { this.className = rawCustomCoder.substring(0,rawCustomCoder.indexOf(",")); @@ -62,7 +62,7 @@ public class TopicCoderFilterConfiguration { * @param classContainer * @param staticCoderField */ - public CustomCoder(String className, String staticCoderField) throws IllegalArgumentException { + public CustomCoder(String className, String staticCoderField) { if (className == null || className.isEmpty()) { throw new IllegalArgumentException("No classname to create CustomCoder cannot be created"); } @@ -120,7 +120,7 @@ public class TopicCoderFilterConfiguration { super(className, staticCoderField); } - public CustomGsonCoder(String customGson) throws IllegalArgumentException { + public CustomGsonCoder(String customGson) { super(customGson); } @@ -139,7 +139,7 @@ public class TopicCoderFilterConfiguration { super(className, staticCoderField); } - public CustomJacksonCoder(String customJackson) throws IllegalArgumentException { + public CustomJacksonCoder(String customJackson) { super(customJackson); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/ControllerConfiguration.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/ControllerConfiguration.java index 845c4944..62b66611 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/ControllerConfiguration.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/ControllerConfiguration.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -68,7 +68,7 @@ public class ControllerConfiguration { private DroolsConfiguration drools; @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<>(); - protected final static Object NOT_FOUND_VALUE = new Object(); + protected static final Object NOT_FOUND_VALUE = new Object(); /** * No args constructor for use in serialization @@ -259,7 +259,7 @@ public class ControllerConfiguration { if (other == this) { return true; } - if ((other instanceof ControllerConfiguration) == false) { + if (!(other instanceof ControllerConfiguration)) { return false; } ControllerConfiguration rhs = ((ControllerConfiguration) other); diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/DroolsConfiguration.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/DroolsConfiguration.java index e822d88e..cac4f565 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/DroolsConfiguration.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/DroolsConfiguration.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -64,7 +64,7 @@ public class DroolsConfiguration { private String version; @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<>(); - protected final static Object NOT_FOUND_VALUE = new Object(); + protected static final Object NOT_FOUND_VALUE = new Object(); /** * No args constructor for use in serialization @@ -257,7 +257,7 @@ public class DroolsConfiguration { if (other == this) { return true; } - if ((other instanceof DroolsConfiguration) == false) { + if (!(other instanceof DroolsConfiguration)) { return false; } DroolsConfiguration rhs = ((DroolsConfiguration) other); diff --git a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/PdpdConfiguration.java b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/PdpdConfiguration.java index c7a227b1..29888bbb 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/PdpdConfiguration.java +++ b/policy-management/src/main/java/org/onap/policy/drools/protocol/configuration/PdpdConfiguration.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -70,7 +70,7 @@ public class PdpdConfiguration { private List<ControllerConfiguration> controllers = new ArrayList<>(); @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<>(); - protected final static Object NOT_FOUND_VALUE = new Object(); + protected static final Object NOT_FOUND_VALUE = new Object(); /** * No args constructor for use in serialization @@ -197,8 +197,7 @@ public class PdpdConfiguration { return this; } - @SuppressWarnings("unchecked") - protected boolean declaredProperty(String name, Object value) { + protected boolean declaredProperty(String name, Object value) { switch (name) { case "requestID": callSetRequestId(value); @@ -262,7 +261,7 @@ public class PdpdConfiguration { if (other == this) { return true; } - if ((other instanceof PdpdConfiguration) == false) { + if (!(other instanceof PdpdConfiguration)) { return false; } PdpdConfiguration rhs = (PdpdConfiguration) other; @@ -285,7 +284,8 @@ public class PdpdConfiguration { } } - public void callSetControllers(Object value) { + @SuppressWarnings("unchecked") + public void callSetControllers(Object value) { if (value instanceof List) { setControllers((List<ControllerConfiguration> ) value); } else { diff --git a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java index 25f378a7..cd1edca5 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java +++ b/policy-management/src/main/java/org/onap/policy/drools/server/restful/RestManager.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -1816,7 +1816,7 @@ public class RestManager { return Response.status(Status.OK).entity(source).build(); else return Response.status(Status.NOT_ACCEPTABLE) - .entity(new Error("cannot perform operation on " + topic)).build(); + .entity(makeTopicOperError(topic)).build(); } @DELETE @@ -1833,7 +1833,11 @@ public class RestManager { return Response.status(Status.OK).entity(source).build(); else return Response.status(Status.NOT_ACCEPTABLE) - .entity(new Error("cannot perform operation on " + topic)).build(); + .entity(makeTopicOperError(topic)).build(); + } + + private Error makeTopicOperError(String topic) { + return new Error("cannot perform operation on " + topic); } @GET @@ -1858,7 +1862,7 @@ public class RestManager { return Response.status(Status.OK).entity(source).build(); else return Response.status(Status.NOT_ACCEPTABLE) - .entity(new Error("cannot perform operation on " + topic)).build(); + .entity(makeTopicOperError(topic)).build(); } @DELETE @@ -1875,7 +1879,7 @@ public class RestManager { return Response.status(Status.OK).entity(source).build(); else return Response.status(Status.SERVICE_UNAVAILABLE) - .entity(new Error("cannot perform operation on " + topic)).build(); + .entity(makeTopicOperError(topic)).build(); } @PUT @@ -1904,23 +1908,25 @@ public class RestManager { return Response.status(Status.NOT_ACCEPTABLE) .entity(new Error("Failure to inject event over " + topic)).build(); } catch (final IllegalArgumentException e) { - logger.debug("{}: cannot offer for encoder ueb topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoUebEncoder(topic, e); return Response.status(Response.Status.NOT_FOUND).entity(new Error(topic + " not found")) .build(); } catch (final IllegalStateException e) { - logger.debug("{}: cannot offer for encoder ueb topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoUebEncoder(topic, e); return Response.status(Response.Status.NOT_ACCEPTABLE) .entity(new Error(topic + " not acceptable due to current state")).build(); } catch (final Exception e) { - logger.debug("{}: cannot offer for encoder ueb topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoUebEncoder(topic, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR) .entity(new Error(e.getMessage())).build(); } } + private void logNoUebEncoder(String topic, Exception ex) { + logger.debug("{}: cannot offer for encoder ueb topic for {} because of {}", this, topic, + ex.getMessage(), ex); + } + @PUT @Path("engine/topics/sources/dmaap/{topic}/events") @Consumes(MediaType.TEXT_PLAIN) @@ -1948,23 +1954,25 @@ public class RestManager { return Response.status(Status.NOT_ACCEPTABLE) .entity(new Error("Failure to inject event over " + topic)).build(); } catch (final IllegalArgumentException e) { - logger.debug("{}: cannot offer for encoder dmaap topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoDmaapEncoder(topic, e); return Response.status(Response.Status.NOT_FOUND).entity(new Error(topic + " not found")) .build(); } catch (final IllegalStateException e) { - logger.debug("{}: cannot offer for encoder dmaap topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoDmaapEncoder(topic, e); return Response.status(Response.Status.NOT_ACCEPTABLE) .entity(new Error(topic + " not acceptable due to current state")).build(); } catch (final Exception e) { - logger.debug("{}: cannot offer for encoder dmaap topic for {} because of {}", this, topic, - e.getMessage(), e); + logNoDmaapEncoder(topic, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR) .entity(new Error(e.getMessage())).build(); } } + private void logNoDmaapEncoder(String topic, Exception ex) { + logger.debug("{}: cannot offer for encoder dmaap topic for {} because of {}", this, topic, + ex.getMessage(), ex); + } + @GET @Path("engine/tools/uuid") @ApiOperation(value = "Produces an UUID", notes = "UUID generation utility") @@ -2122,18 +2130,18 @@ public class RestManager { * Generic Error Reporting class */ public static class Error { - private String error; + private String msg; - public Error(String error) { - this.setError(error); + public Error(String msg) { + this.setError(msg); } public String getError() { - return error; + return msg; } - public void setError(String error) { - this.error = error; + public void setError(String msg) { + this.msg = msg; } } diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/Main.java b/policy-management/src/main/java/org/onap/policy/drools/system/Main.java index 61719312..314bbc04 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/system/Main.java +++ b/policy-management/src/main/java/org/onap/policy/drools/system/Main.java @@ -58,7 +58,7 @@ public class Main { * @param args program arguments * @throws IOException */ - public static void main(String args[]) { + public static void main(String[] args) { /* logging defaults */ diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyController.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyController.java index e6e1ca7e..5324937e 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyController.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -41,6 +41,12 @@ import org.onap.policy.drools.protocol.configuration.DroolsConfiguration; public interface PolicyController extends Startable, Lockable { /** + * Factory that tracks and manages Policy Controllers + */ + public static PolicyControllerFactory factory = + new IndexedPolicyControllerFactory(); + + /** * name of this Policy Controller */ public String getName(); @@ -91,20 +97,12 @@ public interface PolicyController extends Startable, Lockable { * not supported. */ public boolean deliver(CommInfrastructure busType, String topic, - Object event) - throws IllegalArgumentException, IllegalStateException, - UnsupportedOperationException; + Object event); /** * halts and permanently releases all resources * @throws IllegalStateException */ - public void halt() throws IllegalStateException; - - /** - * Factory that tracks and manages Policy Controllers - */ - public static PolicyControllerFactory factory = - new IndexedPolicyControllerFactory(); + public void halt(); } diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyControllerFactory.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyControllerFactory.java index 8c188c0b..c5787dda 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyControllerFactory.java +++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyControllerFactory.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -50,8 +50,7 @@ public interface PolicyControllerFactory { * * @throws IllegalArgumentException invalid values provided in properties */ - public PolicyController build(String name, Properties properties) - throws IllegalArgumentException; + public PolicyController build(String name, Properties properties); /** * patches (updates) a controller from a critical configuration update. @@ -82,8 +81,7 @@ public interface PolicyControllerFactory { * @throws IllegalArgumentException * @throws IllegalStateException */ - public PolicyController get(DroolsController droolsController) - throws IllegalArgumentException, IllegalStateException; + public PolicyController get(DroolsController droolsController); /** * Makes the Policy Controller identified by controllerName not operational, but @@ -92,7 +90,7 @@ public interface PolicyControllerFactory { * @param controllerName name of the policy controller * @throws IllegalArgumentException invalid arguments */ - public void shutdown(String controllerName) throws IllegalArgumentException;; + public void shutdown(String controllerName); /** * Makes the Policy Controller identified by controller not operational, but @@ -101,7 +99,7 @@ public interface PolicyControllerFactory { * @param controller a Policy Controller * @throws IllegalArgumentException invalid arguments */ - public void shutdown(PolicyController controller) throws IllegalArgumentException; + public void shutdown(PolicyController controller); /** * Releases all Policy Controllers from operation @@ -114,7 +112,7 @@ public interface PolicyControllerFactory { * @param controllerName name of the policy controller * @throws IllegalArgumentException invalid arguments */ - public void destroy(String controllerName) throws IllegalArgumentException;; + public void destroy(String controllerName); /** * Destroys this Policy Controller @@ -122,7 +120,7 @@ public interface PolicyControllerFactory { * @param controller a Policy Controller * @throws IllegalArgumentException invalid arguments */ - public void destroy(PolicyController controller) throws IllegalArgumentException; + public void destroy(PolicyController controller); /** * Releases all Policy Controller resources @@ -137,8 +135,7 @@ public interface PolicyControllerFactory { * @throws IllegalArgumentException * @throws IllegalStateException */ - public PolicyController get(String policyControllerName) - throws IllegalArgumentException, IllegalStateException; + public PolicyController get(String policyControllerName); /** * gets the Policy Controller identified by group and artifact ids @@ -149,8 +146,7 @@ public interface PolicyControllerFactory { * @throws IllegalArgumentException * @throws IllegalStateException */ - public PolicyController get(String groupId, String artifactId) - throws IllegalArgumentException, IllegalStateException; + public PolicyController get(String groupId, String artifactId); /** * get features attached to the Policy Controllers @@ -162,8 +158,7 @@ public interface PolicyControllerFactory { * get named feature attached to the Policy Controllers * @return the feature */ - public PolicyControllerFeatureAPI getFeatureProvider(String featureName) - throws IllegalArgumentException; + public PolicyControllerFeatureAPI getFeatureProvider(String featureName); /** * get features attached to the Policy Controllers @@ -213,8 +208,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public synchronized PolicyController build(String name, Properties properties) - throws IllegalArgumentException { + public synchronized PolicyController build(String name, Properties properties) { if (this.policyControllers.containsKey(name)) { return this.policyControllers.get(name); @@ -241,11 +235,10 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public synchronized PolicyController patch(String name, DroolsConfiguration droolsConfig) - throws IllegalArgumentException { + public synchronized PolicyController patch(String name, DroolsConfiguration droolsConfig) { if (name == null || name.isEmpty() || !this.policyControllers.containsKey(name)) { - throw new IllegalArgumentException("Invalid " + name); + throw makeArgEx(name); } if (droolsConfig == null) @@ -273,8 +266,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public PolicyController patch(PolicyController controller, DroolsConfiguration droolsConfig) - throws IllegalArgumentException { + public PolicyController patch(PolicyController controller, DroolsConfiguration droolsConfig) { if (controller == null) throw new IllegalArgumentException("Not a valid controller: null"); @@ -300,10 +292,10 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public void shutdown(String controllerName) throws IllegalArgumentException { + public void shutdown(String controllerName) { if (controllerName == null || controllerName.isEmpty()) { - throw new IllegalArgumentException("Invalid " + controllerName); + throw makeArgEx(controllerName); } synchronized(this) { @@ -320,7 +312,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public void shutdown(PolicyController controller) throws IllegalArgumentException { + public void shutdown(PolicyController controller) { this.unmanage(controller); controller.shutdown(); } @@ -348,7 +340,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * @return * @throws IllegalArgumentException */ - protected void unmanage(PolicyController controller) throws IllegalArgumentException { + protected void unmanage(PolicyController controller) { PolicyController tempController = controller; if (tempController == null) { throw new IllegalArgumentException("Invalid Controller"); @@ -370,10 +362,10 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public void destroy(String controllerName) throws IllegalArgumentException { + public void destroy(String controllerName) { if (controllerName == null || controllerName.isEmpty()) { - throw new IllegalArgumentException("Invalid " + controllerName); + throw makeArgEx(controllerName); } synchronized(this) { @@ -390,7 +382,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public void destroy(PolicyController controller) throws IllegalArgumentException { + public void destroy(PolicyController controller) { this.unmanage(controller); controller.halt(); } @@ -415,17 +407,17 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public PolicyController get(String name) throws IllegalArgumentException, IllegalStateException { + public PolicyController get(String name) { if (name == null || name.isEmpty()) { - throw new IllegalArgumentException("Invalid " + name); + throw makeArgEx(name); } synchronized(this) { if (this.policyControllers.containsKey(name)) { return this.policyControllers.get(name); } else { - throw new IllegalArgumentException("Invalid " + name); + throw makeArgEx(name); } } } @@ -434,8 +426,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public PolicyController get(String groupId, String artifactId) - throws IllegalArgumentException, IllegalStateException { + public PolicyController get(String groupId, String artifactId) { if (groupId == null || groupId.isEmpty() || artifactId == null || artifactId.isEmpty()) { @@ -447,7 +438,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { if (this.coordinates2Controller.containsKey(key)) { return this.coordinates2Controller.get(key); } else { - throw new IllegalArgumentException("Invalid " + key); + throw makeArgEx(key); } } } @@ -456,8 +447,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public PolicyController get(DroolsController droolsController) - throws IllegalArgumentException, IllegalStateException { + public PolicyController get(DroolsController droolsController) { if (droolsController == null) { throw new IllegalArgumentException("No Drools Controller provided"); @@ -479,9 +469,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { */ @Override public List<PolicyController> inventory() { - List<PolicyController> controllers = - new ArrayList<>(this.policyControllers.values()); - return controllers; + return new ArrayList<>(this.policyControllers.values()); } /** @@ -509,7 +497,7 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { * {@inheritDoc} */ @Override - public PolicyControllerFeatureAPI getFeatureProvider(String featureName) throws IllegalArgumentException { + public PolicyControllerFeatureAPI getFeatureProvider(String featureName) { if (featureName == null || featureName.isEmpty()) throw new IllegalArgumentException("A feature name must be provided"); @@ -520,4 +508,8 @@ class IndexedPolicyControllerFactory implements PolicyControllerFactory { throw new IllegalArgumentException("Invalid Feature Name: " + featureName); } + + private IllegalArgumentException makeArgEx(String argName) { + return new IllegalArgumentException("Invalid " + argName); + } } diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java index c90d8bea..a1fee763 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java +++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -67,6 +67,11 @@ import com.google.gson.GsonBuilder; */ public interface PolicyEngine extends Startable, Lockable, TopicListener { /** + * Policy Engine Manager + */ + public static final PolicyEngine manager = new PolicyEngineManager(); + + /** * Default Telemetry Server Port */ public static final int TELEMETRY_SERVER_DEFAULT_PORT = 9696; @@ -86,7 +91,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * * @param cliArgs command line arguments */ - public void boot(String cliArgs[]); + public void boot(String[] cliArgs); /** * configure the policy engine according to the given properties @@ -246,8 +251,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * * @return the feature */ - public PolicyEngineFeatureAPI getFeatureProvider(String featureName) - throws IllegalArgumentException; + public PolicyEngineFeatureAPI getFeatureProvider(String featureName); /** * get features attached to the Policy Engine @@ -267,8 +271,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * @throws IllegalStateException when the engine is in a state where this operation is not * permitted (ie. locked or stopped). */ - public boolean deliver(String topic, Object event) - throws IllegalArgumentException, IllegalStateException; + public boolean deliver(String topic, Object event); /** * Attempts the dispatching of an "event" object over communication infrastructure "busType" @@ -284,8 +287,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * @throws UnsupportedOperationException when the engine cannot deliver due to the functionality * missing (ie. communication infrastructure not supported. */ - public boolean deliver(String busType, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; + public boolean deliver(String busType, String topic, Object event); /** * Attempts the dispatching of an "event" object over communication infrastructure "busType" @@ -301,8 +303,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * @throws UnsupportedOperationException when the engine cannot deliver due to the functionality * missing (ie. communication infrastructure not supported. */ - public boolean deliver(CommInfrastructure busType, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; + public boolean deliver(CommInfrastructure busType, String topic, Object event); /** * Attempts delivering of an String over communication infrastructure "busType" @@ -318,8 +319,7 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * @throws UnsupportedOperationException when the engine cannot deliver due to the functionality * missing (ie. communication infrastructure not supported. */ - public boolean deliver(CommInfrastructure busType, String topic, String event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException; + public boolean deliver(CommInfrastructure busType, String topic, String event); /** * Invoked when the host goes into the active state. @@ -337,11 +337,6 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * @return policy engine configuration */ public Properties defaultTelemetryConfig(); - - /** - * Policy Engine Manager - */ - public final static PolicyEngine manager = new PolicyEngineManager(); } @@ -349,7 +344,15 @@ public interface PolicyEngine extends Startable, Lockable, TopicListener { * Policy Engine Manager Implementation */ class PolicyEngineManager implements PolicyEngine { - /** + private static final String INVALID_TOPIC_MSG = "Invalid Topic"; + +private static final String INVALID_EVENT_MSG = "Invalid Event"; + +private static final String ENGINE_STOPPED_MSG = "Policy Engine is stopped"; + +private static final String ENGINE_LOCKED_MSG = "Policy Engine is locked"; + +/** * logger */ private static final Logger logger = LoggerFactory.getLogger(PolicyEngineManager.class); @@ -396,7 +399,7 @@ class PolicyEngineManager implements PolicyEngine { @Override - public synchronized void boot(String cliArgs[]) { + public synchronized void boot(String[] cliArgs) { for (final PolicyEngineFeatureAPI feature : PolicyEngineFeatureAPI.providers.getList()) { try { @@ -531,8 +534,7 @@ class PolicyEngineManager implements PolicyEngine { } @Override - public synchronized PolicyController createPolicyController(String name, Properties properties) - throws IllegalArgumentException, IllegalStateException { + public synchronized PolicyController createPolicyController(String name, Properties properties) { String tempName = name; // check if a PROPERTY_CONTROLLER_NAME property is present @@ -601,8 +603,7 @@ class PolicyEngineManager implements PolicyEngine { @Override public List<PolicyController> updatePolicyControllers( - List<ControllerConfiguration> configControllers) - throws IllegalArgumentException, IllegalStateException { + List<ControllerConfiguration> configControllers) { final List<PolicyController> policyControllers = new ArrayList<>(); if (configControllers == null || configControllers.isEmpty()) { @@ -739,7 +740,7 @@ class PolicyEngineManager implements PolicyEngine { boolean success = true; if (this.locked) - throw new IllegalStateException("Engine is locked"); + throw new IllegalStateException(ENGINE_LOCKED_MSG); this.alive = true; @@ -1199,24 +1200,23 @@ class PolicyEngineManager implements PolicyEngine { } @Override - public boolean deliver(String topic, Object event) - throws IllegalArgumentException, IllegalStateException { + public boolean deliver(String topic, Object event) { /* * Note this entry point is usually from the DRL */ if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); if (event == null) - throw new IllegalArgumentException("Invalid Event"); + throw new IllegalArgumentException(INVALID_EVENT_MSG); if (!this.isAlive()) - throw new IllegalStateException("Policy Engine is stopped"); + throw new IllegalStateException(ENGINE_STOPPED_MSG); if (this.isLocked()) - throw new IllegalStateException("Policy Engine is locked"); + throw new IllegalStateException(ENGINE_LOCKED_MSG); final List<? extends TopicSink> topicSinks = TopicEndpoint.manager.getTopicSinks(topic); if (topicSinks == null || topicSinks.isEmpty() || topicSinks.size() > 1) @@ -1227,8 +1227,7 @@ class PolicyEngineManager implements PolicyEngine { } @Override - public boolean deliver(String busType, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public boolean deliver(String busType, String topic, Object event) { /* * Note this entry point is usually from the DRL (one of the reasons busType is String. @@ -1238,10 +1237,10 @@ class PolicyEngineManager implements PolicyEngine { throw new IllegalArgumentException("Invalid Communication Infrastructure"); if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); if (event == null) - throw new IllegalArgumentException("Invalid Event"); + throw new IllegalArgumentException(INVALID_EVENT_MSG); boolean valid = false; for (final Topic.CommInfrastructure comm : Topic.CommInfrastructure.values()) { @@ -1255,30 +1254,29 @@ class PolicyEngineManager implements PolicyEngine { if (!this.isAlive()) - throw new IllegalStateException("Policy Engine is stopped"); + throw new IllegalStateException(ENGINE_STOPPED_MSG); if (this.isLocked()) - throw new IllegalStateException("Policy Engine is locked"); + throw new IllegalStateException(ENGINE_LOCKED_MSG); return this.deliver(Topic.CommInfrastructure.valueOf(busType), topic, event); } @Override - public boolean deliver(Topic.CommInfrastructure busType, String topic, Object event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public boolean deliver(Topic.CommInfrastructure busType, String topic, Object event) { if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); if (event == null) - throw new IllegalArgumentException("Invalid Event"); + throw new IllegalArgumentException(INVALID_EVENT_MSG); if (!this.isAlive()) - throw new IllegalStateException("Policy Engine is stopped"); + throw new IllegalStateException(ENGINE_STOPPED_MSG); if (this.isLocked()) - throw new IllegalStateException("Policy Engine is locked"); + throw new IllegalStateException(ENGINE_LOCKED_MSG); /* * Try to send through the controller, this is the preferred way, since it may want to apply @@ -1312,20 +1310,19 @@ class PolicyEngineManager implements PolicyEngine { } @Override - public boolean deliver(Topic.CommInfrastructure busType, String topic, String event) - throws IllegalArgumentException, IllegalStateException, UnsupportedOperationException { + public boolean deliver(Topic.CommInfrastructure busType, String topic, String event) { if (topic == null || topic.isEmpty()) - throw new IllegalArgumentException("Invalid Topic"); + throw new IllegalArgumentException(INVALID_TOPIC_MSG); if (event == null || event.isEmpty()) - throw new IllegalArgumentException("Invalid Event"); + throw new IllegalArgumentException(INVALID_EVENT_MSG); if (!this.isAlive()) - throw new IllegalStateException("Policy Engine is stopped"); + throw new IllegalStateException(ENGINE_STOPPED_MSG); if (this.isLocked()) - throw new IllegalStateException("Policy Engine is locked"); + throw new IllegalStateException(ENGINE_LOCKED_MSG); try { final TopicSink sink = TopicEndpoint.manager.getTopicSink(busType, topic); diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/internal/AggregatedPolicyController.java b/policy-management/src/main/java/org/onap/policy/drools/system/internal/AggregatedPolicyController.java index 0645bdc5..ea631fae 100644 --- a/policy-management/src/main/java/org/onap/policy/drools/system/internal/AggregatedPolicyController.java +++ b/policy-management/src/main/java/org/onap/policy/drools/system/internal/AggregatedPolicyController.java @@ -1,8 +1,8 @@ -/*- +/* * ============LICENSE_START======================================================= * policy-management * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 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. @@ -111,8 +111,7 @@ public class AggregatedPolicyController implements PolicyController, * * @throws IllegalArgumentException when invalid arguments are provided */ - public AggregatedPolicyController(String name, Properties properties) - throws IllegalArgumentException { + public AggregatedPolicyController(String name, Properties properties) { this.name = name; @@ -139,7 +138,7 @@ public class AggregatedPolicyController implements PolicyController, * initialize drools layer * @throws IllegalArgumentException if invalid parameters are passed in */ - protected void initDrools(Properties properties) throws IllegalArgumentException { + protected void initDrools(Properties properties) { try { // Register with drools infrastructure this.droolsController = DroolsController.factory.build(properties, sources, sinks); @@ -153,7 +152,7 @@ public class AggregatedPolicyController implements PolicyController, * initialize sinks * @throws IllegalArgumentException if invalid parameters are passed in */ - protected void initSinks() throws IllegalArgumentException { + protected void initSinks() { this.topic2Sinks.clear(); for (TopicSink sink: sinks) { this.topic2Sinks.put(sink.getTopic(), sink); @@ -224,7 +223,7 @@ public class AggregatedPolicyController implements PolicyController, * {@inheritDoc} */ @Override - public boolean start() throws IllegalStateException { + public boolean start() { logger.info("{}: start", this); for (PolicyControllerFeatureAPI feature : PolicyControllerFeatureAPI.providers.getList()) { @@ -328,7 +327,7 @@ public class AggregatedPolicyController implements PolicyController, * {@inheritDoc} */ @Override - public void shutdown() throws IllegalStateException { + public void shutdown() { logger.info("{}: shutdown", this); for (PolicyControllerFeatureAPI feature : PolicyControllerFeatureAPI.providers.getList()) { @@ -360,7 +359,7 @@ public class AggregatedPolicyController implements PolicyController, * {@inheritDoc} */ @Override - public void halt() throws IllegalStateException { + public void halt() { logger.info("{}: halt", this); for (PolicyControllerFeatureAPI feature : PolicyControllerFeatureAPI.providers.getList()) { @@ -432,9 +431,7 @@ public class AggregatedPolicyController implements PolicyController, */ @Override public boolean deliver(Topic.CommInfrastructure commType, - String topic, Object event) - throws IllegalArgumentException, IllegalStateException, - UnsupportedOperationException { + String topic, Object event) { if (logger.isDebugEnabled()) logger.debug("{}: deliver event to {}:{}: {}", this, commType, topic, event); |