summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/sca-client-impl/src
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk/modules/sca-client-impl/src')
-rw-r--r--sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java49
-rw-r--r--sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java18
-rw-r--r--sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java14
3 files changed, 56 insertions, 25 deletions
diff --git a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java
new file mode 100644
index 0000000000..6bbc2b48e9
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryFinderImpl.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright(C) OASIS(R) 2005,2009. All Rights Reserved.
+ * OASIS trademark, IPR and other policies apply.
+ */
+package org.apache.tuscany.sca.client.impl;
+
+import java.net.URI;
+import java.util.Properties;
+
+import org.oasisopen.sca.NoSuchDomainException;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.client.SCAClientFactory;
+import org.oasisopen.sca.client.SCAClientFactoryFinder;
+
+/**
+ * A Tuscany specific implementation of an SCAClientFactoryFinder which finds
+ * hard codes the use of the Tuscany SCAClientFactory instead of doscovering it.
+ *
+ * @see SCAClientFactoryFinder
+ * @see SCAClientFactory
+ */
+public class SCAClientFactoryFinderImpl implements SCAClientFactoryFinder {
+
+ /**
+ * Public Constructor
+ */
+ public SCAClientFactoryFinderImpl() {
+ }
+
+ /**
+ * Creates an instance of the SCAClientFactorySPI implementation.
+ * This discovers the SCAClientFactorySPI Implementation and instantiates
+ * the provider's implementation.
+ *
+ * @param properties Properties that may be used when creating a new
+ * instance of the SCAClient
+ * @param classLoader ClassLoader that may be used when creating a new
+ * instance of the SCAClient
+ * @return new instance of the SCAClientFactory
+ * @throws ServiceRuntimeException Failed to create SCAClientFactory
+ * Implementation.
+ */
+ public SCAClientFactory find(Properties properties,
+ ClassLoader classLoader,
+ URI domainURI ) throws NoSuchDomainException, ServiceRuntimeException {
+ return new SCAClientFactoryImpl(domainURI);
+ }
+
+}
diff --git a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
index ec9d073ca9..7afc6bbe07 100644
--- a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
+++ b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
@@ -20,7 +20,6 @@
package org.apache.tuscany.sca.client.impl;
import java.net.URI;
-import java.net.URISyntaxException;
import java.util.List;
import org.apache.tuscany.sca.node.Node;
@@ -29,23 +28,18 @@ import org.oasisopen.sca.NoSuchDomainException;
import org.oasisopen.sca.NoSuchServiceException;
import org.oasisopen.sca.ServiceUnavailableException;
import org.oasisopen.sca.client.SCAClientFactory;
+import org.oasisopen.sca.client.SCAClientFactoryFinder;
public class SCAClientFactoryImpl extends SCAClientFactory {
-
- // required when a registry is used to create the factory
- // need to extend to have domain uri configuration
- public SCAClientFactoryImpl() throws URISyntaxException {
- super(new URI(Node.DEFAULT_DOMAIN_URI));
- }
- public SCAClientFactoryImpl(URI domainURI) {
+ public static void setSCAClientFactoryFinder(SCAClientFactoryFinder factoryFinder) {
+ SCAClientFactory.factoryFinder = factoryFinder;
+ }
+
+ public SCAClientFactoryImpl(URI domainURI) throws NoSuchDomainException {
super(domainURI);
}
- public static void setDefaultClientFactory(SCAClientFactory clientFactory){
- defaultFactory = clientFactory;
- }
-
@Override
public <T> T getService(Class<T> serviceInterface, String serviceName) throws NoSuchServiceException, NoSuchDomainException {
URI domainURI = getDomainURI();
diff --git a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java
index 8501b37b24..64f982796c 100644
--- a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java
+++ b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientModuleActivator.java
@@ -21,26 +21,14 @@ package org.apache.tuscany.sca.client.impl;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
-import org.oasisopen.sca.client.SCAClientFactory;
public class SCAClientModuleActivator implements ModuleActivator {
- private ExtensionPointRegistry registry;
-
public SCAClientModuleActivator(ExtensionPointRegistry registry) {
- this.registry = registry;
}
public void start() {
- // look up the SCAClientFactory. We could instantiate one directly here but
- // looking it up brings the META-INF/services mechanism into play
- SCAClientFactory clientFactory = registry.getExtensionPoint(SCAClientFactory.class);
-
- // inject this client factory as the default client factory
- // so that the SCAClientFactory interface doesn't have to use the
- // finder to look for it.
- // TODO - handle multiple domains
- SCAClientFactoryImpl.setDefaultClientFactory(clientFactory);
+ SCAClientFactoryImpl.setSCAClientFactoryFinder(new SCAClientFactoryFinderImpl());
}
public void stop() {