title: Java CDI. Interceptor is only invoked in the first method call in a class
body: <p>I'm using CDI Interceptors and I've realized that only the first method call in a class annotated with @Interceptor is intercepted. In the example below methodB is never intercepted.</p>
  
  <pre><code>@InterceptorBinding
  @Target(ElementType.TYPE)
  @Retention(RetentionPolicy.RUNTIME)
  public @interface Transactional {
  
  }
  
  
  @Transactional
  @Interceptor
  public class TransactionsInterceptor {
  
      @AroundInvoke
      public Object transactionInterceptor(InvocationContext context) throws Exception {
  
            System.out.println("Method="+context.getMethod().getName());
            return context.proceed();
  
      }
  }
  
  
  public Interface AnImportantInterface {
        public void methodA();
        public void methodB();
  }
  
  @Transactional
  @ThreadScoped
  public class AnImportantClass implements AnImportantInterface {
  
      public void methodA() {
  
          methodB();
      }
  
      public void methodB() {
  
          //This method is never intercepted
      }
  
  }
  
  
  public class AnotherImportantClass {
      @Inject AnImportantInterface aui;
  
      public void someMethod() {
          aui.methodA();
      }
  }
  </code></pre>
  
  <p>How can I achieve that methodB be intercepted if methodA is called first? is there some workaround?</p>