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();