This is very helpful indeed. I am working on some stuff for documentation.

On 6/19/07, David Blevins <[EMAIL PROTECTED]> wrote:

On Jun 18, 2007, at 11:19 PM, Manu George wrote:

> Cool Feature. There was some confusion among users about the JNDI
> names.
> Hopefully this document will clear the doubts.

Yea, this is one of a few essential documents we need.  We soooo need
a user or two to complain loudly on the information they can't
find :)  Will be a big help.  Truth be told, nearly all the
documentation we have came from answers on the lists.

-David

> Regards
> Manu
>
> On 6/19/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>>
>>    Page Edited : OPENEJB<http://cwiki.apache.org/confluence/
>> display/OPENEJB>: JNDI
>> Names <http://cwiki.apache.org/confluence/display/OPENEJB/JNDI+Names>
>>
>> JNDI Names <http://cwiki.apache.org/confluence/display/OPENEJB/JNDI
>> +Names>has been edited by David
>> Blevins <http://cwiki.apache.org/confluence/display/%7Edblevins>
>> (Jun 18,
>> 2007).
>>
>> (View changes)<http://cwiki.apache.org/confluence/pages/
>> diffpagesbyversion.action?
>> pageId=33329&originalVersion=1&revisedVersion=2>
>> Content:
>> What's My Bean's JNDI Name?
>>
>> The short answer is:
>>
>>    - {deploymentId}/{interfaceClass.simpleName}
>>
>> And typically, deploymentId will be your bean's ejb-name unless
>> you've
>> explicitly set it to something else via an openejb-jar.xml or set the
>> openejb.deploymentId.format<http://cwiki.apache.org/confluence/
>> display/OPENEJB/Deployment+ID>to something else.
>>
>> So if you have a bean like such:
>>
>> <session>
>>       <ejb-name>Calculator</ejb-name>
>>       <home>org.acme.CalculatorRemoteHome</home>
>>       <remote>org.acme.CalculatorRemote</remote>
>>       <local-home>org.acme.CalculatorLocalHome</local-home>
>>       <local>org.acme.CalculatorLocal</local>
>>       <ejb-class>org.acme.CalculatorImpl</ejb-class>
>>       <business-local>org.acme.CalculatorBusinessLocal</business-
>> local>
>>       <business-local>org.acme.CalculatorBusinessLocalTwo</
>> business-local>
>>       <business-remote>org.acme.CalculatorBusinessRemote</business-
>> remote>
>>       <business-remote>org.acme.CalculatorBusinessRemoteTwo</
>> business-remote>
>>     </session>
>>
>>  The following names will be bound into JNDI and accessible via the
>> LocalInitialContextFactory<http://cwiki.apache.org/confluence/
>> pages/createpage.action?
>> spaceKey=OPENEJB&title=LocalInitialContextFactory&linkCreation=true&f
>> romPageId=33329>
>> :
>>
>>    - Calculator/CalculatorRemote
>>    - Calculator/CalculatorLocal
>>    - Calculator/CalculatorBusinessLocal
>>    - Calculator/CalculatorBusinessLocalTwo
>>    - Calculator/CalculatorBusinessRemote
>>    - Calculator/CalculatorBusinessRemoteTwo
>>
>> And these would be available via the
>> RemoteInitialContextFactory<http://cwiki.apache.org/confluence/
>> pages/createpage.action?
>> spaceKey=OPENEJB&title=RemoteInitialContextFactory&linkCreation=true&
>> fromPageId=33329>
>>
>>    - Calculator/CalculatorRemote
>>    - Calculator/CalculatorBusinessRemote
>>    - Calculator/CalculatorBusinessRemoteTwo
>>
>> This is the same list minus any interfaces of a local nature as they
>> aren't accessible over a network.
>> Changing the JNDI name format
>>
>> The JNDI name format can actually be changed. At current date this
>> can be
>> done on a server-wide basis, but in the future it will be
>> changeable on an
>> application and individual bean basis.
>>
>> To set it for the server, there is a system property called *
>> openejb.jndiname.format* which understands the following variables:
>>
>>    - moduleId - typically the file name of the ear or of the ejb
>> jar if
>>    it's not in an ear.
>>    - ejbType - STATEFUL, STATELESS, BMP_ENTITY, CMP_ENTITY, or
>>    MESSAGE_DRIVEN
>>    - ejbClass - ((Class)ejbClass).getName()
>>    - ejbClass.simpleName - ((Class)ejbClass).getSimpleName());
>>    - ejbName - ejb-name as it is in the xml
>>    - deploymentId - the bean's deployment Id
>>    - interfaceType - EJB_OBJECT, EJB_LOCAL, BUSINESS_LOCAL, or
>>    BUSINESS_REMOTE
>>    - interfaceClass - ((Class)interfce).getName()
>>    - interfaceClass.simpleName - ((Class)interfce).getSimpleName()
>>
>> More variables will be added in the future, such as prettier
>> varieties of
>> ejbType and interfaceType. If there are any you'd like added, feel
>> free to
>> write the dev list.
>>
>> With this you can create a layout for the ejbs in global jndi
>> namespace
>> how ever you like. A couple examples could be:
>>
>>    - {interfaceClass.simpleName}
>>    - {ejbName}{interfaceClass.simpleName}
>>    - ejb/{interfaceClass.simpleName}
>>    - ejb/{interfaceClass}
>>    - {deploymentId}-{interfaceType}
>>    - app/{moduleId}/ejb/{ejbName}/{interfaceClass}
>>    - {deploymentId}.{interfaceClass}
>>
>> You are responsible for ensuring the names don't conflict. I.e. if
>> you
>> used something as simple as just "{interfaceClass.simpleName}" as
>> your
>> format it would only work as long as you didn't reuse the
>> interface for any
>> other beans in your app or any other app deployed in the server.
>> If you used
>> "{ejbName}{interfaceClass.simpleName}" you could reuse the
>> interface in
>> other beans but you'd have to guarantee that the ejbName is not
>> already used
>> by another bean in a different app.
>>
>> The default of "{deploymentId}/{interfaceClass.simpleName}" is a
>> pretty
>> safe bet as deploymentId is guaranteed to be globally unique
>> across all apps
>> and beans, however the use of simpleName could cause conflicts if
>> the bean
>> had two interfaces like org.package1.Foo and org.package2.Foo. The
>> safest
>> bet, though not the default as we wanted something short, is to
>> use the
>> fully qualified name of the interface "{deploymentId}/
>> {interfaceClass}".
>>
>>    Powered by Atlassian Confluence<http://www.atlassian.com/
>> software/confluence/default.jsp?clicked=footer>(Version:
>> 2.2.9 Build:#527 Sep 07, 2006) - Bug/feature request<http://
>> jira.atlassian.com/secure/BrowseProject.jspa?id=10470>
>>
>> Unsubscribe or edit your notifications preferences<http://
>> cwiki.apache.org/confluence/users/viewnotifications.action>
>>
>>




--
Karan Malhi

Reply via email to