diff options
Diffstat (limited to 'BRMSGateway/src/main/java/org/onap/policy/brms')
-rw-r--r-- | BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java | 43 | ||||
-rw-r--r-- | BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java | 21 |
2 files changed, 41 insertions, 23 deletions
diff --git a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java index e743794ec..093bf4bae 100644 --- a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java +++ b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsGateway.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,6 +20,7 @@ package org.onap.policy.brms.api; +import java.util.concurrent.CountDownLatch; import org.onap.policy.api.NotificationScheme; import org.onap.policy.api.PolicyEngine; import org.onap.policy.api.PolicyException; @@ -31,7 +32,7 @@ import org.onap.policy.xacml.api.XACMLErrorConstants; * BRMSGateway: This application acts as the Gateway interface between the PDP XACML and PDP Drools. * The listens for BRMS based policies and pushes them to the specified Policy Repository, from * where the PDP Drools reads the Rule Jar. - * + * * @version 0.1 */ public class BrmsGateway { @@ -41,6 +42,9 @@ public class BrmsGateway { private static PolicyEngine policyEngine = null; + // may be overridden by junit tests + private static Factory factory = new Factory(); + private BrmsGateway() { // Default private constructor } @@ -68,7 +72,7 @@ public class BrmsGateway { logger.info("Initializing BRMS Handler"); BrmsHandler brmsHandler = null; try { - brmsHandler = new BrmsHandler(configFile); + brmsHandler = factory.makeBrmsHandler(configFile); } catch (final PolicyException e) { String errorString = "Check your property file: " + e.getMessage(); logger.error(errorString); @@ -85,21 +89,34 @@ public class BrmsGateway { } // Keep Running.... + CountDownLatch latch = new CountDownLatch(1); final Runnable runnable = () -> { - while (true) { - try { - Thread.sleep(30000); - } catch (final InterruptedException e) { - logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Thread Exception " + e.getMessage()); - Thread.currentThread().interrupt(); - } + try { + // wait until interrupted + latch.await(); + } catch (final InterruptedException e) { + logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Thread Exception " + e.getMessage()); + Thread.currentThread().interrupt(); } }; - final Thread thread = new Thread(runnable); + final Thread thread = factory.makeThread(runnable); thread.start(); } public static PolicyEngine getPolicyEngine() { return policyEngine; } + + /** + * Factory to provide various data. May be overridden by junit tests. + */ + public static class Factory { + public BrmsHandler makeBrmsHandler(String configFile) throws PolicyException { + return new BrmsHandler(configFile); + } + + public Thread makeThread(Runnable runnable) { + return new Thread(runnable); + } + } } diff --git a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java index 97e225890..e321811a3 100644 --- a/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java +++ b/BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java @@ -60,7 +60,7 @@ import javax.persistence.Persistence; import javax.persistence.TypedQuery; import javax.ws.rs.ProcessingException; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang3.StringEscapeUtils; import org.apache.maven.model.Dependency; import org.apache.maven.model.DeploymentRepository; import org.apache.maven.model.DistributionManagement; @@ -117,7 +117,7 @@ public class BrmsPush { private static final Logger LOGGER = FlexLogger.getLogger(BrmsPush.class.getName()); private static final String PROJECTSLOCATION = "RuleProjects"; private static final String[] GOALS = {"clean", "deploy"}; - private static final String DEFAULT_VERSION = "1.4.1-SNAPSHOT"; + private static final String DEFAULT_VERSION = "1.6.3-SNAPSHOT"; private static final String DEPENDENCY_FILE = "dependency.json"; private static final String PROP_AES_KEY = "org.onap.policy.encryption.aes.key"; public static final String BRMSPERSISTENCE = "brmsEclipselink.persistencexml"; @@ -256,8 +256,8 @@ public class BrmsPush { repUrlList = new ArrayList<>(); repUrlList.add(repUrl); } - repUserName = config.getProperty("repositoryUsername"); - repPassword = PeCryptoUtils.decrypt(config.getProperty("repositoryPassword")); + repUserName = getValue(config.getProperty("repositoryUsername")); + repPassword = PeCryptoUtils.decrypt(getValue(config.getProperty("repositoryPassword"))); if (repUserName == null || repPassword == null) { LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "repostoryUserName and respositoryPassword properties are required."); @@ -367,6 +367,13 @@ public class BrmsPush { } + private String getValue(final String value) { + if (value != null && value.matches("[$][{].*[}]$")) { + return System.getenv(value.substring(2, value.length() - 1)); + } + return value; + } + private static void setBackupMonitor(final BackUpMonitor instance) { bm = instance; } @@ -1049,12 +1056,6 @@ public class BrmsPush { msoDependency.setArtifactId("controlloop.common.model-impl.so"); msoDependency.setVersion(version); dependencyList.add(msoDependency); - - final Dependency trafficgeneratorDependency = new Dependency(); - trafficgeneratorDependency.setGroupId(DROOLS_APPS_MODEL_GROUP); - trafficgeneratorDependency.setArtifactId("controlloop.common.model-impl.trafficgenerator"); - trafficgeneratorDependency.setVersion(version); - dependencyList.add(trafficgeneratorDependency); return dependencyList; } |