Apache Directory Project - [JNDI] Abstracting away JNDI providers

This is Interesting: Free IT Magazines  
Home > Archive > Apache Directory Project > September 2007 > [JNDI] Abstracting away JNDI providers





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author [JNDI] Abstracting away JNDI providers
Alex Karasulu

2007-09-25, 7:11 pm

Hi studio team,

I was wondering if you guys have a means to abstract the JNDI context
factory used in
connections depending on the JVM being used. I have a similar need to get
the JNDI
context factory name based on the JVM that the server is running on so I
thought I might
ask if you already have something in place.

As you know the over the wire JNDI provider's InitialContextFactory class is
JVM specific.
Did you guys encapsulate this so studio uses the proper one when running on
different JVMs?

Thanks,
Alex

Stefan Seelmann

2007-09-25, 7:11 pm

Hi Alex,

no, we use "com.sun.jndi.ldap.LdapCtxFactory" and it is hardcoded. We
already have an Jira about that, see
https://issues.apache.org/jira/browse/DIRSTUDIO-182

However, it works fine with Sun, IBM and JRockit JVMs, because they all
come with this class. I don't know if they just re-license the libraries
from Sun. I haven't tested with Harmony, but I guess it won't work (do
they have a LDAP provider yet?).

Some auto-detection depending on the JVM would be cool. Perhaps a simple
property file that maps from java.vendor or java.vm.vendor to the
factory class would be enough. Or we could have a list of well-known
factory classes and use reflection to test which class exists.

Regards,
Stefan


Alex Karasulu schrieb:
> Hi studio team,
>
> I was wondering if you guys have a means to abstract the JNDI context
> factory used in
> connections depending on the JVM being used. I have a similar need to
> get the JNDI
> context factory name based on the JVM that the server is running on so I
> thought I might
> ask if you already have something in place.
>
> As you know the over the wire JNDI provider's InitialContextFactory
> class is JVM specific.
> Did you guys encapsulate this so studio uses the proper one when running
> on different JVMs?
>
> Thanks,
> Alex



Alex Karasulu

2007-09-25, 7:11 pm

On 9/25/07, Stefan Seelmann <seelmann-1oDqGaOF3Lkdnm+yROfE0A@public.gmane.org> wrote:
>
> Hi Alex,
>
> no, we use "com.sun.jndi.ldap.LdapCtxFactory" and it is hardcoded. We
> already have an Jira about that, see
> https://issues.apache.org/jira/browse/DIRSTUDIO-182



NP it's easy to fix this. I was thinking of writing a UniversalCtxFactory
that just delegates.

However, it works fine with Sun, IBM and JRockit JVMs, because they all
> come with this class.



Really I thought that the IBM one was different. It's com.ibm ... I hope I
am wrong.
Cound not find a JNDI provider for jrocket tho but I'm pretty sure about
IBM's.

I don't know if they just re-license the libraries
> from Sun. I haven't tested with Harmony, but I guess it won't work (do
> they have a LDAP provider yet?).



I think they're just looking into it now.

Some auto-detection depending on the JVM would be cool. Perhaps a simple
> property file that maps from java.vendor or java.vm.vendor to the
> factory class would be enough. Or we could have a list of well-known
> factory classes and use reflection to test which class exists.
>


Yeah I just created a wrapper that detects based on the java.vm.vendorproperty.
I'm adding this to a shared/ldap-jndi so we can reuse it along with some of
the other
utilities around JNDI I want to put in there. BTW I want to implement that
pattern
that the Spring LDAP guys are using and put it here as well so we can share
it.

If you're interested in putting shared LDAP JNDI handling code in there too
all the better.

Alex

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com