You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2018/11/18 21:20:43 UTC

[10/16] incubator-tamaya-sandbox git commit: TAMAYA-274 Some minor additions. TAMAYA-353 Some minor additions.

TAMAYA-274  Some minor additions.
TAMAYA-353  Some minor additions.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/commit/a4bfdb4a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/tree/a4bfdb4a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/diff/a4bfdb4a

Branch: refs/heads/master
Commit: a4bfdb4a6df6be1602d6fc31fb68465114c1feac
Parents: 19ba2a4
Author: Anatole Tresch <at...@gmail.com>
Authored: Mon Nov 5 00:21:40 2018 +0100
Committer: Anatole Tresch <at...@gmail.com>
Committed: Mon Nov 5 00:21:40 2018 +0100

----------------------------------------------------------------------
 .../apache/tamaya/usagetracker/ConfigUsage.java | 53 ++++++++------
 .../apache/tamaya/usagetracker/UsageStat.java   |  2 +-
 .../tamaya/model/ConfigUsageStatsTest.java      | 74 --------------------
 .../apache/tamaya/model/ConfigUsageTest.java    | 74 ++++++++++++++++++++
 4 files changed, 108 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/a4bfdb4a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/ConfigUsage.java
----------------------------------------------------------------------
diff --git a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/ConfigUsage.java b/usagetracker/src/main/java/org/apache/tamaya/usagetracker/ConfigUsage.java
index 1bfacb4..13536ba 100644
--- a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/ConfigUsage.java
+++ b/usagetracker/src/main/java/org/apache/tamaya/usagetracker/ConfigUsage.java
@@ -23,6 +23,7 @@ import org.apache.tamaya.spi.ServiceContextManager;
 import org.apache.tamaya.usagetracker.spi.ConfigUsageSpi;
 
 import java.util.Collection;
+import java.util.Objects;
 import java.util.Set;
 import java.util.logging.Logger;
 
@@ -36,8 +37,10 @@ public final class ConfigUsage {
 
     private static final String NO_USAGE_TRACKER_SPI_COMPONENT_MESSAGE = "No UsageTrackerSpi component available.";
 
+    private ConfigUsageSpi spi;
+
     /** The loaded usage tracking SPI. */
-    private static ConfigUsageSpi spi(){
+    private static ConfigUsageSpi spi(ClassLoader classLoader){
         ConfigUsageSpi spi = ServiceContextManager
                 .getServiceContext().getService(ConfigUsageSpi.class);
         if(spi==null){
@@ -49,31 +52,41 @@ public final class ConfigUsage {
     /**
      * Singleton constructor.
      */
-    private ConfigUsage() {
+    private ConfigUsage(ConfigUsageSpi spi) {
+        this.spi = Objects.requireNonNull(spi);
+    }
+
+    public static ConfigUsage getInstance(){
+        return getInstance(ServiceContextManager.getDefaultClassLoader());
+    }
+
+    public static ConfigUsage getInstance(ClassLoader classLoader){
+        return  ServiceContextManager.getServiceContext(classLoader).getService(ConfigUsage.class,
+                () -> new ConfigUsage(spi(classLoader)));
     }
 
     /**
      * Returns a setCurrent of package names that are to be ignored when collecting usage data.
      * @return the ignored package names, not null.
      */
-    public static Set<String> getIgnoredPackages(){
-        return spi().getIgnoredPackages();
+    public Set<String> getIgnoredPackages(){
+        return spi.getIgnoredPackages();
     }
 
     /**
      * Adds the given packageNames to the createList of packages to be ignored when collecting usage data.
      * @param packageName the package names to be added, not null.
      */
-    public static void addIgnoredPackages(String... packageName){
-        spi().addIgnoredPackages(packageName);
+    public void addIgnoredPackages(String... packageName){
+        spi.addIgnoredPackages(packageName);
     }
 
     /**
      * Enables/disables usage tracking.
      * @param enabled setCurrent to true to enable usage tracking.
      */
-    public static void enableUsageTracking(boolean enabled){
-        spi().enableUsageTracking(enabled);
+    public void enableUsageTracking(boolean enabled){
+        spi.enableUsageTracking(enabled);
     }
 
     /**
@@ -82,23 +95,23 @@ public final class ConfigUsage {
      * @param key the fully qualified configuration key, not null.
      * @return the stats collected, or null.
      */
-    public static UsageStat getSinglePropertyStats(String key){
-        return spi().getSinglePropertyStats(key);
+    public UsageStat getSinglePropertyStats(String key){
+        return spi.getSinglePropertyStats(key);
     }
 
     /**
      * Get the recorded usage references of configuration.
      * @return the recorded usge references, never null.
      */
-    public static Collection<UsageStat> getUsageStats() {
-        return spi().getUsageStats();
+    public Collection<UsageStat> getUsageStats() {
+        return spi.getUsageStats();
     }
 
     /**
      * Clears all collected usage statistics.
      */
-    public static void clearStats() {
-        spi().clearStats();
+    public void clearStats() {
+        spi.clearStats();
     }
 
     /**
@@ -106,24 +119,24 @@ public final class ConfigUsage {
      * If usage stats collection is not activated (default), this method returns null.
      * @return the stats collected, or null.
      */
-    public static UsageStat getAllPropertiesStats(){
-        return spi().getAllPropertiesStats();
+    public UsageStat getAllPropertiesStats(){
+        return spi.getAllPropertiesStats();
     }
 
     /**
      * Allows to check if usage tracking is enabled (should be disbled by default).
      * @return true, if usage tracking is enabled.
      */
-    public static boolean isTrackingEnabled(){
-        return spi().isTrackingEnabled();
+    public boolean isTrackingEnabled(){
+        return spi.isTrackingEnabled();
     }
 
     /**
      * Access the usage statistics for the recorded uses of configuration.
      * @return usage info or default message.
      */
-    public static String getInfo(){
-        return spi().getInfo();
+    public String getInfo(){
+        return spi.getInfo();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/a4bfdb4a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/UsageStat.java
----------------------------------------------------------------------
diff --git a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/UsageStat.java b/usagetracker/src/main/java/org/apache/tamaya/usagetracker/UsageStat.java
index bab6312..43e88f6 100644
--- a/usagetracker/src/main/java/org/apache/tamaya/usagetracker/UsageStat.java
+++ b/usagetracker/src/main/java/org/apache/tamaya/usagetracker/UsageStat.java
@@ -188,7 +188,7 @@ public final class UsageStat {
             List<String> trace = new ArrayList<>();
             stack:
             for (StackTraceElement ste : e.getStackTrace()) {
-                for (String ignored : ConfigUsage.getIgnoredPackages()) {
+                for (String ignored : ConfigUsage.getInstance().getIgnoredPackages()) {
                     if (ste.getClassName().startsWith(ignored)) {
                         continue stack;
                     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/a4bfdb4a/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
----------------------------------------------------------------------
diff --git a/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java b/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
deleted file mode 100644
index 04a3cbf..0000000
--- a/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageStatsTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.tamaya.model;
-
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.usagetracker.ConfigUsage;
-import org.junit.Test;
-import test.model.TestConfigAccessor;
-
-import static org.junit.Assert.*;
-
-/**
- * Created by Anatole on 09.08.2015.
- */
-public class ConfigUsageStatsTest {
-
-    @Test
-    public void testUsageWhenEnabled(){
-        ConfigUsage.enableUsageTracking(true);
-        TestConfigAccessor.readConfiguration();
-        Configuration config = Configuration.current();
-        String info = ConfigUsage.getInfo();
-        assertFalse(info.contains("java.version"));
-        assertNotNull(info);
-        config = TestConfigAccessor.readConfiguration();
-        config.getProperties();
-        TestConfigAccessor.readProperty(config, "java.locale");
-        TestConfigAccessor.readProperty(config, "java.version");
-        TestConfigAccessor.readProperty(config, "java.version");
-        config.get("java.version");
-        info = ConfigUsage.getInfo();
-        System.out.println(info);
-        assertTrue(info.contains("java.version"));
-        assertNotNull(info);
-        ConfigUsage.enableUsageTracking(false);
-    }
-
-    @Test
-    public void testUsageWhenDisabled(){
-        ConfigUsage.enableUsageTracking(false);
-        ConfigUsage.clearStats();
-        TestConfigAccessor.readConfiguration();
-        Configuration config = Configuration.current();
-        String info = ConfigUsage.getInfo();
-        assertNotNull(info);
-        assertFalse(info.contains("java.version"));
-        config = TestConfigAccessor.readConfiguration();
-        config.getProperties();
-        TestConfigAccessor.readProperty(config, "java.locale");
-        TestConfigAccessor.readProperty(config, "java.version");
-        TestConfigAccessor.readProperty(config, "java.version");
-        config.get("java.version");
-        info = ConfigUsage.getInfo();
-        assertFalse(info.contains("java.version"));
-        assertNotNull(info);
-        ConfigUsage.enableUsageTracking(false);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/a4bfdb4a/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageTest.java
----------------------------------------------------------------------
diff --git a/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageTest.java b/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageTest.java
new file mode 100644
index 0000000..d424ab7
--- /dev/null
+++ b/usagetracker/src/test/java/org/apache/tamaya/model/ConfigUsageTest.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.tamaya.model;
+
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.usagetracker.ConfigUsage;
+import org.junit.Test;
+import test.model.TestConfigAccessor;
+
+import static org.junit.Assert.*;
+
+/**
+ * Created by Anatole on 09.08.2015.
+ */
+public class ConfigUsageTest {
+
+    @Test
+    public void testUsageWhenEnabled(){
+        ConfigUsage.getInstance().enableUsageTracking(true);
+        TestConfigAccessor.readConfiguration();
+        Configuration config = Configuration.current();
+        String info = ConfigUsage.getInstance().getInfo();
+        assertFalse(info.contains("java.version"));
+        assertNotNull(info);
+        config = TestConfigAccessor.readConfiguration();
+        config.getProperties();
+        TestConfigAccessor.readProperty(config, "java.locale");
+        TestConfigAccessor.readProperty(config, "java.version");
+        TestConfigAccessor.readProperty(config, "java.version");
+        config.get("java.version");
+        info = ConfigUsage.getInstance().getInfo();
+        System.out.println(info);
+        assertTrue(info.contains("java.version"));
+        assertNotNull(info);
+        ConfigUsage.getInstance().enableUsageTracking(false);
+    }
+
+    @Test
+    public void testUsageWhenDisabled(){
+        ConfigUsage.getInstance().enableUsageTracking(false);
+        ConfigUsage.getInstance().clearStats();
+        TestConfigAccessor.readConfiguration();
+        Configuration config = Configuration.current();
+        String info = ConfigUsage.getInstance().getInfo();
+        assertNotNull(info);
+        assertFalse(info.contains("java.version"));
+        config = TestConfigAccessor.readConfiguration();
+        config.getProperties();
+        TestConfigAccessor.readProperty(config, "java.locale");
+        TestConfigAccessor.readProperty(config, "java.version");
+        TestConfigAccessor.readProperty(config, "java.version");
+        config.get("java.version");
+        info = ConfigUsage.getInstance().getInfo();
+        assertFalse(info.contains("java.version"));
+        assertNotNull(info);
+        ConfigUsage.getInstance().enableUsageTracking(false);
+    }
+}