summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
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
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')
-rw-r--r--sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java4
-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
-rw-r--r--sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java13
-rw-r--r--sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java8
-rw-r--r--sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java3
6 files changed, 40 insertions, 9 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
index 2dbdbea67b..7e343e4413 100644
--- a/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
+++ b/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
@@ -77,7 +77,9 @@ public class RMIServiceBindingProvider implements ServiceBindingProvider {
try {
- rmiHost.registerService(binding.getURI(), rmiProxy);
+ String uri = rmiHost.registerService(binding.getURI(), rmiProxy);
+ // Update the binding with the physical URI
+ binding.setURI(uri);
} catch (RMIHostException e) {
throw new ServiceRuntimeException(e);
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);
+
+
}
diff --git a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
index cc819d194c..dade6ef7f3 100644
--- a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
+++ b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
@@ -19,7 +19,9 @@
package org.apache.tuscany.sca.host.rmi;
+import java.net.InetAddress;
import java.net.URI;
+import java.net.UnknownHostException;
import java.rmi.AlreadyBoundException;
import java.rmi.NoSuchObjectException;
import java.rmi.NotBoundException;
@@ -53,7 +55,7 @@ public class DefaultRMIHost implements RMIHost {
this.socketFactory = new RMISocketFactoryImpl(CONNECTION_TIMEOUT);
}
- public void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
+ public String registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
RMIURI rmiURI = new RMIURI(uri);
Registry registry;
@@ -69,6 +71,7 @@ public class DefaultRMIHost implements RMIHost {
}
registry.bind(rmiURI.serviceName, serviceObject);
logger.info("RMI service registered: " + rmiURI);
+ return rmiURI.toString();
} catch (AlreadyBoundException e) {
throw new RMIHostException(e);
} catch (RemoteException e) {
@@ -134,11 +137,14 @@ public class DefaultRMIHost implements RMIHost {
private String serviceName;
private RMIURI(String uriStr) {
- this.uriStr = uriStr;
URI uri = URI.create(uriStr);
host = uri.getHost();
if (host == null) {
- host = "localhost";
+ try {
+ host = InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException e) {
+ host = "localhost";
+ }
}
port = uri.getPort();
if (port <= 0) {
@@ -149,6 +155,7 @@ public class DefaultRMIHost implements RMIHost {
path = path.substring(1);
}
serviceName = path;
+ this.uriStr = "rmi://" + host + ":" + port + "/" + serviceName;
}
public String toString() {
diff --git a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
index 2f3e2311ed..d1936518ca 100644
--- a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
+++ b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
@@ -35,16 +35,16 @@ public class ExtensibleRMIHost implements RMIHost {
this.rmiHosts = rmiHosts;
}
- public void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
+ public String registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException {
if (rmiHosts.getRMIHosts().isEmpty()) {
- throw new RMIHostException("No RMI host available");
+ throw new RMIHostException("No RMI host is available");
}
- getDefaultHost().registerService(uri, serviceObject);
+ return getDefaultHost().registerService(uri, serviceObject);
}
public void unregisterService(String uri) throws RMIHostException, RMIHostRuntimeException {
if (rmiHosts.getRMIHosts().isEmpty()) {
- throw new RMIHostException("No RMI host available");
+ throw new RMIHostException("No RMI host is available");
}
getDefaultHost().unregisterService(uri);
}
diff --git a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
index bf8659c254..df3f074168 100644
--- a/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
+++ b/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
@@ -34,10 +34,11 @@ public interface RMIHost {
*
* @param uri the URI against which the server is to be registered
* @param serviceObject the server object to be registered
+ * @return TODO
* @throws RMIHostException
* @throws RMIHostRuntimeException
*/
- void registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException;
+ String registerService(String uri, Remote serviceObject) throws RMIHostException, RMIHostRuntimeException;
/**
* Unregister a service registered under the given service name and port number