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

Reply via email to