<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Emily,<br>
    <br>
    thanks for your patience :-) You are right that this is a bug in
    Weld. I filed <a class="moz-txt-link-freetext" href="https://issues.jboss.org/browse/WELD-1963">https://issues.jboss.org/browse/WELD-1963</a> to track
    this issue.<br>
    <br>
    Jozef<br>
    <br>
    <div class="moz-cite-prefix">On 06/03/2015 03:41 PM, Emily Jiang
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAECq3A-Cgkg8uTiqDmDXd0V=guJVT5ytmv2rDMdAUbe82njy3Q@mail.gmail.com"
      type="cite">
      <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 moz-do-not-send="true"
              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
                            moz-do-not-send="true"
                            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 moz-do-not-send="true"
                          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 moz-do-not-send="true" href="mailto:ejiang@apache.org"
            target="_blank">ejiang@apache.org</a><br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>