directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John E. Conlon" <jcon...@verticon.com>
Subject Re: Help on OSGi modularizing
Date Wed, 13 Dec 2006 18:09:47 GMT
Let me answer at least one of my own questions:
> 2. LDAP Configuration
> In splitting up the backend from the ldap protocol provider I have
> separated the the server.xml into two modules (bundles) with a spring
> configuration for the backend and a second one for a default ldap
> server. In testing I can see I don't quite have things correctly
> configured on the ldap side because when I disconnect my ldap client I
> get a stack trace. 
> 
> Any ideas what configuration properties I may have missed?
Yep it was an environment property that was causing Enrique's old ldap
protocol provider bundle to generate the same error I had with the
updated one. His bundle was so old it had:
env.put
( Context.INITIAL_CONTEXT_FACTORY,"org.apache.ldap.server.jndi.CoreContextFactory"

instead of:
env.put
( Context.INITIAL_CONTEXT_FACTORY,"org.apache.directory.server.core.jndi.CoreContextFactory"
);
     
The new spring enabled ldap protocol provider is also working now and no longer exhibiting
this problem.
Will commit it to my sandbox today.


As far as:  

> 1. Mysterious package net.sf.cglib.proxy.*

Still getting the error message from the runtime but see no side effects
from it.  (Felix is very noisy regarding classloading failures. Combined
with a reflection oriented library like Spring-OSGi and there are a lot
of messages that are superfluous.)

cheers,
John

On Thu, 2006-12-07 at 17:55 -0600, John E. Conlon wrote:
> Have run into a couple of issues bundling(modularizing) the backend
> subsystem (core) and and the protocol provider (protocol-ldap)
> subprojects for OSGi and can use some guidance. 
> 
> Basically the Apacheds OSGi effort (as it exists now) is one of
> realizing the 'What is it?' modular graphic that we show on our home
> page. Consider the outer dashed line in the graphic the OSGi runtime,
> the backend subsystem as a single bundle that exports an
> InitialContextFactory service; and all protocol providers, and user apps
> in separate bundles as consumers of that jndi service. (There are some
> support bundles as well - but I just want to give a high level intro
> here.)
> 
> To date Enrique's effort and my follow on efforts have been rather crude
> in regards to dealing with the initial core and ldap bootstrap
> configuration within the modules, we hard coded it in our bundles. With
> the 2.1 version of spring (aka spring-osgi) we now can provide spring
> configuration for our bundles that is similar to how spring used in
> ApacheDS today. 
> 
> I have two questions:
> 
> 1. Mysterious package net.sf.cglib.proxy.*
> When the apacheDS backend system (core) bundle starts up, the Felix OSGi
> runtime is logging the following message:
> 
> WARNING: *** Class 'net.sf.cglib.proxy.Enhancer' was not found. Bundle
> 21 does not import package 'net.sf.cglib.proxy', nor is the package
> exported by any other bundle or available from the system class loader.
> *** (java.lang.ClassNotFoundException: *** Class
> 'net.sf.cglib.proxy.Enhancer' was not found. Bundle 21 does not import
> package 'net.sf.cglib.proxy', nor is the package e xported by any other
> bundle or available from the system class loader. ***)
> 
> I can't determine where we use this package in ApacheDS and who calls
> this class. 
> 
> Does anyone know if we are using it and if so where we are using the
> net.sf.cglib.proxy package within ApacheDS?
> 
> 
> 2. LDAP Configuration
> In splitting up the backend from the ldap protocol provider I have
> separated the the server.xml into two modules (bundles) with a spring
> configuration for the backend and a second one for a default ldap
> server. In testing I can see I don't quite have things correctly
> configured on the ldap side because when I disconnect my ldap client I
> get a stack trace. 
> 
> Any ideas what configuration properties I may have missed?
> 
> Here is a printout of the properties being set on my
> LDAPProtocolProvider:
> 
> java.naming.factory.initial=org.apache.ldap.server.jndi.CoreContextFactory, 
> asn.1.berlib.provider=org.apache.ldap.common.berlib.asn1.SnickersProvider, 
> denormalizeOpAttrsEnabled=false, 
> server.use.factory.instance=org.apache.directory.osgi.backend.InitialContextFactoryImpl@b57e9a,

> java.naming.ldap.attributes.binary=photo personalSignature audio
> jpegPhoto javaSerializedData userPassword userCertificate cACertificate
> authorityRevocationList certificateRevocationList crossCertificatePair
> x500UniqueIdentifier krb5Key,
> server.net.ldaps.port=10636, 
> server.net.ldap.port=10389, 
> java.naming.provider.url=uid=admin,ou=system, 
> server.disable.anonymous=true
> 
> 
> And here is the felix stacktrace when I disconnect a client:
> 
> 07 Dec 2006 16:48:44,973 ERROR
> org.apache.directory.server.ldap.support.UnbindHandler
> messageReceived.69  
> 	failed to unbind session properly
> 
> org.apache.directory.shared.ldap.exception.LdapNameNotFoundException:
> uid=admin,ou=system
> 	at
> org.apache.directory.server.core.partition.DefaultPartitionNexus.getBackend(DefaultPartitionNexus.java:993)
> 	at
> org.apache.directory.server.core.partition.DefaultPartitionNexus.unbind
> (DefaultPartitionNexus.java:660)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain
> $1.unbind(InterceptorChain.java:209)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain$Entry
> $1.unbind(InterceptorChain.java:1450)
> 	at org.apache.directory.server.core.interceptor.BaseInterceptor.unbind
> (BaseInterceptor.java:233)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain.unbind
> (InterceptorChain.java:746)
> 	at
> org.apache.directory.server.core.partition.PartitionNexusProxy.unbind
> (PartitionNexusProxy.java:689)
> 	at
> org.apache.directory.server.core.partition.PartitionNexusProxy.unbind
> (PartitionNexusProxy.java:706)
> 	at org.apache.directory.server.core.jndi.ServerLdapContext.ldapUnbind
> (ServerLdapContext.java:181)
> 	at
> org.apache.directory.server.ldap.support.UnbindHandler.messageReceived
> (UnbindHandler.java:60)
> 	at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived
> (DemuxingIoHandler.java:144)
> 	at org.apache.directory.server.ldap.LdapProtocolProvider
> $LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:403)
> 	at org.apache.mina.common.support.AbstractIoFilterChain
> $TailFilter.messageReceived(AbstractIoFilterChain.java:703)
> 	at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1100
> (AbstractIoFilterChain.java:54)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl
> $1.messageReceived(AbstractIoFilterChain.java:800)
> 	at
> org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush
> (SimpleProtocolDecoderOutput.java:62)
> 	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived
> (ProtocolCodecFilter.java:186)
> 	at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1100
> (AbstractIoFilterChain.java:54)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl
> $1.messageReceived(AbstractIoFilterChain.java:800)
> 	at org.apache.mina.filter.executor.ExecutorFilter.processEvent
> (ExecutorFilter.java:231)
> 	at org.apache.mina.filter.executor.ExecutorFilter
> $ProcessEventsRunnable.run(ExecutorFilter.java:286)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:650)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:675)
> 	at java.lang.Thread.run(Thread.java:595)
> 
> 
> 
> thanks,
> 
> John
> 


Mime
View raw message