summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-08-18 19:27:13 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-08-18 19:27:13 +0000
commit5a3d8b8892782ab02265323094b090b64532957f (patch)
treea86990600a57ecbb002f9ebfad8520e127c286ad /sca-java-2.x
parent8a794a6fce118af254cb6338dc9c55cb0dc125e8 (diff)
Make sure ranking is honored
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@986876 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x')
-rw-r--r--sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java18
1 files changed, 9 insertions, 9 deletions
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<ProviderFactory> factories = new ArrayList<ProviderFactory>();
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);
}
}