Hey Romain, that was the missing piece of the puzzle and lets me step down in embarrassment for such an idiotic mistake. I've had the assumtion that for a maven surefire test, the beans.xml provided in src/main/resources/META-INF which IS obviously used, is enough, but after you pointed this out, I simply added another one under src/test/resources/META-INF and voilá, getBeans() returns a Bean that I can retrieve an instance from, that indeed will make interceptors work.
Thank you very much for your help, Heiko > -----Ursprüngliche Nachricht----- > Von: Romain Manni-Bucau [mailto:[email protected]] > Gesendet: Freitag, 7. Februar 2014 08:55 > An: [email protected] > Betreff: Re: Interceptors not being called in JUnit-aware CDI environment > > ========================================================= > ====== > > ATTENTION! This message contains suspicious URL(s) possibly redirecting to > malicious content. Our security gateways target known problem URLs like > freeweb or URL Shorteners that are being abused by spammers. Some > examples would be groups.google.com or tinyurl.com. Please check the sender > and hyperlinks in the e-mail accurately before clicking on a link. If this > email > seems obviously bad to you please delete it. More information is available on > our website Information Security @ Daimler: http://intra.corpintra.net/intra- > is-e/spam > > ========================================================= > ====== > > ACHTUNG! Diese E-Mail enthält verdächtige URLs welche möglicherweise auf > schädlichen Inhalt verweisen. Die Security Gateways prüfen auf bekannte > Problem-URLs wie zum Beispiel URL-Abkürzungen, die bevorzugt von > Spammern mißbraucht werden (tinyurl.com, groups.google.com, ...). Bitte > prüfen Sie den Absender und die URLs in dieser E-Mail gewissenhaft bevor sie > die verknüpften Inhalte aufrufen. Bitte löschen Sie diese E-Mail, wenn Sie der > Meinung sind, daß sich der Verdacht bestätigt. Weitere Informationen zu > unerwünschter E-Mail / SPAM finden Sie auf den Seiten der > Informationssicherheit bei Daimler unter: http://intra.corpintra.net/intra-is- > d/spam > > ========================================================= > ====== > > > is you test class scanned by cdi? I mean did you provide a META- > INF/beans.xml for tests? > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2014-02-07 <[email protected]>: > > Hello Romain, > > > > thank you for your fast response. Yes I want to intercept the test itself. > > > > I've checked into various ways on how to actually create a bean, however > nothing worked out. You mention to call beanManager.getXXX() but for my > point that is not enough information. > > > > I tried to retrieve the beans of the test class via beanManager.getBeans() > > but > regardless of what I try as annotation literals there (non, Any, etc.) nothing > works, the list is always empty. What method exactly did you have in mind > here? > > > > Thanks, > > > > Heiko > > > >> -----Ursprüngliche Nachricht----- > >> Von: Romain Manni-Bucau [mailto:[email protected]] > >> Gesendet: Freitag, 7. Februar 2014 08:26 > >> An: [email protected] > >> Betreff: Re: Interceptors not being called in JUnit-aware CDI > >> environment > >> > >> > ========================================================= > >> ====== > >> > >> ATTENTION! This message contains suspicious URL(s) possibly > >> redirecting to malicious content. Our security gateways target known > >> problem URLs like freeweb or URL Shorteners that are being abused by > >> spammers. Some examples would be groups.google.com or tinyurl.com. > >> Please check the sender and hyperlinks in the e-mail accurately > >> before clicking on a link. If this email seems obviously bad to you > >> please delete it. More information is available on our website > >> Information Security @ Daimler: http://intra.corpintra.net/intra- > >> is-e/spam > >> > >> > ========================================================= > >> ====== > >> > >> ACHTUNG! Diese E-Mail enthält verdächtige URLs welche möglicherweise > >> auf schädlichen Inhalt verweisen. Die Security Gateways prüfen auf > >> bekannte Problem-URLs wie zum Beispiel URL-Abkürzungen, die > >> bevorzugt von Spammern mißbraucht werden (tinyurl.com, > >> groups.google.com, ...). Bitte prüfen Sie den Absender und die URLs > >> in dieser E-Mail gewissenhaft bevor sie die verknüpften Inhalte > >> aufrufen. Bitte löschen Sie diese E-Mail, wenn Sie der Meinung sind, > >> daß sich der Verdacht bestätigt. Weitere Informationen zu > >> unerwünschter E-Mail / SPAM finden Sie auf den Seiten der > >> Informationssicherheit bei Daimler unter: > >> http://intra.corpintra.net/intra-is- > >> d/spam > >> > >> > ========================================================= > >> ====== > >> > >> > >> HI > >> > >> You want to intercept the test? so it means the runner needs to > >> invoke "business" methods of the test class which is not the case by > >> default (ie result shouldn't be built from a newInstance() but from a > beanManager.getXXX()). > >> Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> > >> 2014-02-07 <[email protected]>: > >> > Hello, > >> > > >> > I've been trying to start the CDI container during Junit-Testing as > >> > described at the following page, > >> > > >> > http://struberg.wordpress.com/2012/03/27/unit-testing-strategies-fo > >> > r-c > >> > di-based-projects/ > >> > > >> > though I'm using Junit 4 and implemented everything using a new > >> > Runner (to > >> annotate tests with @RunWith). I kind of got inspired by he CDIUnit > >> project, but it works only with Weld and I want to use OpenWebBeans. > >> > The major things like injection work perfectly, however, I > >> > realized, that even > >> though I implemented the following code to provided a CDI aware > >> Test-Class, an interceptor annotation on a test method is completely > >> ignored, thus the interceptors AroundInvoke annotated method is not called. > >> > > >> > private <T> T createTest(final Class<T> testClass) throws Exception > >> > { > >> > final BeanManager beanManager = > >> > cdiContainer.getBeanManager(); > >> > > >> > final CreationalContext<T> creationalContext = > >> > beanManager.createCreationalContext(null); > >> > > >> > final AnnotatedType<T> annotatedType = > >> beanManager.createAnnotatedType(testClass); > >> > final InjectionTarget<T> injectionTarget = > >> > beanManager.createInjectionTarget(annotatedType); > >> > > >> > final T result = (T) > >> > getTestClass().getOnlyConstructor().newInstance(); > >> > > >> > injectionTarget.inject(result, creationalContext); > >> > > >> > return result; > >> > } > >> > > >> > Is this expected behaviour? I'm not so familiar with how > >> > interceptors are really implemented, but I would have guest that > >> > after providing a creational context and complete injection for the > >> > test class, interceptor annotations should work too. The > >> > interceptor itself is registered correctly. It is listed among all > >> > interceptors when calling > >> > > >> > WebBeansContext.currentInstance().getInterceptorsManager().getCdiIn > >> > ter > >> > ceptors() > >> > > >> > however, a test annotated with the interceptor does not trigger > >> > execution of > >> the AroundInvoke-method. > >> > > >> > Would be great, if somebody has a thought or a hint on this. > >> > > >> > Thanks, > >> > > >> > Heiko > >> > > >> > > >> > If you are not the addressee, please inform us immediately that you > >> > have > >> received this e-mail by mistake, and delete it. We thank you for your > support. > >> > > > > > If you are not the addressee, please inform us immediately that you have > received this e-mail by mistake, and delete it. We thank you for your support. > > If you are not the addressee, please inform us immediately that you have received this e-mail by mistake, and delete it. We thank you for your support.
