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,
> [EMAIL PROTECTED],
> 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
>