Replace static methods with single getInstance 18/79118/3
authorJim Hahn <jrh3@att.com>
Mon, 25 Feb 2019 16:36:23 +0000 (11:36 -0500)
committerJim Hahn <jrh3@att.com>
Mon, 25 Feb 2019 17:47:32 +0000 (12:47 -0500)
Some of the PAP classes use a number of static methods.  These have
been modified to use regular, non-static methods, a single static
method, getInstance.
Also modified PapStatisticsManager so its methods are thread safe.
Changed "instance" to "current" for the activator, as it may be changed.
Fix new checkstyle issues.
Updated copyrights.
Renamed test class to be consistent.
Added test for getCurrent/setCurrent and isAlive.

Change-Id: Id6df55fa4c116852032ad61f80f899fcd292f864
Issue-ID: POLICY-1444
Signed-off-by: Jim Hahn <jrh3@att.com>
main/src/main/java/org/onap/policy/pap/main/rest/HealthCheckProvider.java
main/src/main/java/org/onap/policy/pap/main/rest/PapStatisticsManager.java
main/src/main/java/org/onap/policy/pap/main/rest/StatisticsProvider.java
main/src/main/java/org/onap/policy/pap/main/startstop/Main.java
main/src/main/java/org/onap/policy/pap/main/startstop/PapActivator.java
main/src/test/java/org/onap/policy/pap/main/rest/TestPapRestServer.java
main/src/test/java/org/onap/policy/pap/main/rest/TestPapStatisticsManager.java [new file with mode: 0644]
main/src/test/java/org/onap/policy/pap/main/startstop/TestPapActivator.java

index 6f4c1cc..58dccc8 100644 (file)
@@ -46,7 +46,7 @@ public class HealthCheckProvider {
         report.setName(NAME);
         report.setUrl(URL);
 
-        boolean alive = PapActivator.isAlive();
+        boolean alive = PapActivator.getCurrent().isAlive();
 
         report.setHealthy(alive);
         report.setCode(alive ? 200 : 500);
index 9814811..3289366 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +21,7 @@
 
 package org.onap.policy.pap.main.rest;
 
+import java.util.concurrent.atomic.AtomicLong;
 import lombok.Getter;
 
 /**
@@ -30,24 +32,22 @@ import lombok.Getter;
 public class PapStatisticsManager {
 
     @Getter
-    private static long totalPdpCount;
-    @Getter
-    private static long totalPdpGroupCount;
-    @Getter
-    private static long totalPolicyDeployCount;
-    @Getter
-    private static long policyDeploySuccessCount;
-    @Getter
-    private static long policyDeployFailureCount;
-    @Getter
-    private static long totalPolicyDownloadCount;
-    @Getter
-    private static long policyDownloadSuccessCount;
-    @Getter
-    private static long policyDownloadFailureCount;
+    private static final PapStatisticsManager instance = new PapStatisticsManager();
 
-    private PapStatisticsManager() {
-        throw new IllegalStateException("Instantiation of the class is not allowed");
+    private final AtomicLong totalPdpCount = new AtomicLong(0);
+    private final AtomicLong totalPdpGroupCount = new AtomicLong(0);
+    private final AtomicLong totalPolicyDeployCount = new AtomicLong(0);
+    private final AtomicLong policyDeploySuccessCount = new AtomicLong(0);
+    private final AtomicLong policyDeployFailureCount = new AtomicLong(0);
+    private final AtomicLong totalPolicyDownloadCount = new AtomicLong(0);
+    private final AtomicLong policyDownloadSuccessCount = new AtomicLong(0);
+    private final AtomicLong policyDownloadFailureCount = new AtomicLong(0);
+
+    /**
+     * Constructs the object.
+     */
+    protected PapStatisticsManager() {
+        super();
     }
 
     /**
@@ -55,8 +55,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of totalPdpCount
      */
-    public static long updateTotalPdpCount() {
-        return ++totalPdpCount;
+    public long updateTotalPdpCount() {
+        return totalPdpCount.incrementAndGet();
     }
 
     /**
@@ -64,8 +64,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of totalPdpGroupCount
      */
-    public static long updateTotalPdpGroupCount() {
-        return ++totalPdpGroupCount;
+    public long updateTotalPdpGroupCount() {
+        return totalPdpGroupCount.incrementAndGet();
     }
 
     /**
@@ -73,8 +73,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of totalPolicyDeployCount
      */
-    public static long updateTotalPolicyDeployCount() {
-        return ++totalPolicyDeployCount;
+    public long updateTotalPolicyDeployCount() {
+        return totalPolicyDeployCount.incrementAndGet();
     }
 
     /**
@@ -82,8 +82,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of policyDeploySuccessCount
      */
-    public static long updatePolicyDeploySuccessCount() {
-        return ++policyDeploySuccessCount;
+    public long updatePolicyDeploySuccessCount() {
+        return policyDeploySuccessCount.incrementAndGet();
     }
 
     /**
@@ -91,8 +91,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of policyDeployFailureCount
      */
-    public static long updatePolicyDeployFailureCount() {
-        return ++policyDeployFailureCount;
+    public long updatePolicyDeployFailureCount() {
+        return policyDeployFailureCount.incrementAndGet();
     }
 
     /**
@@ -100,8 +100,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of totalPolicyDownloadCount
      */
-    public static long updateTotalPolicyDownloadCount() {
-        return ++totalPolicyDownloadCount;
+    public long updateTotalPolicyDownloadCount() {
+        return totalPolicyDownloadCount.incrementAndGet();
     }
 
     /**
@@ -109,8 +109,8 @@ public class PapStatisticsManager {
      *
      * @return the updated value of policyDownloadSuccessCount
      */
-    public static long updatePolicyDownloadSuccessCount() {
-        return ++policyDownloadSuccessCount;
+    public long updatePolicyDownloadSuccessCount() {
+        return policyDownloadSuccessCount.incrementAndGet();
     }
 
     /**
@@ -118,21 +118,53 @@ public class PapStatisticsManager {
      *
      * @return the updated value of policyDownloadFailureCount
      */
-    public static long updatePolicyDownloadFailureCount() {
-        return ++policyDownloadFailureCount;
+    public long updatePolicyDownloadFailureCount() {
+        return policyDownloadFailureCount.incrementAndGet();
     }
 
     /**
      * Reset all the statistics counts to 0.
      */
-    public static void resetAllStatistics() {
-        totalPdpCount = 0L;
-        totalPdpGroupCount = 0L;
-        totalPolicyDeployCount = 0L;
-        policyDeploySuccessCount = 0L;
-        policyDeployFailureCount = 0L;
-        totalPolicyDownloadCount = 0L;
-        policyDownloadSuccessCount = 0L;
-        policyDownloadFailureCount = 0L;
+    public void resetAllStatistics() {
+        totalPdpCount.set(0L);
+        totalPdpGroupCount.set(0L);
+        totalPolicyDeployCount.set(0L);
+        policyDeploySuccessCount.set(0L);
+        policyDeployFailureCount.set(0L);
+        totalPolicyDownloadCount.set(0L);
+        policyDownloadSuccessCount.set(0L);
+        policyDownloadFailureCount.set(0L);
+    }
+
+    public long getTotalPdpCount() {
+        return totalPdpCount.get();
+    }
+
+    public long getTotalPdpGroupCount() {
+        return totalPdpGroupCount.get();
+    }
+
+    public long getTotalPolicyDeployCount() {
+        return totalPolicyDeployCount.get();
+    }
+
+    public long getPolicyDeploySuccessCount() {
+        return policyDeploySuccessCount.get();
+    }
+
+    public long getPolicyDeployFailureCount() {
+        return policyDeployFailureCount.get();
+    }
+
+    public long getTotalPolicyDownloadCount() {
+        return totalPolicyDownloadCount.get();
+    }
+
+    public long getPolicyDownloadSuccessCount() {
+        return policyDownloadSuccessCount.get();
+    }
+
+    public long getPolicyDownloadFailureCount() {
+        return policyDownloadFailureCount.get();
     }
 }
index 38ae503..026ccf4 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,15 +37,18 @@ public class StatisticsProvider {
      */
     public StatisticsReport fetchCurrentStatistics() {
         final StatisticsReport report = new StatisticsReport();
-        report.setCode(PapActivator.isAlive() ? 200 : 500);
-        report.setTotalPdpCount(PapStatisticsManager.getTotalPdpCount());
-        report.setTotalPdpGroupCount(PapStatisticsManager.getTotalPdpGroupCount());
-        report.setTotalPolicyDownloadCount(PapStatisticsManager.getTotalPolicyDownloadCount());
-        report.setPolicyDownloadSuccessCount(PapStatisticsManager.getPolicyDownloadSuccessCount());
-        report.setPolicyDownloadFailureCount(PapStatisticsManager.getPolicyDownloadFailureCount());
-        report.setTotalPolicyDeployCount(PapStatisticsManager.getTotalPolicyDeployCount());
-        report.setPolicyDeploySuccessCount(PapStatisticsManager.getPolicyDeploySuccessCount());
-        report.setPolicyDeployFailureCount(PapStatisticsManager.getPolicyDeployFailureCount());
+        report.setCode(PapActivator.getCurrent().isAlive() ? 200 : 500);
+
+        PapStatisticsManager mgr = PapStatisticsManager.getInstance();
+        report.setTotalPdpCount(mgr.getTotalPdpCount());
+        report.setTotalPdpGroupCount(mgr.getTotalPdpGroupCount());
+        report.setTotalPolicyDownloadCount(mgr.getTotalPolicyDownloadCount());
+        report.setPolicyDownloadSuccessCount(mgr.getPolicyDownloadSuccessCount());
+        report.setPolicyDownloadFailureCount(mgr.getPolicyDownloadFailureCount());
+        report.setTotalPolicyDeployCount(mgr.getTotalPolicyDeployCount());
+        report.setPolicyDeploySuccessCount(mgr.getPolicyDeploySuccessCount());
+        report.setPolicyDeployFailureCount(mgr.getPolicyDeployFailureCount());
+
         return report;
     }
 }
index 602e04d..cbe4dcc 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -75,6 +76,7 @@ public class Main {
 
         // Now, create the activator for the policy pap service
         activator = new PapActivator(parameterGroup);
+        PapActivator.setCurrent(activator);
 
         // Start the activator
         try {
index 9fb3535..18b8764 100644 (file)
@@ -21,6 +21,8 @@
 
 package org.onap.policy.pap.main.startstop;
 
+import lombok.Getter;
+import lombok.Setter;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.pap.main.PolicyPapException;
 import org.onap.policy.pap.main.parameters.PapParameterGroup;
@@ -39,7 +41,19 @@ public class PapActivator {
     private static final Logger LOGGER = LoggerFactory.getLogger(PapActivator.class);
 
     private final PapParameterGroup papParameterGroup;
-    private static volatile boolean alive = false;
+
+    /**
+     * The current activator. This is initialized to a dummy instance used until the real
+     * one has been configured.
+     */
+    @Getter
+    @Setter
+    private static volatile PapActivator current = new PapActivator(null);
+
+    @Getter
+    @Setter(lombok.AccessLevel.PRIVATE)
+    private volatile boolean alive = false;
+
     private PapRestServer restServer;
 
     /**
@@ -61,7 +75,7 @@ public class PapActivator {
             LOGGER.debug("Policy pap starting as a service . . .");
             startPapRestServer();
             registerToParameterService(papParameterGroup);
-            PapActivator.setAlive(true);
+            setAlive(true);
             LOGGER.debug("Policy pap started as a service");
         } catch (final Exception exp) {
             LOGGER.error("Policy pap service startup failed", exp);
@@ -77,7 +91,7 @@ public class PapActivator {
     public void terminate() throws PolicyPapException {
         try {
             deregisterToParameterService(papParameterGroup);
-            PapActivator.setAlive(false);
+            setAlive(false);
 
             // Stop the pap rest server
             restServer.stop();
@@ -114,24 +128,6 @@ public class PapActivator {
         ParameterService.deregister(papParameterGroup.getName());
     }
 
-    /**
-     * Returns the alive status of pap service.
-     *
-     * @return the alive
-     */
-    public static boolean isAlive() {
-        return alive;
-    }
-
-    /**
-     * Change the alive status of pap service.
-     *
-     * @param status the status
-     */
-    private static void setAlive(final boolean status) {
-        alive = status;
-    }
-
     /**
      * Starts the pap rest server using configuration parameters.
      *
index a845199..77ac8f1 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -76,6 +77,8 @@ public class TestPapRestServer {
      */
     @After
     public void teardown() {
+        PapStatisticsManager.getInstance().resetAllStatistics();
+
         try {
             if (NetworkUtil.isTcpPortOpen("localhost", 6969, 1, 1000L)) {
                 if (main != null) {
@@ -103,21 +106,16 @@ public class TestPapRestServer {
     }
 
     @Test
-    public void testHealthCheckFailure() throws InterruptedException, IOException {
+    public void testHealthCheckFailure() throws Exception {
         final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false);
         restServerParams.setName(CommonTestData.PAP_GROUP_NAME);
         restServer = new PapRestServer(restServerParams);
-        try {
-            restServer.start();
-            final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
-            final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
-            validateHealthCheckReport(NAME, SELF, false, 500, NOT_ALIVE, report);
-            assertTrue(restServer.isAlive());
-            assertTrue(restServer.toString().startsWith("PapRestServer [servers="));
-        } catch (final Exception exp) {
-            LOGGER.error("testHealthCheckFailure failed", exp);
-            fail("Test should not throw an exception");
-        }
+        restServer.start();
+        final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT);
+        final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
+        validateHealthCheckReport(NAME, SELF, false, 500, NOT_ALIVE, report);
+        assertTrue(restServer.isAlive());
+        assertTrue(restServer.toString().startsWith("PapRestServer [servers="));
     }
 
     @Test
@@ -144,7 +142,6 @@ public class TestPapRestServer {
             invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
             report = invocationBuilder.get(StatisticsReport.class);
             validateStatisticsReport(report, 1, 200);
-            PapStatisticsManager.resetAllStatistics();
         } catch (final Exception exp) {
             LOGGER.error("testPapStatistics_200 failed", exp);
             fail("Test should not throw an exception");
@@ -161,7 +158,6 @@ public class TestPapRestServer {
             final Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT);
             final StatisticsReport report = invocationBuilder.get(StatisticsReport.class);
             validateStatisticsReport(report, 0, 500);
-            PapStatisticsManager.resetAllStatistics();
         } catch (final Exception exp) {
             LOGGER.error("testPapStatistics_500 failed", exp);
             fail("Test should not throw an exception");
@@ -182,15 +178,9 @@ public class TestPapRestServer {
     }
 
     @Test
-    public void testPapStatisticsConstructorIsPrivate() {
-        try {
-            final Constructor<PapStatisticsManager> constructor = PapStatisticsManager.class.getDeclaredConstructor();
-            assertTrue(Modifier.isPrivate(constructor.getModifiers()));
-            constructor.setAccessible(true);
-            constructor.newInstance();
-        } catch (final Exception exp) {
-            assertTrue(exp.getCause().toString().contains("Instantiation of the class is not allowed"));
-        }
+    public void testPapStatisticsConstructorIsProtected() throws Exception {
+        final Constructor<PapStatisticsManager> constructor = PapStatisticsManager.class.getDeclaredConstructor();
+        assertTrue(Modifier.isProtected(constructor.getModifiers()));
     }
 
     private Main startPapService(final boolean http) {
@@ -265,14 +255,16 @@ public class TestPapRestServer {
     }
 
     private void updateDistributionStatistics() {
-        PapStatisticsManager.updateTotalPdpCount();
-        PapStatisticsManager.updateTotalPdpGroupCount();
-        PapStatisticsManager.updateTotalPolicyDeployCount();
-        PapStatisticsManager.updatePolicyDeploySuccessCount();
-        PapStatisticsManager.updatePolicyDeployFailureCount();
-        PapStatisticsManager.updateTotalPolicyDownloadCount();
-        PapStatisticsManager.updatePolicyDownloadSuccessCount();
-        PapStatisticsManager.updatePolicyDownloadFailureCount();
+        PapStatisticsManager mgr = PapStatisticsManager.getInstance();
+
+        mgr.updateTotalPdpCount();
+        mgr.updateTotalPdpGroupCount();
+        mgr.updateTotalPolicyDeployCount();
+        mgr.updatePolicyDeploySuccessCount();
+        mgr.updatePolicyDeployFailureCount();
+        mgr.updateTotalPolicyDownloadCount();
+        mgr.updatePolicyDownloadSuccessCount();
+        mgr.updatePolicyDownloadFailureCount();
     }
 
     private void validateStatisticsReport(final StatisticsReport report, final int count, final int code) {
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestPapStatisticsManager.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestPapStatisticsManager.java
new file mode 100644 (file)
index 0000000..d4e4f81
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pap.main.rest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+
+import org.junit.Test;
+
+public class TestPapStatisticsManager {
+
+    @Test
+    public void test() {
+        PapStatisticsManager mgr = PapStatisticsManager.getInstance();
+        assertNotNull(mgr);
+
+        // should return the same manager
+        assertSame(mgr, PapStatisticsManager.getInstance());
+
+        // work with a new object so we don't have to worry about initial counts
+        mgr = new PapStatisticsManager();
+
+        // try each update
+
+        assertEquals(0, mgr.getTotalPdpCount());
+        assertEquals(1, mgr.updateTotalPdpCount());
+        assertEquals(1, mgr.getTotalPdpCount());
+
+        assertEquals(0, mgr.getTotalPdpGroupCount());
+        assertEquals(1, mgr.updateTotalPdpGroupCount());
+        assertEquals(1, mgr.getTotalPdpGroupCount());
+
+        assertEquals(0, mgr.getTotalPolicyDeployCount());
+        assertEquals(1, mgr.updateTotalPolicyDeployCount());
+        assertEquals(1, mgr.getTotalPolicyDeployCount());
+
+        assertEquals(0, mgr.getPolicyDeploySuccessCount());
+        assertEquals(1, mgr.updatePolicyDeploySuccessCount());
+        assertEquals(1, mgr.getPolicyDeploySuccessCount());
+
+        assertEquals(0, mgr.getPolicyDeployFailureCount());
+        assertEquals(1, mgr.updatePolicyDeployFailureCount());
+        assertEquals(1, mgr.getPolicyDeployFailureCount());
+
+        assertEquals(0, mgr.getTotalPolicyDownloadCount());
+        assertEquals(1, mgr.updateTotalPolicyDownloadCount());
+        assertEquals(1, mgr.getTotalPolicyDownloadCount());
+
+        assertEquals(0, mgr.getPolicyDownloadSuccessCount());
+        assertEquals(1, mgr.updatePolicyDownloadSuccessCount());
+        assertEquals(1, mgr.getPolicyDownloadSuccessCount());
+
+        assertEquals(0, mgr.getPolicyDownloadFailureCount());
+        assertEquals(1, mgr.updatePolicyDownloadFailureCount());
+        assertEquals(1, mgr.getPolicyDownloadFailureCount());
+
+        // now check reset
+        mgr.resetAllStatistics();
+
+        assertEquals(0, mgr.getPolicyDeployFailureCount());
+        assertEquals(0, mgr.getTotalPdpCount());
+        assertEquals(0, mgr.getTotalPdpGroupCount());
+        assertEquals(0, mgr.getTotalPolicyDeployCount());
+        assertEquals(0, mgr.getPolicyDeploySuccessCount());
+        assertEquals(0, mgr.getPolicyDeployFailureCount());
+        assertEquals(0, mgr.getTotalPolicyDownloadCount());
+        assertEquals(0, mgr.getPolicyDownloadSuccessCount());
+        assertEquals(0, mgr.getPolicyDownloadFailureCount());
+    }
+}
index 3781be4..8e8e6c0 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 package org.onap.policy.pap.main.startstop;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.pap.main.PolicyPapException;
 import org.onap.policy.pap.main.parameters.CommonTestData;
@@ -44,6 +49,18 @@ public class TestPapActivator {
     private static final Logger LOGGER = LoggerFactory.getLogger(TestPapActivator.class);
     private PapActivator activator;
 
+    /**
+     * Initializes an activator.
+     * @throws Exception if an error occurs
+     */
+    @Before
+    public void setUp() throws Exception {
+        final String[] papConfigParameters = { "-c", "parameters/PapConfigParameters.json" };
+        final PapCommandLineArguments arguments = new PapCommandLineArguments(papConfigParameters);
+        final PapParameterGroup parGroup = new PapParameterHandler().getParameters(arguments);
+        activator = new PapActivator(parGroup);
+    }
+
     /**
      * Method for cleanup after each test.
      */
@@ -60,12 +77,10 @@ public class TestPapActivator {
 
     @Test
     public void testPapActivator() throws PolicyPapException {
-        final String[] papConfigParameters = { "-c", "parameters/PapConfigParameters.json" };
-        final PapCommandLineArguments arguments = new PapCommandLineArguments(papConfigParameters);
-        final PapParameterGroup parGroup = new PapParameterHandler().getParameters(arguments);
-        activator = new PapActivator(parGroup);
         try {
+            assertFalse(activator.isAlive());
             activator.initialize();
+            assertTrue(activator.isAlive());
             assertTrue(activator.getParameterGroup().isValid());
             assertEquals(CommonTestData.PAP_GROUP_NAME, activator.getParameterGroup().getName());
         } catch (final Exception exp) {
@@ -76,12 +91,17 @@ public class TestPapActivator {
 
     @Test(expected = PolicyPapException.class)
     public void testPapActivatorError() throws PolicyPapException {
-        final String[] papConfigParameters = { "-c", "parameters/PapConfigParameters.json" };
-        final PapCommandLineArguments arguments = new PapCommandLineArguments(papConfigParameters);
-        final PapParameterGroup parGroup = new PapParameterHandler().getParameters(arguments);
-        activator = new PapActivator(parGroup);
         activator.initialize();
         assertTrue(activator.getParameterGroup().isValid());
         activator.initialize();
     }
+
+    @Test
+    public void testGetCurrent_testSetCurrent() {
+        assertNotNull(PapActivator.getCurrent());
+
+        PapActivator.setCurrent(activator);
+
+        assertSame(activator, PapActivator.getCurrent());
+    }
 }