I'd been thinking along these lines too, but I think the first case is more general and therefore preferable. I also don't think we should be putting this in blueprint core, but trying to do it as a namespace handler extension.
Alasdair Nottingham On 22 Feb 2011, at 20:08, Guillaume Nodet <gno...@gmail.com> wrote: > As others have indicated, that's clearly outside of the specs. > However, I see two different improvements we could add to Aries > Blueprint to support such use cases: > > <ext:call ref="server" method="addConnector"> > <argument> > <bean .../> > </argument> > </ext:call> > > or (maybe closer to the underlying jetty model): > > <bean id="server" class="org.eclipse.jetty.server.Server" > init-method="start" destroy-method="stop"> > <ext:list-property method="addConnector"> > <list> > <bean .../> > </list> > </ext:list-property> > </bean> > > I haven't given that a lot of thoughts, and I'm not really sure how/if > this can actually be implemented ... > Both could actually be useful I suppose. > > 2011/2/22 Łukasz Dywicki <l...@code-house.org>: >> Hello, >> I have small problem with Aries. I try to configure jetty with blueprint. >> Jetty requires to register some objects using void methods, for example: >> Server.addConnector(Connector). >> >> I try to use blueprint XML: >> >> <bean id="server" class="org.eclipse.jetty.server.Server" >> init-method="start" destroy-method="stop" >> /> >> >> <bean id="http" factory-ref="server" factory-method="addConnector" >> depends-on="jersey"> >> <argument> >> <bean >> class="org.eclipse.jetty.server.nio.SelectChannelConnector"> >> <property name="port" value="8080" /> >> <property name="host" value="0.0.0.0" /> >> </bean> >> </argument> >> </bean> >> >> This configuration causes following error: >> org.apache.aries.blueprint - 0.2.0.incubating | Unable to start blueprint >> container for bundle jetty-server >> org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to >> instantiate components >> at >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEager >> Components(BlueprintContainerImpl.java:628)[7:org.apache.aries.blueprint:0.2 >> .0.incubating] >> at >> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintC >> ontainerImpl.java:315)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintCon >> tainerImpl.java:213)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6 >> .0_21] >> at >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_21 >> ] >> at >> java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_21] >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$ >> 301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_21] >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Sch >> eduledThreadPoolExecutor.java:207)[:1.6.0_21] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja >> va:886)[:1.6.0_21] >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9 >> 08)[:1.6.0_21] >> at java.lang.Thread.run(Thread.java:619)[:1.6.0_21] >> Caused by: java.lang.NullPointerException >> at >> java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)[:1.6. >> 0_21] >> at >> org.apache.aries.blueprint.container.BlueprintRepository.addPartialObject(Bl >> ueprintRepository.java:357)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.di.AbstractRecipe.addPartialObject(AbstractRecipe >> .java:84)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.ja >> va:736)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[ >> 7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(Blu >> eprintRepository.java:219)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.container.BlueprintRepository.createAll(Blueprint >> Repository.java:147)[7:org.apache.aries.blueprint:0.2.0.incubating] >> at >> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEager >> Components(BlueprintContainerImpl.java:624)[7:org.apache.aries.blueprint:0.2 >> .0.incubating] >> ... 10 more >> >> >> > > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com