Author: rfeng
Date: Thu Mar 11 04:45:13 2010
New Revision: 921690
URL: http://svn.apache.org/viewvc?rev=921690&view=rev
Log:
Allows RMIHost to return mapped uri
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
Thu Mar 11 04:45:13 2010
@@ -77,7 +77,9 @@ public class RMIServiceBindingProvider i
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);
Modified:
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java
Thu Mar 11 04:45:13 2010
@@ -102,6 +102,17 @@ public class DefaultProviderFactoryExten
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.
Modified:
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/ProviderFactoryExtensionPoint.java
Thu Mar 11 04:45:13 2010
@@ -19,6 +19,7 @@
package org.apache.tuscany.sca.provider;
+import java.util.Collection;
import java.util.List;
@@ -60,4 +61,13 @@ public interface ProviderFactoryExtensio
*/
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);
+
+
}
Modified:
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/DefaultRMIHost.java
Thu Mar 11 04:45:13 2010
@@ -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 R
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 R
}
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 R
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 R
path = path.substring(1);
}
serviceName = path;
+ this.uriStr = "rmi://" + host + ":" + port + "/" + serviceName;
}
public String toString() {
Modified:
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/ExtensibleRMIHost.java
Thu Mar 11 04:45:13 2010
@@ -35,16 +35,16 @@ public class ExtensibleRMIHost implement
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);
}
Modified:
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java?rev=921690&r1=921689&r2=921690&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/host-rmi/src/main/java/org/apache/tuscany/sca/host/rmi/RMIHost.java
Thu Mar 11 04:45:13 2010
@@ -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