You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Alex Karasulu <ak...@apache.org> on 2007/09/25 21:35:47 UTC

[JNDI] Abstracting away JNDI providers

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

Re: [JNDI] Abstracting away JNDI providers

Posted by Alex Karasulu <ak...@apache.org>.
On 9/25/07, Stefan Seelmann <se...@apache.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

Re: [JNDI] Abstracting away JNDI providers

Posted by Stefan Seelmann <se...@apache.org>.
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