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