You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/08/18 21:27:13 UTC

svn commit: r986876 - /tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java

Author: rfeng
Date: Wed Aug 18 19:27:13 2010
New Revision: 986876

URL: http://svn.apache.org/viewvc?rev=986876&view=rev
Log:
Make sure ranking is honored

Modified:
    tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java

Modified: tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java?rev=986876&r1=986875&r2=986876&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java Wed Aug 18 19:27:13 2010
@@ -65,7 +65,10 @@ public class DefaultProviderFactoryExten
         if(providerFactory instanceof PolicyProviderFactory) {
             policyProviderFactories.add((PolicyProviderFactory)providerFactory);
         } 
-        providerFactories.put(providerFactory.getModelType(), providerFactory);
+        // Only add the 1st instance so that the ones with higher ranking with prevail
+        if (!providerFactories.containsKey(providerFactory.getModelType())) {
+            providerFactories.put(providerFactory.getModelType(), providerFactory);
+        }
     }
 
     /**
@@ -148,9 +151,6 @@ public class DefaultProviderFactoryExten
             throw new IllegalStateException(e);
         }
 
-        // Get the target extension point
-        ProviderFactoryExtensionPoint factoryExtensionPoint =
-            registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
         List<ProviderFactory> factories = new ArrayList<ProviderFactory>();
 
         for (ServiceDeclaration factoryDeclaration : factoryDeclarations) {
@@ -163,7 +163,7 @@ public class DefaultProviderFactoryExten
                 // Create a provider factory wrapper and register it
                 ImplementationProviderFactory factory =
                     new LazyImplementationProviderFactory(registry, modelTypeName, factoryDeclaration);
-                factoryExtensionPoint.addProviderFactory(factory);
+                addProviderFactory(factory);
                 factories.add(factory);
 
             } else if (factoryClass == BindingProviderFactory.class) {
@@ -174,7 +174,7 @@ public class DefaultProviderFactoryExten
                 // Create a provider factory wrapper and register it
                 BindingProviderFactory factory =
                     new LazyBindingProviderFactory(registry, modelTypeName, factoryDeclaration);
-                factoryExtensionPoint.addProviderFactory(factory);
+                addProviderFactory(factory);
                 factories.add(factory);
             } else if (factoryClass == PolicyProviderFactory.class) {
                 // Load a policy provider factory
@@ -183,7 +183,7 @@ public class DefaultProviderFactoryExten
                 // Create a provider factory wrapper and register it
                 PolicyProviderFactory factory =
                     new LazyPolicyProviderFactory(registry, modelTypeName, factoryDeclaration);
-                factoryExtensionPoint.addProviderFactory(factory);
+                addProviderFactory(factory);
                 factories.add(factory);
             } else if (factoryClass == WireFormatProviderFactory.class) {
 
@@ -193,7 +193,7 @@ public class DefaultProviderFactoryExten
                 // Create a provider factory wrapper and register it
                 WireFormatProviderFactory factory =
                     new LazyWireFormatProviderFactory(registry, modelTypeName, factoryDeclaration);
-                factoryExtensionPoint.addProviderFactory(factory);
+                addProviderFactory(factory);
                 factories.add(factory);
             } else if (factoryClass == OperationSelectorProviderFactory.class) {
 
@@ -203,7 +203,7 @@ public class DefaultProviderFactoryExten
                 // Create a provider factory wrapper and register it
                 OperationSelectorProviderFactory factory =
                     new LazyOperationSelectorProviderFactory(registry, modelTypeName, factoryDeclaration);
-                factoryExtensionPoint.addProviderFactory(factory);
+                addProviderFactory(factory);
                 factories.add(factory);
             }
         }