Oops, I forgot to reply-all:<br><br><div class="gmail_quote">On Mon, Nov 30, 2009 at 12:45 AM, Matt Drees <span dir="ltr">&lt;<a href="mailto:matt.drees@gmail.com">matt.drees@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div class="gmail_quote"><div class="im">On Sun, Nov 29, 2009 at 6:21 PM, Peter Royle <span dir="ltr">&lt;<a href="mailto:howardmoon@screamingcoder.com" target="_blank">howardmoon@screamingcoder.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I&#39;ve got this extension which I&#39;m using to explicitly register all of the managed beans used by Weld Java SE:<br>
<br>
public class WeldSEBeanRegistrant implements Extension<br>
{<br>
<br>
    private final ClassTransformer transformer = new ClassTransformer(new TypeStore());<br>
<br>
    public void registerWeldSEBeans(@Observes AfterBeanDiscovery event, BeanManagerImpl beanManager)<br>
    {<br>
        addBean(ShutdownManager.class, beanManager, event);<br>
        addBean(ParametersFactory.class, beanManager, event);<br>
    }<br>
<br>
    private void addBean(final Class&lt;?&gt; klass, BeanManagerImpl beanManager, AfterBeanDiscovery event)<br>
    {<br>
        WeldClass&lt;?&gt; weldClass = WeldClassImpl.of(klass, transformer);<br>
        ManagedBean&lt;?&gt; bean = ManagedBean.of(weldClass, beanManager);<br>
        event.addBean(bean);<br>
        bean.initialize( ___environment___);<br>
    }<br>
}<br>
<br></blockquote></div><div><br>Well, I believe the portable way to do this is:<div class="im"><br><br><br>
    private void addBean(final Class&lt;?&gt; klass, BeanManagerImpl beanManager, AfterBeanDiscovery event)<br>
    {<br></div>       Bean newBean = createBean(beanManager.createInjectionTarget(klass), beanManager.createAnnotatedType(klass));<br>       beanManager.addBean(newBean);<br>
    }<br><br>where createBean() can either manually create an implementation of Bean that delegates appropriately to the InjectionTarget and AnnotatedType, or you can use BeanImpl from the weld-extensions project  (you&#39;d have to throw in an extraneous Reannotated() call, but no biggie).<br>

I think if you do it this way, you won&#39;t have to worry about Weld&#39;s ManagedBean.initialize().<br><br>Haven&#39;t tried it though.  <br><font color="#888888"><br>-Matt<br><br></font></div></div></blockquote><div><br>
(Also, beanManager.createInjectionTarget takes should take the created AnnotatedType, not klass)<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div><font color="#888888"> </font></div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
Cheers,<br>
<br>
Pete.<br>
<br>
<br>
<br>
_______________________________________________<br>
weld-dev mailing list<br>
<a href="mailto:weld-dev@lists.jboss.org" target="_blank">weld-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/weld-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
</blockquote></div></div><br>
</blockquote></div><br>