TAMAYA-212: Rendered default comparators into singletons.

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

Branch: refs/heads/master
Commit: fe77d58fe50b0f9a9ea5d473d96e3aa439356f4a
Parents: 9e4991b
Author: anatole <anat...@apache.org>
Authored: Wed Dec 21 16:50:43 2016 +0100
Committer: anatole <anat...@apache.org>
Committed: Wed Dec 21 16:50:43 2016 +0100

----------------------------------------------------------------------
 .../DefaultConfigurationContextBuilder.java           |  3 ---
 .../tamaya/spisupport/PriorityServiceComparator.java  | 12 ++++++++++++
 .../spisupport/PropertiesResourcePropertySource.java  |  4 +++-
 .../tamaya/spisupport/PropertyFilterComparator.java   | 14 +++++++++++++-
 .../tamaya/spisupport/PropertySourceComparator.java   | 13 +++++++++++++
 .../spisupport/PriorityServiceComparatorTest.java     | 10 ++++------
 6 files changed, 45 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilder.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilder.java
 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilder.java
index 3ed8946..d3b6930 100644
--- 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilder.java
+++ 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilder.java
@@ -46,9 +46,6 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
 
     private static final Logger LOG = 
Logger.getLogger(DefaultConfigurationContextBuilder.class.getName());
 
-    public static final Comparator<PropertySource> 
DEFAULT_PROPERTYSOURCE_COMPARATOR = new PropertySourceComparator();
-    public static final Comparator<?> DEFAULT_PROPERTYFILTER_COMPARATOR = new 
PriorityServiceComparator();
-
     List<PropertyFilter> propertyFilters = new ArrayList<>();
     List<PropertySource> propertySources = new ArrayList<>();
     PropertyValueCombinationPolicy combinationPolicy =

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PriorityServiceComparator.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PriorityServiceComparator.java
 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PriorityServiceComparator.java
index 8f15696..90a8387 100644
--- 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PriorityServiceComparator.java
+++ 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PriorityServiceComparator.java
@@ -29,6 +29,18 @@ public class PriorityServiceComparator implements 
Comparator<Object>, Serializab
 
     private static final long serialVersionUID = 1L;
 
+    private static final PriorityServiceComparator INSTANCE = new 
PriorityServiceComparator();
+
+    private PriorityServiceComparator(){}
+
+    /**
+     * Get the shared instance of the comparator.
+     * @return the shared instance, never null.
+     */
+    public static PriorityServiceComparator getInstance(){
+        return INSTANCE;
+    }
+
     @Override
     public int compare(Object o1, Object o2) {
         int prio = getPriority(o1) - getPriority(o2);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertiesResourcePropertySource.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertiesResourcePropertySource.java
 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertiesResourcePropertySource.java
index 3744c94..1dc7586 100644
--- 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertiesResourcePropertySource.java
+++ 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertiesResourcePropertySource.java
@@ -18,6 +18,8 @@
  */
 package org.apache.tamaya.spisupport;
 
+import org.apache.tamaya.spi.ServiceContextManager;
+
 import java.io.InputStream;
 import java.net.URL;
 import java.util.HashMap;
@@ -77,7 +79,7 @@ public class PropertiesResourcePropertySource extends 
MapPropertySource {
         if(cl==null){
             cl = PropertiesResourcePropertySource.class.getClassLoader();
         }
-        URL url = cl.getResource(path);
+        URL url = ServiceContextManager.getServiceContext().getResource(path, 
cl);
         return loadProps(url);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFilterComparator.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFilterComparator.java
 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFilterComparator.java
index a7a5c66..20eef63 100644
--- 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFilterComparator.java
+++ 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFilterComparator.java
@@ -27,10 +27,22 @@ import java.util.Comparator;
 /**
  * Comparator for PropertyFilters based on their priority annotations.
  */
-public class PropertyFilterComparator implements Comparator<PropertyFilter>, 
Serializable {
+public final class PropertyFilterComparator implements 
Comparator<PropertyFilter>, Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    private static final PropertyFilterComparator INSTANCE = new 
PropertyFilterComparator();
+
+    /**
+     * Get the shared instance of the comparator.
+     * @return the shared instance, never null.
+     */
+    public static PropertyFilterComparator getInstance(){
+        return INSTANCE;
+    }
+
+    private PropertyFilterComparator(){}
+
     /**
      * Compare 2 filters for ordering the filter chain.
      *

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertySourceComparator.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertySourceComparator.java
 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertySourceComparator.java
index 6554167..71e3ffb 100644
--- 
a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertySourceComparator.java
+++ 
b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertySourceComparator.java
@@ -30,6 +30,19 @@ public class PropertySourceComparator implements 
Comparator<PropertySource>, Ser
     /** serial version UID. */
     private static final long serialVersionUID = 1L;
 
+    private static final PropertySourceComparator INSTANCE = new 
PropertySourceComparator();
+
+    private PropertySourceComparator(){}
+
+    /**
+     * Get the shared instance of the comparator.
+     * @return the shared instance, never null.
+     */
+    public static PropertySourceComparator getInstance(){
+        return INSTANCE;
+    }
+
+
     /**
      * Order property source reversely, the most important come first.
      *

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fe77d58f/modules/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java
----------------------------------------------------------------------
diff --git 
a/modules/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java
 
b/modules/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java
index 846e283..dc15a16 100644
--- 
a/modules/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java
+++ 
b/modules/spi-support/src/test/java/org/apache/tamaya/spisupport/PriorityServiceComparatorTest.java
@@ -29,14 +29,12 @@ import static org.junit.Assert.*;
  */
 public class PriorityServiceComparatorTest {
 
-    private PriorityServiceComparator comp = new PriorityServiceComparator();
-
     @Test
     public void compare() throws Exception {
-        assertTrue(comp.compare("a", "b")==0);
-        assertTrue(comp.compare(getClass(), getClass())==0);
-        assertTrue(comp.compare(new A(), new SystemPropertySource())==-1);
-        assertTrue(comp.compare(new SystemPropertySource(), new A())==1);
+        assertTrue(PriorityServiceComparator.getInstance().compare("a", 
"b")==0);
+        assertTrue(PriorityServiceComparator.getInstance().compare(getClass(), 
getClass())==0);
+        assertTrue(PriorityServiceComparator.getInstance().compare(new A(), 
new SystemPropertySource())==-1);
+        assertTrue(PriorityServiceComparator.getInstance().compare(new 
SystemPropertySource(), new A())==1);
     }
 
     @Priority(100)

Reply via email to