From 5a3d8b8892782ab02265323094b090b64532957f Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 18 Aug 2010 19:27:13 +0000 Subject: Make sure ranking is honored git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@986876 13f79535-47bb-0310-9956-ffa450edef68 --- .../provider/DefaultProviderFactoryExtensionPoint.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java') diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java index 6aad6786e3..40b6275667 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java @@ -65,7 +65,10 @@ public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte 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 DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte throw new IllegalStateException(e); } - // Get the target extension point - ProviderFactoryExtensionPoint factoryExtensionPoint = - registry.getExtensionPoint(ProviderFactoryExtensionPoint.class); List factories = new ArrayList(); for (ServiceDeclaration factoryDeclaration : factoryDeclarations) { @@ -163,7 +163,7 @@ public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte // 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 DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte // 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 DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte // 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 DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte // 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 DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte // Create a provider factory wrapper and register it OperationSelectorProviderFactory factory = new LazyOperationSelectorProviderFactory(registry, modelTypeName, factoryDeclaration); - factoryExtensionPoint.addProviderFactory(factory); + addProviderFactory(factory); factories.add(factory); } } -- cgit v1.2.3