You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Vamsavardhana Reddy (JIRA)" <de...@geronimo.apache.org> on 2005/07/26 13:15:30 UTC

[jira] Commented: (GERONIMO-433) Tolerate non-Sun JREs

    [ http://issues.apache.org/jira/browse/GERONIMO-433?page=comments#action_12316737 ] 

Vamsavardhana Reddy commented on GERONIMO-433:
----------------------------------------------

I tried building the Geronimo M4 source thru Eclipse using Sun's SDK 1.4.2 and IBM's SDK 1.4.2 .  Here are my findings:

With IBM's SDK, only one file, namely, modules\security\src\test\org\apache\geronimo\security\network\protocol\SubjectCarryingProtocolTest.java fails to compile with error, "import com.sun.security.auth.login.ConfigFile can not be resolved".  All other references to com.sun.* classes are made indirectly by coding the class name as a String parameter.

-- Did not find any references to com.sun.security.jgss.GSSUtil in the workspace

-- com.sun.jndi.rmi.registry.RegistryContextFactory is available in IBM's SDK under server.jar

-- com.sun.security.auth.login.ConfigFile is not in IBM's SDK, but, com.ibm.security.auth.login.ConfigFile is available in security.jar

-- com.sun.security.auth.module.Krb5LoginModule is not in IBM's SDK, but, com.ibm.security.auth.module.Krb5LoginModule is in ibmjgssprovider.jar

The classes available in IBM's SDK implement the same interface/extend the same class as their counterparts in Sun's SDK.  To tolerate other JRE's, the references to these classes need to be moved into a configuration file instead of hardcoding them in the java files.

OpenEJB seems to have a dependency on Sun's SDK.  As of now, I don't know how this can be made to tolerate non-Sun JREs

> Tolerate non-Sun JREs
> ---------------------
>
>          Key: GERONIMO-433
>          URL: http://issues.apache.org/jira/browse/GERONIMO-433
>      Project: Geronimo
>         Type: Improvement
>   Components: general
>     Reporter: Glyn Normington
>     Assignee: Alan Cabrera
>     Priority: Critical

>
> Geronimo fails to build against a non-Sun JRE (e.g. IBM's) because of the use of non-standard Sun internal classes (in com.sun.* packages) such as com.sun.security.jgss.GSSUtil. The build stops with:
> A compilation error occurred in the network module:
> C:\apache\geronimo\modules\network\src\java\org\apache\geronimo\network\protocol\GSSAPIServerProtocol.java:29:
> package com.sun.security.jgss does not exist import com.sun.security.jgss.GSSUtil;
> grep also found the following other references to com.sun in Java files, some of which will need to be modified to tolerate non-Sun JREs.
> modules/client/src/java/org/apache/geronimo/client/StaticJndiContextPlugin.java:        System.setProperty("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
> modules/connector/src/test/org/apache/geronimo/connector/outbound/ManagedConnectionFactoryWrapperTest.java:        env.put("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
> modules/naming/src/test/org/apache/geronimo/naming/geronimo/GeronimoRootContextTest.java:        System.setProperty("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
> modules/naming/src/test/org/apache/geronimo/naming/java/AbstractContextTest.java:        System.setProperty("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
> modules/naming/src/test/org/apache/geronimo/naming/java/ThreadContextTest.java:        System.setProperty("java.naming.factory.initial", "com.sun.jndi.rmi.registry.RegistryContextFactory");
> modules/security/src/java/org/apache/geronimo/security/realm/providers/KerberosSecurityRealm.java:        AppConfigurationEntry entry = new AppConfigurationEntry("com.sun.security.auth.module.Krb5LoginModule",
> modules/security/src/test/org/apache/geronimo/security/jaas/LoginKerberosNonGeronimoTest.java:        gbean.setAttribute("loginModuleName", "com.sun.security.auth.module.Krb5LoginModule");
> modules/security/src/test/org/apache/geronimo/security/network/protocol/SubjectCarryingProtocolTest.java:import com.sun.security.auth.login.ConfigFile;
> modules/system/src/test/org/apache/geronimo/system/properties/NamingPropertiesTest.java:    private static final String NAMING_FACTORY_INITIAL = "com.sun.jndi.rmi.registry.RegistryContextFactory";

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Re: [jira] Commented: (GERONIMO-433) Tolerate non-Sun JREs

Posted by Rick McGuire <ri...@gmail.com>.
Vamsavardhana Reddy (JIRA) wrote:

>    [ http://issues.apache.org/jira/browse/GERONIMO-433?page=comments#action_12316737 ] 
>
>Vamsavardhana Reddy commented on GERONIMO-433:
>----------------------------------------------
>
>I tried building the Geronimo M4 source thru Eclipse using Sun's SDK 1.4.2 and IBM's SDK 1.4.2 .  Here are my findings:
>
>
>
>OpenEJB seems to have a dependency on Sun's SDK.  As of now, I don't know how this can be made to tolerate non-Sun JREs
>
>  
>
I've spent a bit of time looking at you to remove OpenEJB's Sun SDK 
dependencies, and have arrived at the conclusion that replacing the Sun 
ORB with a truely portable ORB is the only solution.  The Sun ORB class 
references cause problems with both IBM's SDK 1.4.2 and Suns 5.0 SDK, so 
this is not an easy problem to attack.  Unfortunately, there appear to 
be no portable solutions available for the places where it was necessary 
to directly reference the Sun ORB classes directly.

Right now, it looks like the Trifork ORB contribution may be the best 
means of achieving SDK portability.

Rick