summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-03-11 04:45:13 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-03-11 04:45:13 +0000
commit4c992115eb659a49506d19fbb8c116bc44f7421d (patch)
treea0be41d1afd7248406f0160024cc51e8ba72a3b2 /sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany
parent98e926ec59cca9e5696e5376ea59940ceb7cae3b (diff)
Allows RMIHost to return mapped uri
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@921690 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany')
-rw-r--r--sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java11
-rw-r--r--sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java10
2 files changed, 21 insertions, 0 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 8621baca2e..6aad6786e3 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
@@ -102,6 +102,17 @@ public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte
loadProviderFactories();
return policyProviderFactories;
}
+
+ public <P extends ProviderFactory> Collection<P> getProviderFactories(Class<P> factoryType) {
+ loadProviderFactories();
+ List<P> factories = new ArrayList<P>();
+ for (ProviderFactory pf : providerFactories.values()) {
+ if (factoryType.isInstance(pf)) {
+ factories.add(factoryType.cast(pf));
+ }
+ }
+ return factories;
+ }
/**
* Load provider factories declared under META-INF/services.
diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
index d8f9973338..54dd6cc912 100644
--- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
+++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
@@ -19,6 +19,7 @@
package org.apache.tuscany.sca.provider;
+import java.util.Collection;
import java.util.List;
@@ -60,4 +61,13 @@ public interface ProviderFactoryExtensionPoint {
*/
List<PolicyProviderFactory> getPolicyProviderFactories();
+ /**
+ * Get a collection of provider factories by the factory type
+ * @param <P>
+ * @param factoryType The factory type such as BindingProviderFactory
+ * @return a collection of provider factories of the factory type
+ */
+ <P extends ProviderFactory> Collection<P> getProviderFactories(Class<P> factoryType);
+
+
}