Search in sources :

Example 36 with Invoker

use of jp.ossc.nimbus.service.aop.Invoker in project nimbus by nimbus-org.

the class ExceptionWrapInterceptorServiceTest method test1.

public void test1() throws Throwable {
    ServiceManagerFactory.registerManager("Test");
    ExceptionWrapInterceptorService interceptor1 = new ExceptionWrapInterceptorService();
    ServiceManagerFactory.registerService("Test", "ExceptionWrapInterceptor", interceptor1);
    Interceptor interceptor2 = new Interceptor() {

        public Object invoke(InvocationContext context, InterceptorChain chain) throws Throwable {
            throw new IllegalArgumentException();
        }
    };
    try {
        ServiceManagerFactory.findManager("Test").createAllService();
        Properties mapping = new Properties();
        mapping.setProperty("java.lang.IllegalArgumentException", "java.lang.UnsupportedOperationException");
        interceptor1.setWrapExceptionMapping(mapping);
        ServiceManagerFactory.findManager("Test").startAllService();
        try {
            new DefaultInterceptorChain(new DefaultInterceptorChainList(new Interceptor[] { interceptor1, interceptor2 }), new Invoker() {

                public Object invoke(InvocationContext context) throws Throwable {
                    return "test";
                }
            }).invokeNext(new DefaultMethodInvocationContext());
            fail();
        } catch (UnsupportedOperationException e) {
            assertTrue(e.getMessage() == null || "java.lang.IllegalArgumentException".equals(e.getMessage()));
        }
    } finally {
        ServiceManagerFactory.findManager("Test").stopAllService();
        ServiceManagerFactory.findManager("Test").destroyAllService();
        ServiceManagerFactory.unregisterManager("Test");
    }
}
Also used : InterceptorChain(jp.ossc.nimbus.service.aop.InterceptorChain) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain) DefaultInterceptorChainList(jp.ossc.nimbus.service.aop.DefaultInterceptorChainList) Invoker(jp.ossc.nimbus.service.aop.Invoker) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) InvocationContext(jp.ossc.nimbus.service.aop.InvocationContext) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Properties(java.util.Properties) Interceptor(jp.ossc.nimbus.service.aop.Interceptor) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Aggregations

DefaultInterceptorChainList (jp.ossc.nimbus.service.aop.DefaultInterceptorChainList)36 InvocationContext (jp.ossc.nimbus.service.aop.InvocationContext)36 Invoker (jp.ossc.nimbus.service.aop.Invoker)36 DefaultMethodInvocationContext (jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext)35 DefaultInterceptorChain (jp.ossc.nimbus.service.aop.DefaultInterceptorChain)33 Interceptor (jp.ossc.nimbus.service.aop.Interceptor)25 InterceptorChain (jp.ossc.nimbus.service.aop.InterceptorChain)20 HashMap (java.util.HashMap)14 Random (java.util.Random)7 Map (java.util.Map)6 Properties (java.util.Properties)6 ServiceName (jp.ossc.nimbus.core.ServiceName)5 ServiceMetaData (jp.ossc.nimbus.core.ServiceMetaData)4 MethodInvocationContext (jp.ossc.nimbus.service.aop.MethodInvocationContext)4 Context (jp.ossc.nimbus.service.context.Context)4 Date (java.util.Date)3 DefaultThreadLocalInterceptorChain (jp.ossc.nimbus.service.aop.DefaultThreadLocalInterceptorChain)3 MethodCallJournalData (jp.ossc.nimbus.service.journal.editor.MethodCallJournalData)3 MethodReturnJournalData (jp.ossc.nimbus.service.journal.editor.MethodReturnJournalData)3 DefaultSemaphoreService (jp.ossc.nimbus.service.semaphore.DefaultSemaphoreService)3