[webbeans-dev] Replacement pattern for Manager.getInstanceByType

Pete Muir pmuir at redhat.com
Tue Jul 21 11:06:12 EDT 2009


I would use said utility method for now - we will address how to do  
this better once I have non-contextual instance injection working  
again (I'll send an email with the pattern).

On 21 Jul 2009, at 15:50, Peter Royle wrote:

> Sorry to drag this up again, but this has changed now that
> manager.getReference(...) requires a CreationalContext, about which I
> know very little. I'll try reading the latest spec soon, but in the
> meantime if anyone has any silver bullets please let me know.
>
> I'm currently using this utility method:
>
>     public static <T> T getInstanceByType(BeanManager manager,
> Class<T> type, Annotation... bindings) {
>         return (T)manager.getReference(
>                 manager.getBeans(type).iterator().next(), type, null);
>     }
>
> Obviously it's that null at the end (where CreationalContext should
> be) that's causing the problem.
>
> Cheers,
>
> Pete.
>
> On 29/05/2009, at 2:02 AM, David Allen wrote:
>
>> On Thu, 2009-05-28 at 10:52 -0500, Clint Popetz wrote:
>>>
>>>
>>> On Thu, May 28, 2009 at 10:51 AM, David Allen <drallendc at gmail.com>
>>> wrote:
>>>       On Thu, 2009-05-28 at 11:43 -0400, Dan Allen wrote:
>>>> On Thu, May 28, 2009 at 11:14 AM, Pete Muir
>>>       <pmuir at redhat.com> wrote:
>>>>
>>>>       On 28 May 2009, at 16:04, Dan Allen wrote:
>>>>
>>>>> On Thu, May 28, 2009 at 6:35 AM, Pete Muir
>>>>> <pmuir at redhat.com> wrote:
>>>>>       Yeah, this is used a lot in the TCK, and
>>>       maybe a bit
>>>>>       in addons which enable injection in types
>>>       WB doesn't
>>>>>       know about (?), but I don't think users
>>>       will hit it.
>>>>>
>>>>> Correct, users really should hit this. It's used
>>>       heavily in
>>>>> tests, for instance in AbstractWebBeans tests.
>>>>
>>>>
>>>>       Hmm, yes you might well want to use this in a
>>>       standalone, unit
>>>>       test, environment as an entry point.
>>>>
>>>> It would be great if we can add a convenience method to
>>>> AbstractWebBeansTest. That would pretty much clear up any
>>>       annoyances.
>>>
>>>
>>>       Yes, that is the plan.  Ditto for the TCK abstract test class.
>>>
>>>
>>>
>>> I got the TCK compiling locally with the new BeanManager interface,
>>> but rather than adding the bridge methods to the old SPI methods in
>>> the abstract test class, I added them to a separate utility class,
>>> because several things in the TCK that aren't test subclasses use
>>> this
>>> functionality as well.
>>>
>>> I can also add a method to the abstract test class to delegate to  
>>> the
>>> utility class.
>>>
>>> Is that ok?
>>
>> Yeah, that sounds good.  Most of our tests do extend an abstract
>> class,
>> so I just thought that would be a little cleaner in the code to use a
>> member method.
>>
>>>
>>> -Clint
>>>
>>>
>>>
>>>>
>>>>
>>>>
>>>>
>>>>> It is also used when you are entering from outside
>>>       the WB
>>>>> environment. You get a handle to manager and
>>>       lookup the type
>>>>> that gives you entry. For instance, you might look
>>>       up the
>>>>> Identity component and then invoke some method on
>>>       it which
>>>>> may trigger a chain of WB injections once
>>>       "inside".
>>>>
>>>>
>>>>       Yes, this is addon frameworks, not end users.
>>>>
>>>> Yep, agreed. I've found that injection is sufficient for all
>>>       but those
>>>> "entry point" cases.
>>>>
>>>> -Dan
>>>>
>>>>
>>>> --
>>>> Dan Allen
>>>> Senior Software Engineer, Red Hat | Author of Seam in Action
>>>>
>>>> http://mojavelinux.com
>>>> http://mojavelinux.com/seaminaction
>>>> http://in.relation.to/Bloggers/Dan
>>>>
>>>> NOTE: While I make a strong effort to keep up with my email
>>>       on a daily
>>>> basis, personal or other work matters can sometimes keep me
>>>       away
>>>> from my email. If you contact me, but don't hear back for
>>>       more than a
>>>> week,
>>>> it is very likely that I am excessively backlogged or the
>>>       message was
>>>> caught in the spam filters.  Please don't hesitate to resend
>>>       a message
>>>> if
>>>> you feel that it did not reach my attention.
>>>
>>>
>>>
>>>       _______________________________________________
>>>       webbeans-dev mailing list
>>>       webbeans-dev at lists.jboss.org
>>>       https://lists.jboss.org/mailman/listinfo/webbeans-dev
>>>
>>>
>>>
>>>
>>> -- 
>>> Clint Popetz
>>> http://42lines.net
>>> Scalable Web Application Development
>>
>> _______________________________________________
>> webbeans-dev mailing list
>> webbeans-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/webbeans-dev
>
> _______________________________________________
> webbeans-dev mailing list
> webbeans-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/webbeans-dev




More information about the weld-dev mailing list