support external configuration of pdp groups
[policy/pap.git] / main / src / main / java / org / onap / policy / pap / main / startstop / Main.java
index 74bb9f6..5918ed1 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,9 +23,9 @@
 package org.onap.policy.pap.main.startstop;
 
 import java.util.Arrays;
+import org.onap.policy.common.utils.resources.MessageConstants;
 import org.onap.policy.common.utils.services.Registry;
 import org.onap.policy.pap.main.PapConstants;
-import org.onap.policy.pap.main.PolicyPapException;
 import org.onap.policy.pap.main.PolicyPapRuntimeException;
 import org.onap.policy.pap.main.parameters.PapParameterGroup;
 import org.onap.policy.pap.main.parameters.PapParameterHandler;
@@ -39,8 +39,6 @@ import org.slf4j.LoggerFactory;
  */
 public class Main {
 
-    private static final String START_FAILED = "start of policy pap service failed";
-
     private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
 
     private PapActivator activator;
@@ -52,11 +50,11 @@ public class Main {
      * @param args the command line arguments
      */
     public Main(final String[] args) {
-        final String argumentString = Arrays.toString(args);
+        final var argumentString = Arrays.toString(args);
         LOGGER.info("Starting policy pap service with arguments - {}", argumentString);
 
         // Check the arguments
-        final PapCommandLineArguments arguments = new PapCommandLineArguments();
+        final var arguments = new PapCommandLineArguments();
         try {
             // The arguments return a string if there is a message to print and we should exit
             final String argumentMessage = arguments.parse(args);
@@ -71,7 +69,9 @@ public class Main {
             parameterGroup = new PapParameterHandler().getParameters(arguments);
 
             // Initialize database
-            new PapDatabaseInitializer().initializePapDatabase(parameterGroup.getDatabaseProviderParameters());
+            new PapDatabaseInitializer().initializePapDatabase(
+                    parameterGroup.getDatabaseProviderParameters(),
+                    arguments.getPdpGroupsConfiguration());
 
             // Now, create the activator for the policy pap service
             activator = new PapActivator(parameterGroup);
@@ -79,16 +79,24 @@ public class Main {
 
             // Start the activator
             activator.start();
-        } catch (Exception exp) {
+        } catch (Exception exp) { // NOSONAR
+            /*
+             * Disabled sonar on the above line, because we want to capture the stack
+             * trace via the logger while still reporting the exception message on stdout
+             * when the JVM exits.
+             */
+            LOGGER.error("failed to start Main", exp);
             if (null != activator) {
                 Registry.unregister(PapConstants.REG_PAP_ACTIVATOR);
             }
-            throw new PolicyPapRuntimeException(START_FAILED + ", used parameters are " + Arrays.toString(args), exp);
+            throw new PolicyPapRuntimeException(
+                String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_PAP), exp);
         }
 
         // Add a shutdown hook to shut everything down in an orderly manner
         Runtime.getRuntime().addShutdownHook(new PolicyPapShutdownHookClass());
-        LOGGER.info("Started policy pap service");
+        var successMsg = String.format(MessageConstants.START_SUCCESS_MSG, MessageConstants.POLICY_PAP);
+        LOGGER.info(successMsg);
     }
 
     /**
@@ -103,9 +111,8 @@ public class Main {
     /**
      * Shut down Execution.
      *
-     * @throws PolicyPapException on shutdown errors
      */
-    public void shutdown() throws PolicyPapException {
+    public void shutdown() {
         // clear the parameterGroup variable
         parameterGroup = null;
 
@@ -134,7 +141,7 @@ public class Main {
                 // Shutdown the policy pap service and wait for everything to stop
                 activator.stop();
             } catch (final RuntimeException e) {
-                LOGGER.warn("error occured during shut down of the policy pap service", e);
+                LOGGER.warn("error occurred during shut down of the policy pap service", e);
             }
         }
     }