directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John E. Conlon" <jcon...@verticon.com>
Subject Help on OSGi modularizing
Date Thu, 07 Dec 2006 23:55:11 GMT
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