Issue Details (XML | Word | Printable)

Key: OPENEJB-253
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: David Blevins
Reporter: Mohammad Nour
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenEJB

Per EJB or EJB Interface JNDI Name declaration

Created: 06/Aug/06 02:54 PM   Updated: 06/Nov/07 05:17 PM  Due: 25/Sep/06
Return to search
Component/s: ejb3 simplified
Affects Version/s: 3.0-beta-1
Fix Version/s: 3.0-beta-2

Time Tracking:
Not Specified

Resolution Date: 06/Nov/07 05:13 PM


 Description  « Hide
1- The current implementation of OEJB prefixes the JNDI names of local Home interface of an EJB by the word *Local*, that is the client would not expect to use when he\she tries to look up the bean.

2- When and EJB3.0 bean supports the backward compatible 2.1 Home interface and business interface, there is no way to specify separate JNDI names to each interface.

We should make the client being able to do this. One way is to make changes to the openejb-jar.xml schema to add new elements and attributes to give the client this ability, an example of an *ejb-deplyment* is as follows:

<ejb-deployment ejb-name="ExampleStatelessBean" container-id="Default Stateless Container">
      
    <deployment-id
               jndi-name="client/tests/stateless/BasicStatelessHomeInterface"
               interface-name="ejb3.beans.interfaces.BeanLocalHomeInterface" />
 
    <deployment-id
               jndi-name="client/tests/stateless/BasicStatelessBizInterface"
               interface-name="ejb3.beans.interfaces.BeanLocalBizInterface" isRemote="false" />
 
</ejb-deployment>

Comments will be added as soon as we agree upon how to tackle this problem.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #592489 Tue Nov 06 17:13:16 UTC 2007 dblevins OPENEJB-253: Per EJB or EJB Interface JNDI Name declaration

Added this format to the openejb-jar.xml :
<jndi name="foo" interface="org.acme.Foo"/>

Or more generally...
<jndi name="foo" interface="Remote"/>

Or more generally still...
<jndi name="foo"/>

The 'name' attribute can still use templates if it likes, such as:
<jndi name="ejb/{interfaceClass.simpleName}" interface="org.acme.Foo"/>
Files Changed
ADD /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiNameInfo.java
MODIFY /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java
MODIFY /openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/EjbDeployment.java
MODIFY /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
ADD /openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/Jndi.java

Repository Revision Date User Message
ASF #594005 Mon Nov 12 02:12:39 UTC 2007 dblevins Actually functioning, OPENEJB-253: Per EJB or EJB Interface JNDI Name declaration
Files Changed
MODIFY /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
ADD /openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/JndiNameTest.java
MODIFY /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
MODIFY /openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/Jndi.java