From f9c9d54ecd04e1cd65c6423bacc0e956e11b721f Mon Sep 17 00:00:00 2001 From: "Magnusen, Drew (dm741q)" Date: Thu, 14 Dec 2017 15:29:07 -0600 Subject: Reduce tech debt in policy-management Changes to reduce tech debt in the policy-management module. Issue-ID: POLICY-463 Change-Id: I41f6b66d25a805706e5c9ed2cef2eda256153a37 Signed-off-by: Magnusen, Drew (dm741q) --- .../onap/policy/drools/system/PolicyEngine.java | 82 +++++++++++----------- 1 file changed, 42 insertions(+), 40 deletions(-) (limited to 'policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngine.java') 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 583deacc..c90d8bea 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 @@ -387,7 +387,7 @@ class PolicyEngineManager implements PolicyEngine { /** * Policy Engine HTTP Servers */ - protected List httpServers = new ArrayList(); + protected List httpServers = new ArrayList<>(); /** * gson parser to decode configuration requests @@ -459,7 +459,7 @@ class PolicyEngineManager implements PolicyEngine { TELEMETRY_SERVER_DEFAULT_HOST); defaultConfig.put(PolicyProperties.PROPERTY_HTTP_SERVER_SERVICES + "." + TELEMETRY_SERVER_DEFAULT_NAME + PolicyProperties.PROPERTY_HTTP_PORT_SUFFIX, - "" + TELEMETRY_SERVER_DEFAULT_PORT); + "" + Integer.toString(TELEMETRY_SERVER_DEFAULT_PORT)); defaultConfig.put( PolicyProperties.PROPERTY_HTTP_SERVER_SERVICES + "." + TELEMETRY_SERVER_DEFAULT_NAME + PolicyProperties.PROPERTY_HTTP_REST_PACKAGES_SUFFIX, @@ -534,24 +534,25 @@ class PolicyEngineManager implements PolicyEngine { public synchronized PolicyController createPolicyController(String name, Properties properties) throws IllegalArgumentException, IllegalStateException { + String tempName = name; // check if a PROPERTY_CONTROLLER_NAME property is present // if so, override the given name final String propertyControllerName = properties.getProperty(PolicyProperties.PROPERTY_CONTROLLER_NAME); if (propertyControllerName != null && !propertyControllerName.isEmpty()) { - if (!propertyControllerName.equals(name)) { - throw new IllegalStateException("Proposed name (" + name + ") and properties name (" + if (!propertyControllerName.equals(tempName)) { + throw new IllegalStateException("Proposed name (" + tempName + ") and properties name (" + propertyControllerName + ") don't match"); } - name = propertyControllerName; + tempName = propertyControllerName; } PolicyController controller; for (final PolicyControllerFeatureAPI controllerFeature : PolicyControllerFeatureAPI.providers .getList()) { try { - controller = controllerFeature.beforeCreate(name, properties); + controller = controllerFeature.beforeCreate(tempName, properties); if (controller != null) return controller; } catch (final Exception e) { @@ -560,7 +561,7 @@ class PolicyEngineManager implements PolicyEngine { } } - controller = PolicyController.factory.build(name, properties); + controller = PolicyController.factory.build(tempName, properties); if (this.isLocked()) controller.lock(); @@ -589,22 +590,8 @@ class PolicyEngineManager implements PolicyEngine { final String entity = config.getEntity(); switch (entity) { - case PdpdConfiguration.CONFIG_ENTITY_CONTROLLER: - /* only this one supported for now */ - final List configControllers = config.getControllers(); - if (configControllers == null || configControllers.isEmpty()) { - if (logger.isInfoEnabled()) - logger.info("No controller configuration provided: " + config); - return false; - } - final List policyControllers = - this.updatePolicyControllers(config.getControllers()); - if (policyControllers == null || policyControllers.isEmpty()) - return false; - else if (policyControllers.size() == configControllers.size()) - return true; - - return false; + case PdpdConfiguration.CONFIG_ENTITY_CONTROLLER: + return controllerConfig(config); default: final String msg = "Configuration Entity is not supported: " + entity; logger.warn(msg); @@ -617,7 +604,7 @@ class PolicyEngineManager implements PolicyEngine { List configControllers) throws IllegalArgumentException, IllegalStateException { - final List policyControllers = new ArrayList(); + final List policyControllers = new ArrayList<>(); if (configControllers == null || configControllers.isEmpty()) { if (logger.isInfoEnabled()) logger.info("No controller configuration provided: " + configControllers); @@ -677,14 +664,14 @@ class PolicyEngineManager implements PolicyEngine { logger.warn("controller " + controllerName + " does not exist. " + "Attempting recovery from disk"); - final Properties properties = + final Properties controllerProperties = SystemPersistence.manager.getControllerProperties(controllerName); /* * returned properties cannot be null (per implementation) assert (properties != null) */ - if (properties == null) { + if (controllerProperties == null) { throw new IllegalArgumentException(controllerName + " is invalid"); } @@ -695,11 +682,11 @@ class PolicyEngineManager implements PolicyEngine { * try to bring up bad controller in brainless mode, after having it working, apply the new * create/update operation. */ - properties.setProperty(PolicyProperties.RULES_GROUPID, DroolsController.NO_GROUP_ID); - properties.setProperty(PolicyProperties.RULES_ARTIFACTID, DroolsController.NO_ARTIFACT_ID); - properties.setProperty(PolicyProperties.RULES_VERSION, DroolsController.NO_VERSION); + controllerProperties.setProperty(PolicyProperties.RULES_GROUPID, DroolsController.NO_GROUP_ID); + controllerProperties.setProperty(PolicyProperties.RULES_ARTIFACTID, DroolsController.NO_ARTIFACT_ID); + controllerProperties.setProperty(PolicyProperties.RULES_VERSION, DroolsController.NO_VERSION); - policyController = PolicyEngine.manager.createPolicyController(controllerName, properties); + policyController = PolicyEngine.manager.createPolicyController(controllerName, controllerProperties); /* fall through to do brain update operation */ } @@ -1140,7 +1127,7 @@ class PolicyEngineManager implements PolicyEngine { @JsonProperty("controllers") @Override public List getPolicyControllerIds() { - final List controllerNames = new ArrayList(); + final List controllerNames = new ArrayList<>(); for (final PolicyController controller : PolicyController.factory.inventory()) { controllerNames.add(controller.getName()); } @@ -1173,7 +1160,7 @@ class PolicyEngineManager implements PolicyEngine { @Override public List getFeatures() { - final List features = new ArrayList(); + final List features = new ArrayList<>(); for (final PolicyEngineFeatureAPI feature : PolicyEngineFeatureAPI.providers.getList()) { features.add(feature.getName()); } @@ -1231,12 +1218,12 @@ class PolicyEngineManager implements PolicyEngine { if (this.isLocked()) throw new IllegalStateException("Policy Engine is locked"); - final List sinks = TopicEndpoint.manager.getTopicSinks(topic); - if (sinks == null || sinks.isEmpty() || sinks.size() > 1) + final List topicSinks = TopicEndpoint.manager.getTopicSinks(topic); + if (topicSinks == null || topicSinks.isEmpty() || topicSinks.size() > 1) throw new IllegalStateException( - "Cannot ensure correct delivery on topic " + topic + ": " + sinks); + "Cannot ensure correct delivery on topic " + topic + ": " + topicSinks); - return this.deliver(sinks.get(0).getTopicCommInfrastructure(), topic, event); + return this.deliver(topicSinks.get(0).getTopicCommInfrastructure(), topic, event); } @Override @@ -1417,10 +1404,7 @@ class PolicyEngineManager implements PolicyEngine { for (final PolicyController policyController : this.getPolicyControllers()) { try { policyController.stop(); - } catch (final Exception e) { - logger.error("{}: cannot deactivate (stop) policy-controller {} because of {}", this, - policyController, e.getMessage(), e); - } catch (final LinkageError e) { + } catch (final Exception | LinkageError e) { logger.error("{}: cannot deactivate (stop) policy-controller {} because of {}", this, policyController, e.getMessage(), e); } @@ -1437,6 +1421,24 @@ class PolicyEngineManager implements PolicyEngine { } } } + + public boolean controllerConfig(PdpdConfiguration config) { + /* only this one supported for now */ + final List configControllers = config.getControllers(); + if (configControllers == null || configControllers.isEmpty()) { + if (logger.isInfoEnabled()) + logger.info("No controller configuration provided: " + config); + return false; + } + final List policyControllers = + this.updatePolicyControllers(config.getControllers()); + if (policyControllers == null || policyControllers.isEmpty()) + return false; + else if (policyControllers.size() == configControllers.size()) + return true; + + return false; + } @Override public String toString() { -- cgit 1.2.3-korg