User development,
A new message was posted in the thread "Undemanding Dependencies":
http://community.jboss.org/message/521552#521552
Author : David Lloyd
Profile :
http://community.jboss.org/people/david.lloyd@jboss.com
Message:
--------------------------------------------------------------
mailto:adrian@jboss.org wrote:
> mailto:david.lloyd@jboss.com wrote:
>
> > mailto:adrian@jboss.org wrote:
> >
> > Editor, ate my post again. ;-)
> >
> > Following the last comment, I'm not sure you wouldn't want more fine
grained control on
> > which dependencies start your bean?
> >
> > <bean name="A" mode="On Demand">
> > <property name="b"><inject bean="B"
transitive-start="true"/></property>
> > <bean>
> >
> > <bean name="B" mode="On Demand"/>
> Ah, that would be neat. Let me see if I can wrap my brain around that...
>
> So in this example, transitive-start would really mean that the targeted bean would
control when this bean starts. So the question is, if you had two such injected bean
properties, when would A start? When either injection is started, or only when both are?
You could make a configuration option, e.g. something like
Require both dependencies to start:
<bean name="A" mode="On Demand">
<property name="b"><inject bean="B"
transitive-start="required"/></property>
<property name="c"><inject bean="C"
transitive-start="required"/></property>
<bean>
Any one
<bean name="A" mode="On Demand">
<property name="b"><inject bean="B"
transitive-start="optional"/></property>
<property name="c"><inject bean="C"
transitive-start="optional"/></property>
<bean>
But unless starting A triggers some other knock-on effects, the second example is likely
to stall with a missing dependency anyway. ;-)
So I think you'd probably want all the dependencies marked transitive-start anyway?
The effect I'm envisioning for the latter case would run like this:
1. Something ("D") depending on C is started
2. This causes A to want to be demanded
3. A then demands that B start, since A has been demanded
4. A, B, and C are all started because D depended on C
Not sure if that really makes sense in terms of use case though. Also (disclaimer!)
I'm not sure that I'm using the term "demand" correctly in this
context.
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/521552#521552