Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.acme.cdi.interceptor;
- import javax.inject.Inject;
- import org.jboss.arquillian.api.Deployment;
- import org.jboss.arquillian.junit.Arquillian;
- import org.jboss.shrinkwrap.api.ArchivePaths;
- import org.jboss.shrinkwrap.api.Archives;
- import org.jboss.shrinkwrap.api.spec.JavaArchive;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- @RunWith(Arquillian.class)
- public class InterceptorTestCase
- {
- @Deployment
- public static JavaArchive createDeployment() {
- return Archives.create("test.jar", JavaArchive.class)
- .addPackage(InterceptorTestCase.class.getPackage())
- .addManifestResource(
- "com/acme/cdi/interceptor/beans.xml",
- ArchivePaths.create("beans.xml"));
- }
- @Inject MyBean bean;
- @Test
- public void shouldBeIntercepted() throws Exception
- {
- bean.test();
- }
- }
- <beans>
- <interceptors>
- <class>com.acme.cdi.interceptor.InterceptInterceptor</class>
- </interceptors>
- </beans>
- package com.acme.cdi.interceptor;
- public class MyBean
- {
- @Intercept
- public void test()
- {
- System.out.println("inside test");
- }
- }
- package com.acme.cdi.interceptor;
- import javax.interceptor.AroundInvoke;
- import javax.interceptor.Interceptor;
- import javax.interceptor.InvocationContext;
- @Intercept
- @Interceptor
- public class InterceptInterceptor
- {
- @AroundInvoke
- public Object callback(InvocationContext context) throws Exception
- {
- System.out.println("intercepted");
- return context.proceed();
- }
- }
- package com.acme.cdi.interceptor;
- import static java.lang.annotation.ElementType.METHOD;
- import static java.lang.annotation.ElementType.TYPE;
- import static java.lang.annotation.RetentionPolicy.RUNTIME;
- import java.lang.annotation.Documented;
- import java.lang.annotation.Retention;
- import java.lang.annotation.Target;
- import javax.interceptor.InterceptorBinding;
- @InterceptorBinding
- @Target( { TYPE, METHOD })
- @Documented
- @Retention(RUNTIME)
- public @interface Intercept
- {
- }
- output:
- intercepted
- inside test
Advertisement
Add Comment
Please, Sign In to add comment