You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/04/20 07:05:38 UTC

svn commit: r530644 [3/3] - in /incubator/openejb/trunk/openejb3: ./ assembly/openejb-standalone/ assembly/openejb-tomcat/ container/openejb-core/ container/openejb-core/src/main/java/org/apache/openejb/alt/containers/castor_cmp11/ container/openejb-co...

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java Thu Apr 19 22:05:36 2007
@@ -20,7 +20,6 @@
 import junit.framework.TestCase;
 import org.apache.openejb.config.ConfigurationFactory;
 import org.apache.openejb.config.EjbModule;
-import org.apache.openejb.config.sys.Resource;
 import org.apache.openejb.jee.ActivationConfig;
 import org.apache.openejb.jee.ActivationConfigProperty;
 import org.apache.openejb.jee.EjbJar;
@@ -43,10 +42,7 @@
         assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
 
         // JMS
-        Resource resource = new Resource();
-        resource.setId("Default JMS Resource Adapter");
-        resource.setProvider("Default JMS Resource Adapter");
-        assembler.createResource(config.configureService(resource, ResourceInfo.class));
+        assembler.createResource(config.configureService("Default JMS Resource Adapter", ResourceInfo.class));
 
         // containers
         MdbContainerInfo mdbContainerInfo = config.configureService(MdbContainerInfo.class);

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/PersistenceUnitRefTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/PersistenceUnitRefTest.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/PersistenceUnitRefTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/PersistenceUnitRefTest.java Thu Apr 19 22:05:36 2007
@@ -17,12 +17,10 @@
 package org.apache.openejb.assembler.classic;
 
 import java.util.Map;
-import java.util.TreeMap;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.EntityManager;
 
 import junit.framework.TestCase;
-import org.apache.openejb.BeanType;
 import org.apache.openejb.persistence.JtaEntityManagerRegistry;
 import org.apache.openejb.loader.SystemInstance;
 
@@ -67,16 +65,11 @@
         referenceInfo.persistenceUnitName = "../some/./other.jar#two";
         jndiEncInfo.persistenceContextRefs.add(referenceInfo);
 
-        Map<String, Map<String, EntityManagerFactory>> allFactories = new TreeMap<String, Map<String, EntityManagerFactory>>();
-        Map<String, EntityManagerFactory> myModuleFactories = new TreeMap<String, EntityManagerFactory>();
-        allFactories.put("my/module.jar", myModuleFactories);
-        myModuleFactories.put("one", new MockEntityManagerFactory());
-
-        Map<String, EntityManagerFactory> otherModuleFactories = new TreeMap<String, EntityManagerFactory>();
-        allFactories.put("some/other.jar", otherModuleFactories);
-        otherModuleFactories.put("two", new MockEntityManagerFactory());
+        LinkResolver<EntityManagerFactory> emfLinkResolver = new LinkResolver<EntityManagerFactory>();
+        emfLinkResolver.add("my/module.jar", "one", new MockEntityManagerFactory());
+        emfLinkResolver.add("some/other.jar", "two", new MockEntityManagerFactory());
 
-        JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(jndiEncInfo, null, BeanType.STATELESS, allFactories, "my/module.jar");
+        JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(jndiEncInfo, null, emfLinkResolver, "my/module.jar");
         jndiEncBuilder.build();
     }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/RedeployTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/RedeployTest.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/RedeployTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/RedeployTest.java Thu Apr 19 22:05:36 2007
@@ -19,8 +19,6 @@
 import junit.framework.TestCase;
 import org.apache.openejb.client.LocalInitialContextFactory;
 import org.apache.openejb.config.ConfigurationFactory;
-import org.apache.openejb.config.sys.Connector;
-import org.apache.openejb.config.sys.Resource;
 import org.apache.openejb.core.ivm.naming.InitContextFactory;
 import org.apache.openejb.test.stateful.AnnotatedFieldInjectionStatefulBean;
 import org.apache.openejb.test.stateful.EncStatefulHome;
@@ -53,24 +51,14 @@
         assembler.createConnectionManager(config.configureService(ConnectionManagerInfo.class));
 
         // managed JDBC
-        assembler.createConnector(config.configureService(ConnectorInfo.class));
+        assembler.createResource(config.configureService("Default JDBC Database", ResourceInfo.class));
 
         // unmanaged JDBC
-        Connector connector = new Connector();
-        connector.setId("Default Unmanaged JDBC Database");
-        connector.setProvider("Default Unmanaged JDBC Database");
-        assembler.createConnector(config.configureService(connector, ConnectorInfo.class));
+        assembler.createResource(config.configureService("Default Unmanaged JDBC Database", ResourceInfo.class));
 
         // JMS
-        Resource resource = new Resource();
-        resource.setId("Default JMS Resource Adapter");
-        resource.setProvider("Default JMS Resource Adapter");
-        assembler.createResource(config.configureService(resource, ResourceInfo.class));
-
-        connector = new Connector();
-        connector.setId("Default JMS Connection Factory");
-        connector.setProvider("Default JMS Connection Factory");
-        assembler.createConnector(config.configureService(connector, ConnectorInfo.class));
+        assembler.createResource(config.configureService("Default JMS Resource Adapter", ResourceInfo.class));
+        assembler.createResource(config.configureService("Default JMS Connection Factory", ResourceInfo.class));
 
         // containers
         assembler.createContainer(config.configureService(BmpEntityContainerInfo.class));

Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ResourceRef.java Thu Apr 19 22:05:36 2007
@@ -92,9 +92,6 @@
     protected String id;
 
     @XmlTransient
-    protected String resLink;
-
-    @XmlTransient
     public String getName() {
         return getResRefName();
     }
@@ -174,13 +171,4 @@
     public void setId(String value) {
         this.id = value;
     }
-
-    public String getResLink() {
-        return resLink;
-    }
-
-    public void setResLink(String resLink) {
-        this.resLink = resLink;
-    }
-
 }

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml Thu Apr 19 22:05:36 2007
@@ -5789,5 +5789,26 @@
       </method>
       <trans-attribute>Required</trans-attribute>
     </container-transaction>
+    <message-destination>
+      <message-destination-name>BasicMdb</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>BasicBmtMdb</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>EncMdbBean</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>ContextLookupMdbBean</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>ContextLookupMdbPojoBean</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>FieldInjectionMdbBean</message-destination-name>
+    </message-destination>
+    <message-destination>
+      <message-destination-name>SetterInjectionMdbBean</message-destination-name>
+    </message-destination>
   </assembly-descriptor>
 </ejb-jar>

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmr/AbstractCMRTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmr/AbstractCMRTest.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmr/AbstractCMRTest.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmr/AbstractCMRTest.java Thu Apr 19 22:05:36 2007
@@ -75,7 +75,7 @@
 
         InitialContext jndiContext = new InitialContext( );
         transactionManager = (TransactionManager) jndiContext.lookup("java:openejb/TransactionManager");
-        ds = (DataSource) jndiContext.lookup("java:openejb/Connector/Default JDBC Database");
+        ds = (DataSource) jndiContext.lookup("java:openejb/Resource/Default JDBC Database");
     }
 
     protected static void dumpTable(DataSource ds, String table) throws SQLException {

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BasicMdbTests.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BasicMdbTests.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BasicMdbTests.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BasicMdbTests.java Thu Apr 19 22:05:36 2007
@@ -34,7 +34,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        Destination destination = (Destination) initialContext.lookup("BasicMdb");
+        Destination destination = (Destination) initialContext.lookup("client/tests/messagedriven/mdb/BasicMdb");
         basicMdbObject = MdbProxy.newProxyInstance(BasicMdbObject.class, connectionFactory, destination);
     }
 

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BmtMdbAllowedOperationsTests.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BmtMdbAllowedOperationsTests.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BmtMdbAllowedOperationsTests.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/BmtMdbAllowedOperationsTests.java Thu Apr 19 22:05:36 2007
@@ -73,7 +73,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        Destination destination = (Destination) initialContext.lookup("BasicBmtMdb");
+        Destination destination = (Destination) initialContext.lookup("Basic BMT Mdb Bean");
         basicMdbObject = MdbProxy.newProxyInstance(BasicMdbObject.class, connectionFactory, destination);
         basicMdbObject.businessMethod("foo");
     }

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/MdbAllowedOperationsTests.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/MdbAllowedOperationsTests.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/MdbAllowedOperationsTests.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/mdb/MdbAllowedOperationsTests.java Thu Apr 19 22:05:36 2007
@@ -73,7 +73,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        Destination destination = (Destination) initialContext.lookup("BasicMdb");
+        Destination destination = (Destination) initialContext.lookup("client/tests/messagedriven/mdb/BasicMdb");
         basicMdbObject = MdbProxy.newProxyInstance(BasicMdbObject.class, connectionFactory, destination);
         basicMdbObject.businessMethod("foo");
     }

Modified: incubator/openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/pom.xml?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/pom.xml Thu Apr 19 22:05:36 2007
@@ -527,6 +527,11 @@
         </exclusions>
       </dependency>
       <dependency>
+        <groupId>org.apache.geronimo.javamail</groupId>
+        <artifactId>geronimo-javamail_1.4_mail</artifactId>
+        <version>1.1-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-activation_1.1_spec</artifactId>
         <version>1.0-M1</version>
@@ -565,11 +570,6 @@
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-jacc_1.1_spec</artifactId>
         <version>1.0-M2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.geronimo.specs</groupId>
-        <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        <version>1.0-M1</version>
       </dependency>
       <dependency>
         <groupId>org.apache.geronimo.specs</groupId>

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/pom.xml?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/pom.xml Thu Apr 19 22:05:36 2007
@@ -56,6 +56,10 @@
       <artifactId>geronimo-ejb_3.0_spec</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.geronimo.javamail</groupId>
+      <artifactId>geronimo-javamail_1.4_mail</artifactId>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java Thu Apr 19 22:05:36 2007
@@ -16,11 +16,14 @@
  */
 package org.apache.openejb.client;
 
+import org.omg.CORBA.ORB;
+
 import java.io.Serializable;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.rmi.RemoteException;
 import java.util.Hashtable;
+import java.util.Properties;
 import java.lang.reflect.Constructor;
 import javax.naming.AuthenticationException;
 import javax.naming.ConfigurationException;
@@ -178,6 +181,10 @@
             return parseEntry(prop, value);
         }
 
+        if (name.equals("comp/ORB")) {
+            return getDefaultOrb();
+        }
+
         JNDIRequest req = new JNDIRequest();
         req.setRequestMethod(RequestMethodConstants.JNDI_LOOKUP);
         req.setRequestString(name);
@@ -212,6 +219,14 @@
             case ResponseCodes.JNDI_DATA_SOURCE:
                 return createDataSource((DataSourceMetaData) res.getResult());
 
+            case ResponseCodes.JNDI_RESOURCE:
+                String type = (String) res.getResult();
+                value = System.getProperty("Resource/" + type);
+                if (value == null) {
+                    return null;
+                }
+                return parseEntry(prop, value);
+
             case ResponseCodes.JNDI_NOT_FOUND:
                 throw new NameNotFoundException(name + " does not exist in the system.  Check that the app was successfully deployed.");
 
@@ -233,7 +248,13 @@
         try {
             URI uri = new URI(value);
             String scheme = uri.getScheme();
-            if (scheme.equals("datasource")) {
+            if (scheme.equals("link")) {
+                value = System.getProperty(uri.getSchemeSpecificPart());
+                if (value == null) {
+                    return null;
+                }
+                return parseEntry(name, value);
+            } else if (scheme.equals("datasource")) {
                 uri = new URI(uri.getSchemeSpecificPart());
                 String driver = uri.getScheme();
                 String url = uri.getSchemeSpecificPart();
@@ -253,6 +274,10 @@
                 } catch (Exception e) {
                     throw new IllegalStateException("Cannot use ConnectionFactory in client VM without the classh: "+driver, e);
                 }
+            } else if (scheme.equals("javamail")) {
+                return javax.mail.Session.getDefaultInstance(new Properties());
+            } else if (scheme.equals("orb")) {
+                return getDefaultOrb();
             } else {
                 throw new UnsupportedOperationException("Unsupported Naming URI scheme '" + scheme + "'");
             }
@@ -263,6 +288,10 @@
 
     private DataSource createDataSource(DataSourceMetaData dataSourceMetaData) {
         return new ClientDataSource(dataSourceMetaData);
+    }
+
+    private ORB getDefaultOrb() {
+        return ORB.init();
     }
 
     public Object lookup(Name name) throws NamingException {

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIResponse.java Thu Apr 19 22:05:36 2007
@@ -58,6 +58,7 @@
             case ResponseCodes.JNDI_NAMING_EXCEPTION:
             case ResponseCodes.JNDI_RUNTIME_EXCEPTION:
             case ResponseCodes.JNDI_ERROR:
+            case ResponseCodes.JNDI_RESOURCE:
                 result = in.readObject();
                 break;
             case ResponseCodes.JNDI_CONTEXT:
@@ -91,6 +92,7 @@
             case ResponseCodes.JNDI_NAMING_EXCEPTION:
             case ResponseCodes.JNDI_RUNTIME_EXCEPTION:
             case ResponseCodes.JNDI_ERROR:
+            case ResponseCodes.JNDI_RESOURCE:
                 out.writeObject(result);
                 break;
             case ResponseCodes.JNDI_CONTEXT:

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ResponseCodes.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ResponseCodes.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ResponseCodes.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ResponseCodes.java Thu Apr 19 22:05:36 2007
@@ -43,5 +43,6 @@
     public static final int JNDI_BUSINESS_OBJECT = 21;
     public static final int JNDI_DATA_SOURCE = 22;
     public static final int JNDI_INJECTIONS = 23;
+    public static final int JNDI_RESOURCE = 24;
 }
 

Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java Thu Apr 19 22:05:36 2007
@@ -175,7 +175,7 @@
 
             this.daemon.logger.fatal(req + ": OpenEJB encountered an unknown system error in container: ", e);
         } catch (java.lang.Throwable t) {
-
+            // todo this causes the response to be written twice but the code below
             replyWithFatalError
                     (out, t, "Unknown error in container");
             return;

Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java Thu Apr 19 22:05:36 2007
@@ -23,6 +23,7 @@
 import javax.naming.Context;
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
+import javax.jms.ConnectionFactory;
 
 import org.apache.openejb.DeploymentInfo;
 import org.apache.openejb.ProxyInfo;
@@ -38,6 +39,7 @@
 import org.apache.openejb.client.ResponseCodes;
 import org.apache.openejb.client.DataSourceMetaData;
 import org.apache.openejb.client.InjectionMetaData;
+import org.omg.CORBA.ORB;
 
 class JndiRequestHandler {
     private final EjbDaemon daemon;
@@ -55,121 +57,110 @@
         this.daemon = daemon;
     }
 
-    public void processRequest(ObjectInputStream in, ObjectOutputStream out) throws Exception {
-        JNDIRequest req = new JNDIRequest();
+    public void processRequest(ObjectInputStream in, ObjectOutputStream out) {
         JNDIResponse res = new JNDIResponse();
-        req.readExternal(in);
+        try {
+            JNDIRequest req = new JNDIRequest();
+            req.readExternal(in);
 
-        String name = req.getRequestString();
-        if (name.startsWith("/")) name = name.substring(1);
+            String name = req.getRequestString();
+            if (name.startsWith("/")) name = name.substring(1);
 
-        Object object = null;
-        try {
-            if (req.getModuleId()!= null && clientJndiTree != null){
-                Context moduleContext = (Context) clientJndiTree.lookup(req.getModuleId());
-                if (name.startsWith("comp/env/")){
-                    Context ctx = (Context) moduleContext.lookup("comp");
-                    ctx = (Context) ctx.lookup("env");
-                    name = name.replaceFirst("comp/env/","");
-                    object = ctx.lookup(name);
-                } else if (name.equals("comp/injections")){
-                    List<Injection> injections = (List<Injection>) moduleContext.lookup(name);
-                    InjectionMetaData metaData = new InjectionMetaData();
-                    for (Injection injection : injections) {
-                        metaData.addInjection(injection.getTarget().getName(), injection.getName(), injection.getJndiName());
+            Object object = null;
+            try {
+                if (req.getModuleId()!= null && clientJndiTree != null){
+                    Context moduleContext = (Context) clientJndiTree.lookup(req.getModuleId());
+                    if (name.startsWith("comp/env/")){
+                        Context ctx = (Context) moduleContext.lookup("comp");
+                        ctx = (Context) ctx.lookup("env");
+                        name = name.replaceFirst("comp/env/","");
+                        object = ctx.lookup(name);
+                    } else if (name.equals("comp/injections")){
+                        //noinspection unchecked
+                        List<Injection> injections = (List<Injection>) moduleContext.lookup(name);
+                        InjectionMetaData metaData = new InjectionMetaData();
+                        for (Injection injection : injections) {
+                            metaData.addInjection(injection.getTarget().getName(), injection.getName(), injection.getJndiName());
+                        }
+                        res.setResponseCode(ResponseCodes.JNDI_INJECTIONS);
+                        res.setResult(metaData);
+                        return;
+                    } else {
+                        object = moduleContext.lookup(name);
                     }
-                    res.setResponseCode(ResponseCodes.JNDI_INJECTIONS);
-                    res.setResult(metaData);
-                    res.writeExternal(out);
-                    return;
+
                 } else {
-                    object = moduleContext.lookup(name);
+                    object = ejbJndiTree.lookup(name);
                 }
 
-            } else {
-                object = ejbJndiTree.lookup(name);
-            }
-
-            if (object instanceof Context) {
-                res.setResponseCode(ResponseCodes.JNDI_CONTEXT);
-                res.writeExternal(out);
+                if (object instanceof Context) {
+                    res.setResponseCode(ResponseCodes.JNDI_CONTEXT);
+                    return;
+                } else if (object == null) {
+                    throw new NullPointerException("lookup of '"+name+"' returned null");
+                } else if (object instanceof JdbcConnectionFactory){
+                    JdbcConnectionFactory cf = (JdbcConnectionFactory) object;
+                    DataSourceMetaData dataSourceMetaData = new DataSourceMetaData(cf.getJdbcDriver(), cf.getJdbcUrl(), cf.getDefaultUserName(), cf.getDefaultPassword());
+                    res.setResponseCode(ResponseCodes.JNDI_DATA_SOURCE);
+                    res.setResult(dataSourceMetaData);
+                    return;
+                } else if (object instanceof ConnectionFactory){
+                    res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
+                    res.setResult(ConnectionFactory.class.getName());
+                    return;
+                } else if (object instanceof ORB){
+                    res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
+                    res.setResult(ORB.class.getName());
+                    return;
+                }
+            } catch (NameNotFoundException e) {
+                res.setResponseCode(ResponseCodes.JNDI_NOT_FOUND);
                 return;
-            } else if (object == null) {
-                throw new NullPointerException("lookup of '"+name+"' returned null");
-            } else if (object instanceof JdbcConnectionFactory){
-                JdbcConnectionFactory cf = (JdbcConnectionFactory) object;
-                DataSourceMetaData dataSourceMetaData = new DataSourceMetaData(cf.getJdbcDriver(), cf.getJdbcUrl(), cf.getDefaultUserName(), cf.getDefaultPassword());
-                res.setResponseCode(ResponseCodes.JNDI_DATA_SOURCE);
-                res.setResult(dataSourceMetaData);
-                res.writeExternal(out);
+            } catch (NamingException e) {
+                res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
+                res.setResult(e);
                 return;
             }
-        } catch (NameNotFoundException e) {
-            res.setResponseCode(ResponseCodes.JNDI_NOT_FOUND);
-            res.writeExternal(out);
-            return;
-        } catch (NamingException e) {
-            res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
-            res.setResult(e);
-            res.writeExternal(out);
-            return;
-        }
 
 
-        BaseEjbProxyHandler handler = null;
-        try {
-            handler = (BaseEjbProxyHandler) ProxyManager.getInvocationHandler(object);
-        } catch (Exception e) {
-            // Not a proxy.  See if it's serializable and send it
-            if (object instanceof java.io.Serializable){
-                res.setResponseCode(ResponseCodes.JNDI_OK);
-                res.setResult(object);
-                res.writeExternal(out);
-                return;
-            } else {
-                res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
-                res.setResult(new NamingException("Expected an ejb proxy, found unknown object: type="+object.getClass().getName() + ", toString="+object));
-                res.writeExternal(out);
-                return;
+            BaseEjbProxyHandler handler = null;
+            try {
+                handler = (BaseEjbProxyHandler) ProxyManager.getInvocationHandler(object);
+            } catch (Exception e) {
+                // Not a proxy.  See if it's serializable and send it
+                if (object instanceof java.io.Serializable){
+                    res.setResponseCode(ResponseCodes.JNDI_OK);
+                    res.setResult(object);
+                    return;
+                } else {
+                    res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
+                    res.setResult(new NamingException("Expected an ejb proxy, found unknown object: type="+object.getClass().getName() + ", toString="+object));
+                    return;
+                }
             }
-        }
 
-        ProxyInfo proxyInfo = handler.getProxyInfo();
-        DeploymentInfo deployment = proxyInfo.getDeploymentInfo();
-        String deploymentID = deployment.getDeploymentID().toString();
-
-        switch(proxyInfo.getInterfaceType()){
-            case EJB_HOME: {
-                res.setResponseCode(ResponseCodes.JNDI_EJBHOME);
-                EJBMetaDataImpl metaData = new EJBMetaDataImpl(deployment.getHomeInterface(),
-                        deployment.getRemoteInterface(),
-                        deployment.getPrimaryKeyClass(),
-                        deployment.getComponentType().toString(),
-                        deploymentID,
-                        -1, null);
-                res.setResult(metaData);
-                break;
-            }
-            case EJB_LOCAL_HOME: {
-                res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
-                res.setResult(new NamingException("Not remotable: '"+name+"'. EJBLocalHome interfaces are not remotable as per the EJB specification."));
-                break;
-            }
-            case BUSINESS_REMOTE: {
-                res.setResponseCode(ResponseCodes.JNDI_BUSINESS_OBJECT);
-                EJBMetaDataImpl metaData = new EJBMetaDataImpl(null,
-                        null,
-                        deployment.getPrimaryKeyClass(),
-                        deployment.getComponentType().toString(),
-                        deploymentID,
-                        -1, proxyInfo.getInterfaces());
-                Object[] data = {metaData, proxyInfo.getPrimaryKey()};
-                res.setResult(data);
-                break;
-            }
-            case BUSINESS_LOCAL: {
-                String property = SystemInstance.get().getProperty("openejb.businessLocal", "remotable");
-                if (property.equalsIgnoreCase("remotable")) {
+            ProxyInfo proxyInfo = handler.getProxyInfo();
+            DeploymentInfo deployment = proxyInfo.getDeploymentInfo();
+            String deploymentID = deployment.getDeploymentID().toString();
+
+            switch(proxyInfo.getInterfaceType()){
+                case EJB_HOME: {
+                    res.setResponseCode(ResponseCodes.JNDI_EJBHOME);
+                    EJBMetaDataImpl metaData = new EJBMetaDataImpl(deployment.getHomeInterface(),
+                            deployment.getRemoteInterface(),
+                            deployment.getPrimaryKeyClass(),
+                            deployment.getComponentType().toString(),
+                            deploymentID,
+                            -1, null);
+                    res.setResult(metaData);
+                    break;
+                }
+                case EJB_LOCAL_HOME: {
+                    res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
+                    res.setResult(new NamingException("Not remotable: '"+name+"'. EJBLocalHome interfaces are not remotable as per the EJB specification."));
+                    break;
+                }
+                case BUSINESS_REMOTE: {
                     res.setResponseCode(ResponseCodes.JNDI_BUSINESS_OBJECT);
                     EJBMetaDataImpl metaData = new EJBMetaDataImpl(null,
                             null,
@@ -179,18 +170,42 @@
                             -1, proxyInfo.getInterfaces());
                     Object[] data = {metaData, proxyInfo.getPrimaryKey()};
                     res.setResult(data);
-                } else {
+                    break;
+                }
+                case BUSINESS_LOCAL: {
+                    String property = SystemInstance.get().getProperty("openejb.businessLocal", "remotable");
+                    if (property.equalsIgnoreCase("remotable")) {
+                        res.setResponseCode(ResponseCodes.JNDI_BUSINESS_OBJECT);
+                        EJBMetaDataImpl metaData = new EJBMetaDataImpl(null,
+                                null,
+                                deployment.getPrimaryKeyClass(),
+                                deployment.getComponentType().toString(),
+                                deploymentID,
+                                -1, proxyInfo.getInterfaces());
+                        Object[] data = {metaData, proxyInfo.getPrimaryKey()};
+                        res.setResult(data);
+                    } else {
+                        res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
+                        res.setResult(new NamingException("Not remotable: '"+name+"'. Business Local interfaces are not remotable as per the EJB specification.  To disable this restriction, set the system property 'openejb.businessLocal=remotable' in the server."));
+                    }
+                    break;
+                }
+                default: {
                     res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
-                    res.setResult(new NamingException("Not remotable: '"+name+"'. Business Local interfaces are not remotable as per the EJB specification.  To disable this restriction, set the system property 'openejb.businessLocal=remotable' in the server."));
+                    res.setResult(new NamingException("Not remotable: '"+name+"'."));
                 }
-                break;
             }
-            default: {
-                res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
-                res.setResult(new NamingException("Not remotable: '"+name+"'."));
+        } catch (Throwable e) {
+            res.setResponseCode(ResponseCodes.JNDI_NAMING_EXCEPTION);
+            NamingException namingException = new NamingException("Unknown error in container");
+            namingException.setRootCause(e);
+            res.setResult(namingException);
+        } finally {
+            try {
+                res.writeExternal(out);
+            } catch (java.io.IOException ie) {
+                this.daemon.logger.fatal("Couldn't write JndiResponse to output stream", ie);
             }
         }
-
-        res.writeExternal(out);
     }
 }

Modified: incubator/openejb/trunk/openejb3/server/openejb-hsql/src/main/java/org/apache/openejb/server/hsql/HsqlService.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-hsql/src/main/java/org/apache/openejb/server/hsql/HsqlService.java?view=diff&rev=530644&r1=530643&r2=530644
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-hsql/src/main/java/org/apache/openejb/server/hsql/HsqlService.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-hsql/src/main/java/org/apache/openejb/server/hsql/HsqlService.java Thu Apr 19 22:05:36 2007
@@ -88,7 +88,7 @@
 
         boolean disabled = Boolean.parseBoolean(properties.getProperty("disabled"));
         if (!disabled) {
-            NamingEnumeration<Binding> bindings = new InitialContext().listBindings("java:openejb/Connector/");
+            NamingEnumeration<Binding> bindings = new InitialContext().listBindings("java:openejb/Resource/");
             int dbIndex = 0;
             for (Binding binding : Collections.list(bindings)) {
                 Object value = binding.getObject();