From 0dea75c506058a9e999d30ec1916c7530504a8d6 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Tue, 8 May 2018 11:28:40 +0100 Subject: Configuration as argument to BRMS Gateway Added the ability specify the parameter file for the BRMS Gateway as a argument to allow different configurations to be used during unit test. This will allow more thorought unit tests to be written. Replaced System.exit() calls with exeception throws becasue System.exit() call bring down the entire JVM during testing, terminating the test at that point. Changed the package path on four unit test files to the correct path for unit tests for the BRMS gateway. Added a unit test for sanity test of the configuraiton file argument. Issue-ID: POLICY-773 Change-Id: Ic095a5131ddb846eaf3b11157853fab71908c629 Signed-off-by: liamfallon --- .../java/org/onap/policy/brms/api/BrmsGateway.java | 29 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'BRMSGateway/src/main/java') 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 d12178319..e743794ec 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 @@ -34,7 +34,7 @@ import org.onap.policy.xacml.api.XACMLErrorConstants; * * @version 0.1 */ -class BrmsGateway { +public class BrmsGateway { private static final Logger logger = FlexLogger.getLogger(BrmsGateway.class); private static final String CONFIGFILE = "config.properties"; @@ -45,15 +45,34 @@ class BrmsGateway { // Default private constructor } + /** + * Main method. + * @param args The path to the configuration file is the only allowed optional argument + * @throws Exception on BRMS Gateway errors + */ public static void main(final String[] args) throws Exception { + // The configuration file containing the configuration for the BRMS Gateway + String configFile = CONFIGFILE; + + // Check if a configuration file has been specified as a parameter + if (args.length == 1) { + configFile = args[0]; + } + else if (args.length > 1) { + String errorString = "usage: " + BrmsGateway.class.getCanonicalName() + " [configFile]"; + logger.error(errorString); + throw new PolicyException(errorString); + } + // Initialize Handler. logger.info("Initializing BRMS Handler"); BrmsHandler brmsHandler = null; try { - brmsHandler = new BrmsHandler(CONFIGFILE); + brmsHandler = new BrmsHandler(configFile); } catch (final PolicyException e) { - logger.error("Check your property file: " + e.getMessage(), e); - System.exit(1); + String errorString = "Check your property file: " + e.getMessage(); + logger.error(errorString); + throw new PolicyException(errorString); } // Set Handler with Auto Notification and initialize policyEngine @@ -62,7 +81,7 @@ class BrmsGateway { policyEngine = new PolicyEngine(CONFIGFILE, NotificationScheme.AUTO_ALL_NOTIFICATIONS, brmsHandler); } catch (final Exception e) { logger.error(XACMLErrorConstants.ERROR_UNKNOWN + "Error while Initializing Policy Engine " + e.getMessage(), - e); + e); } // Keep Running.... -- cgit 1.2.3-korg