[
https://issues.apache.org/jira/browse/DIRAPI-90?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13420474#comment-13420474
]
Pierre-Arnaud Marcelot commented on DIRAPI-90:
----------------------------------------------
Hi Hendy,
Sorry I wasn't available earlier, that would have saved you the time of your
investigations...
Everything is intentional, even though it's not properly documented.
We have two strong requirements for the LDAP API.
First, we want it to work in *and* out of an OSGI environment.
In the OSGI environment you can leverage the bundle-activator to register a few
things. This is not available in plain java code with simple jars, that's why
we included the 'shared-ldap-codec-standalone' dependencies specifically for
people who want to use the API outside of an OSGI container.
Our second requirement is to be able to swap the network layer easily. Right
now, we have one implementation using Apache Mina, but in the future we could
have other implementations using other dependencies or without any dependencies
at all (directly at the NIO level).
Time for us to work on a better documentation to make those things clear for
our users.
> IllegalArgumentException: factory thrown when creating LdapNetworkConnection
> inside OSGi
> ----------------------------------------------------------------------------------------
>
> Key: DIRAPI-90
> URL: https://issues.apache.org/jira/browse/DIRAPI-90
> Project: Directory Client API
> Issue Type: Bug
> Affects Versions: 1.0.0-M12
> Environment: Karaf 2.2.8, Felix 3.2.2
> java version "1.6.0_31"
> Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
> Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
> Ubuntu 11.10 64-bit
> Reporter: Hendy Irawan
>
> Creating LdapNetworkConnection throws IllegalArgumentException, even after
> all apache.directory bundles have been started.
> No problem if outside OSGi.
> I'm using LdapConnectionPool here but simple LdapNetworkConnection also
> throws error.
> {code}
> 2012-07-22 17:16:44,329 | ERROR | rint Extender: 3 | BlueprintContainerImpl
> | 9 - org.apache.aries.blueprint - 0.3.2 | Unable to start blueprint
> container for bundle com.wikindonesia.person
> org.osgi.service.blueprint.container.ComponentDefinitionException: Error when
> instanciating bean #recipe-6 of class class
> com.wikindonesia.person.PersonRepository
> at
> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:271)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:229)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.getClasses(ServiceRecipe.java:340)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:178)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:653)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:336)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:230)[9:org.apache.aries.blueprint:0.3.2]
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.6.0_24]
> at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.6.0_24]
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.6.0_24]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)[:1.6.0_24]
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)[:1.6.0_24]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)[:1.6.0_24]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)[:1.6.0_24]
> at java.lang.Thread.run(Thread.java:679)[:1.6.0_24]
> Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException:
> factory
> at
> org.soluvas.ldap.PooledLdapRepository.init(PooledLdapRepository.java:65)
> at
> com.wikindonesia.person.PersonRepository.<init>(PersonRepository.java:41)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)[:1.6.0_24]
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[:1.6.0_24]
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.6.0_24]
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:532)[:1.6.0_24]
> at
> org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:257)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842)[9:org.apache.aries.blueprint:0.3.2]
> at
> org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269)[9:org.apache.aries.blueprint:0.3.2]
> ... 22 more
> Caused by: java.lang.IllegalArgumentException: factory
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.<init>(ProtocolCodecFilter.java:73)
> at
> org.apache.directory.ldap.client.api.LdapNetworkConnection.<init>(LdapNetworkConnection.java:220)
> at
> org.apache.directory.ldap.client.api.PoolableLdapConnectionFactory.makeObject(PoolableLdapConnectionFactory.java:85)
> at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
> at
> org.apache.directory.ldap.client.api.LdapConnectionPool.getConnection(LdapConnectionPool.java:57)
> at
> org.soluvas.ldap.PooledLdapRepository.withConnection(PooledLdapRepository.java:48)
> at
> org.soluvas.ldap.PooledLdapRepository.init(PooledLdapRepository.java:58)
> ... 30 more
> {code}
> List of bundles excluding system bundles :
> {code}
> START LEVEL 100 , List Threshold: 50
> ID State Blueprint Level Symbolic name
> [ 75] [Active ] [Created ] [ 80] org.ops4j.pax.wicket.service
> (1.0.1)
> [ 79] [Resolved ] [ ] [ 80] com.google.guava (12.0.0)
> [ 91] [Resolved ] [ ] [ 80]
> org.apache.servicemix.bundles.cglib (2.2.2.1)
> [ 158] [Active ] [ ] [ 50] org.apache.camel.camel-core
> (2.10.0)
> [ 159] [Active ] [Created ] [ 50]
> org.apache.camel.karaf.camel-karaf-commands (2.10.0)
> [ 160] [Active ] [Created ] [ 50] org.apache.camel.camel-blueprint
> (2.10.0)
> [ 161] [Active ] [ ] [ 80]
> org.apache.geronimo.specs.geronimo-annotation_1.1_spec (1.0.1)
> [ 162] [Active ] [ ] [ 80] org.drools.core (5.4.0.Final)
> [ 163] [Active ] [ ] [ 80] org.drools.compiler (5.4.0.Final)
> [ 164] [Active ] [ ] [ 80] org.drools.templates (5.4.0.Final)
> [ 166] [Active ] [ ] [ 80] org.mvel2 (2.1.0.drools16)
> [ 172] [Active ] [ ] [ 80]
> org.apache.servicemix.bundles.jaxb-xjc (2.2.4.2)
> [ 179] [Active ] [ ] [ 80]
> wrap_mvn_com.sun.istack_istack-commons-runtime_2.12_Export-Package___version_2.12.0
> (0)
> [ 182] [Active ] [ ] [ 80]
> org.apache.servicemix.specs.jaxb-api-2.2 (2.0.0)
> [ 183] [Active ] [ ] [ 80]
> org.apache.servicemix.bundles.jaxb-impl (2.2.4.2)
> [ 185] [Resolved ] [ ] [ 80]
> wrap_mvn_com.thoughtworks.xstream_xstream_1.4.2_Export-Package___version_1.4.2
> (0)
> [ 186] [Resolved ] [ ] [ 80]
> wrap_mvn_com.google.protobuf_protobuf-java_2.4.1_Export-Package___version_2.4.1
> (0)
> [ 187] [Resolved ] [ ] [ 80] org.drools.internalapi
> (5.4.0.Final)
> [ 188] [Resolved ] [ ] [ 80]
> wrap_mvn_antlr_antlr_2.7.7_Export-Package___version_2.7.7 (0)
> [ 189] [Resolved ] [ ] [ 80]
> org.apache.servicemix.bundles.antlr-runtime (3.4.0.2)
> [ 255] [Active ] [ ] [ 80]
> org.eclipse.jdt.core.compiler.batch (3.3.0)
> [ 282] [Active ] [ ] [ 80] name.njbartlett.osgi.emf.xmi
> (2.6.0.v20110126-1727)
> [ 291] [Active ] [ ] [ 80] org.jbpm.flow.core (5.3.0.Final)
> [ 292] [Active ] [ ] [ 80] org.jbpm.flow.builder
> (5.3.0.Final)
> [ 293] [Active ] [ ] [ 80] org.jbpm.bpmn2 (5.3.0.Final)
> [ 294] [Active ] [ ] [ 80] name.njbartlett.osgi.emf.minimal
> (2.7.0.v20110128-1409)
> [ 296] [Active ] [ ] [ 80] com.wikindonesia.fnb
> (2.0.0.SNAPSHOT)
> [ 298] [Resolved ] [ ] [ 80] com.mongodb (2.7.3)
> [ 302] [Installed ] [ ] [ 80]
> wrap_mvn_javax.enterprise_cdi-api_1.1.EDR1.2 (0)
> [ 303] [Resolved ] [ ] [ 80]
> wrap_mvn_javax.inject_javax.inject_1 (0)
> [ 304] [Resolved ] [ ] [ 80]
> org.apache.geronimo.specs.geronimo-validation_1.0_spec (1.1)
> [ 305] [Resolved ] [ ] [ 80]
> org.apache.servicemix.bundles.commons-beanutils (1.8.3.1)
> [ 306] [Active ] [ ] [ 80]
> org.apache.directory.shared.ldap.client.api (1.0.0.M12)
> [ 308] [Resolved ] [ ] [ 80] org.apache.commons.pool (1.6.0)
> [ 310] [Active ] [ ] [ 80]
> org.apache.directory.shared.asn1.api (1.0.0.M12)
> [ 311] [Active ] [ ] [ 80] org.apache.directory.shared.i18n
> (1.0.0.M12)
> [ 312] [Active ] [ ] [ 80]
> org.apache.directory.shared.ldap.codec.core (1.0.0.M12)
> [ 313] [Active ] [ ] [ 80]
> org.apache.directory.shared.asn1.ber (1.0.0.M12)
> [ 314] [Active ] [ ] [ 80] org.apache.directory.shared.util
> (1.0.0.M12)
> [ 315] [Active ] [ ] [ 80]
> org.apache.directory.shared.ldap.model (1.0.0.M12)
> [ 316] [Resolved ] [ ] [ 80]
> org.apache.servicemix.bundles.commons-collections (3.2.1.3)
> [ 318] [Resolved ] [ ] [ 80] org.apache.commons.lang (2.6)
> [ 319] [Active ] [ ] [ 80]
> org.apache.directory.shared.ldap.schema (1.0.0.M12)
> [ 320] [Active ] [ ] [ 80]
> org.apache.directory.shared.ldap.extras.aci (1.0.0.M12)
> [ 323] [Resolved ] [ ] [ 80]
> wrap_mvn_org.picketlink.idm_picketlink-idm-common_1.5.0.Alpha02_Export-Package___version_1.5.0.Alpha02
> (0)
> [ 324] [Resolved ] [ ] [ 80]
> wrap_mvn_org.picketlink.idm_picketlink-idm-api_1.5.0.Alpha02_Export-Package___version_1.5.0.Alpha02
> (0)
> [ 326] [Resolved ] [ ] [ 80] jackson-databind (2.0.4)
> [ 328] [Resolved ] [ ] [ 80] jackson-annotations (2.0.4)
> [ 329] [Resolved ] [ ] [ 80] jackson-core (2.0.4)
> [ 330] [Resolved ] [ ] [ 80] jackson-datatype-joda (2.0.4)
> [ 332] [Installed ] [ ] [ 80] jackson-datatype-guava (2.0.3)
> [ 333] [Resolved ] [ ] [ 80] joda-time (2.1)
> [ 338] [Resolved ] [ ] [ 80]
> wrap_mvn_org.javassist_javassist_3.16.1-GA_Export-Package___version_3.16.1.GA
> (0)
> [ 339] [Resolved ] [ ] [ 80] org.apache.commons.lang3 (3.1.0)
> [ 343] [Active ] [ ] [ 80] org.drools.api (5.4.0.Final)
> [ 384] [Active ] [Created ] [ 80] org.soluvas.web.nav.ui
> (1.0.0.SNAPSHOT)
> [ 386] [Active ] [Created ] [ 80] org.soluvas.web.jquery
> (1.0.0.SNAPSHOT)
> [ 387] [Active ] [Created ] [ 80] org.soluvas.web.site
> (1.0.0.SNAPSHOT)
> [ 389] [Active ] [Created ] [ 80] soluvas-json (1.0.0.SNAPSHOT)
> [ 390] [Active ] [Created ] [ 80] com.wikindonesia.place
> (2.0.0.SNAPSHOT)
> [ 393] [Active ] [ ] [ 80] soluvas-ldap (1.0.0.SNAPSHOT)
> [ 394] [Active ] [ ] [ 80] com.wikindonesia.brand
> (2.0.0.SNAPSHOT)
> [ 396] [Active ] [ ] [ 80] com.wikindonesia.cafe
> (2.0.0.SNAPSHOT)
> [ 398] [Active ] [Created ] [ 80] org.soluvas.process
> (1.0.0.SNAPSHOT)
> [ 400] [Active ] [Created ] [ 80] org.soluvas.web.jqueryui
> (1.0.0.SNAPSHOT)
> [ 402] [Active ] [Created ] [ 80] org.soluvas.web.jquerynotify
> (1.0.0.SNAPSHOT)
> [ 403] [Active ] [Created ] [ 80] org.soluvas.web.backbone
> (1.0.0.SNAPSHOT)
> [ 410] [Active ] [ ] [ 80] soluvas-async (0.0.0)
> [ 411] [Active ] [Created ] [ 80] com.soluvas.process.shell
> (1.0.0.SNAPSHOT)
> [ 413] [Active ] [Created ] [ 80] org.soluvas.web.nav
> (1.0.0.SNAPSHOT)
> [ 414] [Active ] [Created ] [ 80] org.soluvas.web.nav.shell
> (1.0.0.SNAPSHOT)
> [ 415] [Active ] [ ] [ 80] com.rabbitmq.client (2.8.4)
> [ 418] [Active ] [ ] [ 80] soluvas-push (1.0.0.SNAPSHOT)
> [ 419] [Active ] [Created ] [ 80] org.soluvas.web.stomp
> (1.0.0.SNAPSHOT)
> [ 420] [Active ] [Created ] [ 80] com.soluvas.process.web
> (1.0.0.SNAPSHOT)
> [ 422] [Active ] [Created ] [ 80] com.wikindonesia.web
> (2.0.0.SNAPSHOT)
> [ 423] [Active ] [Created ] [ 80] org.soluvas.web.bootstrap
> (1.0.0.SNAPSHOT)
> [ 424] [Active ] [GracePeriod ] [ 80] com.wikindonesia.shell
> (2.0.0.SNAPSHOT)
> [ 425] [Active ] [ ] [ 80] soluvas-commons (0.0.0)
> [ 426] [Active ] [Failure ] [ 80] com.wikindonesia.person
> (2.0.0.SNAPSHOT)
> [ 427] [Active ] [ ] [ 80] soluvas-commons (1.0.0.SNAPSHOT)
> [ 430] [Active ] [Created ] [ 80] com.wikindonesia.checkin
> (2.0.0.SNAPSHOT)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira