<div dir="ltr"><div><div><div><div>Hi Jozef, <br></div>The non-CDI interceptor was created by Weld when I called injectionTarget.produce() on a ManagedBean class. I have no control of it. Please see above for the stack. The stack shows the creation sequence (managed bean creation -&gt; non-cdi interceptor creation). I used the following snippet to create injection Target for the ManagedBean.<br><br>            Bean&lt;T&gt; bean = getBean(); // returns null for managed bean with dependent scope<br>           <br>            AnnotatedType&lt;T&gt; annotatedType = beanManager.createAnnotatedType(clazz);<br>            InjectionTargetFactory&lt;T&gt; itf= beanManager.getInjectionTargetFactory(annotatedType);<br>            injectionTarget = itf.createInjectionTarget(bean);<br></div>            injectionTarget.produce(context); //produce an instance with all non-cdi and cdi interceptors... but the non-cdi interceptors without any ee injection<br><br></div>Thanks<br></div>Emily<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 3, 2015 at 2:02 PM, Jozef Hartinger <span dir="ltr">&lt;<a href="mailto:jharting@redhat.com" target="_blank">jharting@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Oops, sorry. Ignore my last e-mail. How do you obtain the
    InjectionTarget for the non-CDI interceptor?<div><div class="h5"><br>
    <br>
    <div>On 06/03/2015 12:52 PM, Emily Jiang
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Jozef, <br>
        </div>
        The PlainInterceptorFactory is weld class. Here is the stack
        when we created an instance for a managed bean class
        (@ManagedBean) by calling injectionTarget.produce(); You are not
        asking me to override PlainInterceptorFactory, right? <br>
        <br>
        <br>
        <table>
        </table>
        Caused by: java.lang.Exception<br>
        at
org.jboss.weld.injection.producer.BasicInjectionTarget.createNonCdiInterceptor(BasicInjectionTarget.java:69)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.chooseInjectionTarget(InjectionTargetFactoryImpl.java:126)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:87)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:80)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInterceptorInjectionTarget(InjectionTargetFactoryImpl.java:75)<br>
        at
org.jboss.weld.interceptor.reader.PlainInterceptorFactory.of(PlainInterceptorFactory.java:41)<br>
        at
org.jboss.weld.interceptor.reader.InterceptorMetadataReader$1.load(InterceptorMetadataReader.java:44)<br>
        at
org.jboss.weld.interceptor.reader.InterceptorMetadataReader$1.load(InterceptorMetadataReader.java:39)<br>
        at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)<br>
        at
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)<br>
        at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)<br>
        at
        com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)<br>
        at com.google.common.cache.LocalCache.get(LocalCache.java:4000)<br>
        at
        com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)<br>
        at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)<br>
        at
org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:49)<br>
        at
org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:74)<br>
        at
org.jboss.weld.interceptor.reader.InterceptorMetadataReader.getPlainInterceptorMetadata(InterceptorMetadataReader.java:64)<br>
        at
org.jboss.weld.injection.producer.InterceptionModelInitializer.initClassDeclaredEjbInterceptors(InterceptionModelInitializer.java:233)<br>
        at
org.jboss.weld.injection.producer.InterceptionModelInitializer.initEjbInterceptors(InterceptionModelInitializer.java:217)<br>
        at
org.jboss.weld.injection.producer.InterceptionModelInitializer.init(InterceptionModelInitializer.java:103)<br>
        at
org.jboss.weld.injection.producer.BeanInjectionTarget.buildInterceptionModel(BeanInjectionTarget.java:93)<br>
        at
org.jboss.weld.injection.producer.BeanInjectionTarget.initializeInterceptionModel(BeanInjectionTarget.java:88)<br>
        at
org.jboss.weld.injection.producer.BeanInjectionTarget.initializeAfterBeanDiscovery(BeanInjectionTarget.java:98)<br>
        at
org.jboss.weld.injection.producer.InjectionTargetInitializationContext.initialize(InjectionTargetInitializationContext.java:42)<br>
        at
org.jboss.weld.injection.producer.InjectionTargetService.addInjectionTargetToBeInitialized(InjectionTargetService.java:55)<br>
        at
org.jboss.weld.injection.producer.InjectionTargetService.addInjectionTargetToBeInitialized(InjectionTargetService.java:49)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.initialize(InjectionTargetFactoryImpl.java:145)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:92)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:80)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:70)<br>
        at
org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:54)<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, Jun 3, 2015 at 10:50 AM, Jozef
          Hartinger <span dir="ltr">&lt;<a href="mailto:jharting@redhat.com" target="_blank">jharting@redhat.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What I
            meant was that your PlainInterceptorFactory should in this
            case, instead of calling createInterceptorInjectionTarget(),
            call<span><br>
              <br>
              beanManager.createInjectionTargetBuilder(type)<br>
                  .setDecorationEnabled(false)<br>
                  .setInterceptionEnabled(false)<br>
                  .setTargetClassLifecycleCallbacksEnabled(false)<br>
                  .setResourceInjectionEnabled(true)<br>
                  .build()<br>
              <br>
            </span>
            The InjectionTarget you get should be the same except for
            resource injection which will be provided by Weld.<span><font color="#888888"><br>
                <br>
                Jozef</font></span>
            <div>
              <div><br>
                <br>
                On 06/03/2015 11:25 AM, Emily Jiang wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  I might have missed your point. Please elaborate a bit
                  more.<br>
                </blockquote>
                <br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <br>
        -- <br>
        <div>Thanks<br>
          Emily<br>
          =================<br>
          Emily Jiang<br>
          <a href="mailto:ejiang@apache.org" target="_blank">ejiang@apache.org</a><br>
        </div>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Thanks<br>Emily<br>=================<br>Emily Jiang<br><a href="mailto:ejiang@apache.org" target="_blank">ejiang@apache.org</a><br></div>
</div>