You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by xi...@apache.org on 2011/02/16 10:35:42 UTC

svn commit: r1071188 - in /geronimo/yoko/trunk: yoko-core/src/main/resources/OSGI-INF/blueprint/ yoko-rmi-spec/src/main/java/javax/rmi/CORBA/ yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/

Author: xiaming
Date: Wed Feb 16 09:35:41 2011
New Revision: 1071188

URL: http://svn.apache.org/viewvc?rev=1071188&view=rev
Log:
YOKO-431 use service class key to search impl. first in the blueprint service registry, and correct a service key name for ORBSingleton

Modified:
    geronimo/yoko/trunk/yoko-core/src/main/resources/OSGI-INF/blueprint/provider.xml
    geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Stub.java
    geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Util.java
    geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/UtilLoader.java

Modified: geronimo/yoko/trunk/yoko-core/src/main/resources/OSGI-INF/blueprint/provider.xml
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/yoko-core/src/main/resources/OSGI-INF/blueprint/provider.xml?rev=1071188&r1=1071187&r2=1071188&view=diff
==============================================================================
--- geronimo/yoko/trunk/yoko-core/src/main/resources/OSGI-INF/blueprint/provider.xml (original)
+++ geronimo/yoko/trunk/yoko-core/src/main/resources/OSGI-INF/blueprint/provider.xml Wed Feb 16 09:35:41 2011
@@ -48,7 +48,7 @@ limitations under the License.
           init-method="start"
           destroy-method="stop">
         <argument>
-            <value>org.omg.CORBA.ORBSingleton</value>
+            <value>org.omg.CORBA.ORBSingletonClass</value>
         </argument>
         <argument>
             <value>org.apache.yoko.orb.CORBA.ORBSingleton</value>

Modified: geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Stub.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Stub.java?rev=1071188&r1=1071187&r2=1071188&view=diff
==============================================================================
--- geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Stub.java (original)
+++ geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Stub.java Wed Feb 16 09:35:41 2011
@@ -25,6 +25,7 @@ import java.rmi.RemoteException;
 import java.security.AccessController;
 
 import org.apache.yoko.rmispec.util.GetSystemPropertyAction;
+import org.apache.yoko.rmispec.util.UtilLoader;
 import org.omg.CORBA.ORB;
 import org.omg.CORBA_2_3.portable.ObjectImpl;
 
@@ -33,14 +34,15 @@ public abstract class Stub extends Objec
 
     private transient StubDelegate delegate = null;
     private static final String defaultDelegate = "org.apache.yoko.rmi.impl.StubImpl";
+    private static final String DELEGATEKEY = "javax.rmi.CORBA.StubClass";
     // the class we use to create delegates.  This is loaded once,
     private static Class delegateClass = null;
 
     static {
         // Initialize delegate
-        String delegateName = (String)AccessController.doPrivileged(new GetSystemPropertyAction("javax.rmi.CORBA.StubClass", defaultDelegate));
+        String delegateName = (String)AccessController.doPrivileged(new GetSystemPropertyAction(DELEGATEKEY, defaultDelegate));
         try {
-            delegateClass = Util.loadClass(delegateName, null, null);
+        	delegateClass = UtilLoader.loadServiceClass(delegateName, DELEGATEKEY);
         } catch (Exception e) {
             org.omg.CORBA.INITIALIZE ex = new org.omg.CORBA.INITIALIZE("Can not create Stub delegate: " + delegateName);
             ex.initCause(e); 

Modified: geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Util.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Util.java?rev=1071188&r1=1071187&r2=1071188&view=diff
==============================================================================
--- geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Util.java (original)
+++ geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/javax/rmi/CORBA/Util.java Wed Feb 16 09:35:41 2011
@@ -32,18 +32,19 @@ import org.apache.yoko.rmispec.util.Util
 public class Util {
     private static UtilDelegate delegate = null;
     private static final String defaultDelegate = "org.apache.yoko.rmi.impl.UtilImpl";
+    private static final String DELEGATEKEY = "javax.rmi.CORBA.UtilClass";
 
     // To hide the default constructor we should implement empty private constructor
     private Util() {}
 
     static {
         // Initialize delegate
-        String delegateName = (String)AccessController.doPrivileged(new GetSystemPropertyAction("javax.rmi.CORBA.UtilClass", defaultDelegate));
+        String delegateName = (String)AccessController.doPrivileged(new GetSystemPropertyAction(DELEGATEKEY, defaultDelegate));
         try {
 
             // this is a little bit recursive, but this will use the full default search order for locating
             // this.
-            delegate = (UtilDelegate)Util.loadClass(delegateName, null, null).newInstance();
+        	delegate = (UtilDelegate)UtilLoader.loadServiceClass(delegateName, DELEGATEKEY).newInstance();
         } catch (Throwable e) {
             org.omg.CORBA.INITIALIZE ex = new org.omg.CORBA.INITIALIZE("Can not create Util delegate: "+delegateName);
             ex.initCause(e); 

Modified: geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/UtilLoader.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/UtilLoader.java?rev=1071188&r1=1071187&r2=1071188&view=diff
==============================================================================
--- geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/UtilLoader.java (original)
+++ geronimo/yoko/trunk/yoko-rmi-spec/src/main/java/org/apache/yoko/rmispec/util/UtilLoader.java Wed Feb 16 09:35:41 2011
@@ -36,10 +36,21 @@ public class UtilLoader {
     // since that method will call loadClass0 which uses this field... if it is below the static
     // initializer the _secman field will be null
     private static final SecMan _secman = getSecMan();
+    
+    static public Class<?> loadServiceClass(String delegateName, String delegateKey) throws ClassNotFoundException {
+    	
+    	try {
+    		return ProviderLocator.getServiceClass(delegateKey, null, null);
+    	} catch (ClassNotFoundException e){
+    		// skip
+    	}
+    	
+    	return loadClass0(delegateName, null, null);
+    }
 
     static public Class loadClass(String name, String codebase, ClassLoader loader)
             throws ClassNotFoundException {
-        Class result = null;
+        
 
         try {
             return ProviderLocator.loadClass(name, null, loader);
@@ -47,7 +58,14 @@ public class UtilLoader {
             //skip
         }
 
-        ClassLoader stackLoader = null;
+        return loadClass0(name, codebase, loader);
+    }
+    
+    private static Class<?> loadClass0(String name, String codebase, ClassLoader loader) 
+    	throws ClassNotFoundException {
+    	Class result = null;
+    	
+    	ClassLoader stackLoader = null;
         ClassLoader thisLoader = UtilLoader.class.getClassLoader(); 
         Class[] stack = _secman.getClassContext();
         for (int i = 1; i < stack.length; i++) {