Author: jsdelfino
Date: Sun Sep 28 17:46:24 2008
New Revision: 699931
URL: http://svn.apache.org/viewvc?rev=699931&view=rev
Log:
Merged from trunk. Fix the classloader parent.
Modified:
tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
Modified:
tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java?rev=699931&r1=699930&r2=699931&view=diff
==============================================================================
---
tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
(original)
+++
tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
Sun Sep 28 17:46:24 2008
@@ -87,6 +87,7 @@
}
public void stop() {
+ rmiHost.unregisterService(binding.getServiceName(),
getPort(binding.getPort()));
}
private int getPort(String port) {
@@ -131,9 +132,9 @@
});
Class targetJavaInterface = getTargetJavaClass(serviceInterface);
if (!Remote.class.isAssignableFrom(targetJavaInterface)) {
- RMIServiceClassLoader classloader = new
RMIServiceClassLoader(getClass().getClassLoader());
+ RMIServiceClassLoader classloader = new
RMIServiceClassLoader(targetJavaInterface.getClassLoader());
final byte[] byteCode =
generateRemoteInterface(targetJavaInterface);
- targetJavaInterface = classloader.defineClass(byteCode);
+ targetJavaInterface =
classloader.defineClass(targetJavaInterface.getName(), byteCode);
enhancer.setClassLoader(classloader);
}
enhancer.setInterfaces(new Class[] {targetJavaInterface});
@@ -151,7 +152,7 @@
* caller of this method, since it requires a ClassLoader to be created to
define and load this interface.
*/
private byte[] generateRemoteInterface(Class serviceInterface) {
- String interfazeName = serviceInterface.getCanonicalName();
+ String interfazeName = serviceInterface.getName();
ClassWriter cw = new ClassWriter(false);
String simpleName = serviceInterface.getSimpleName();
@@ -194,8 +195,8 @@
super(parent);
}
- public Class defineClass(byte[] byteArray) {
- return defineClass(null, byteArray, 0, byteArray.length);
+ public Class defineClass(String name, byte[] byteArray) {
+ return defineClass(name, byteArray, 0, byteArray.length);
}
}