Search in sources :

Example 1 with MethodReflectionCallInvokerService

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

the class ReturnInterceptorService method startService.

public void startService() throws Exception {
    if (returnConditions != null) {
        returnConditions.clear();
    }
    if (returnValues != null && returnValues.size() != 0) {
        if (returnConditions == null) {
            returnConditions = new ArrayList();
        }
        final Iterator entries = returnValues.entrySet().iterator();
        while (entries.hasNext()) {
            final Map.Entry entry = (Map.Entry) entries.next();
            final String condition = (String) entry.getKey();
            final Object value = entry.getValue();
            returnConditions.add(new Condition(condition, value));
        }
    }
    if (returnServiceNames != null && returnServiceNames.size() != 0) {
        if (returnConditions == null) {
            returnConditions = new ArrayList();
        }
        final Iterator entries = returnServiceNames.entrySet().iterator();
        while (entries.hasNext()) {
            final Map.Entry entry = (Map.Entry) entries.next();
            final String condition = (String) entry.getKey();
            final ServiceName name = (ServiceName) entry.getValue();
            returnConditions.add(new Condition(condition, name));
        }
    }
    if (returnInterfaceClass != null && interceptorChainListServiceName != null) {
        final MethodReflectionCallInvokerService invoker = new MethodReflectionCallInvokerService();
        invoker.create();
        invoker.start();
        invocationHandler = new ProxyInvocationHandler(interceptorChainListServiceName, invoker);
        proxy = Proxy.newProxyInstance(NimbusClassLoader.getInstance(), new Class[] { returnInterfaceClass }, invocationHandler);
    }
}
Also used : MethodReflectionCallInvokerService(jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService)

Example 2 with MethodReflectionCallInvokerService

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

the class MockInterceptorServiceTest method test1.

public void test1() throws Throwable {
    ServiceManagerFactory.registerManager("Test");
    MockInterceptorService interceptor = new MockInterceptorService();
    ServiceManagerFactory.registerService("Test", "MockInterceptor", interceptor);
    final Method targetMethod = String.class.getMethod("toString", (Class[]) null);
    MockFactory mockFactory = new MockFactory() {

        public Object createMock(InvocationContext context) {
            assertNotNull(context);
            assertTrue(context instanceof MethodInvocationContext);
            MethodInvocationContext ctx = (MethodInvocationContext) context;
            assertEquals("Real", ctx.getTargetObject());
            assertEquals(targetMethod, ctx.getTargetMethod());
            return "Mock";
        }
    };
    ServiceManagerFactory.registerService("Test", "MockFactory", mockFactory);
    try {
        ServiceManagerFactory.findManager("Test").createAllService();
        interceptor.setMockFactoryServiceName(new ServiceName("Test", "MockFactory"));
        ServiceManagerFactory.findManager("Test").startAllService();
        final InterceptorChain chain = new DefaultInterceptorChain(new DefaultInterceptorChainList(new Interceptor[] { interceptor }), new MethodReflectionCallInvokerService());
        assertEquals("Mock", chain.invokeNext(new DefaultMethodInvocationContext("Real", targetMethod, null)));
    } finally {
        ServiceManagerFactory.findManager("Test").stopAllService();
        ServiceManagerFactory.findManager("Test").destroyAllService();
        ServiceManagerFactory.unregisterManager("Test");
    }
}
Also used : DefaultInterceptorChainList(jp.ossc.nimbus.service.aop.DefaultInterceptorChainList) MethodInvocationContext(jp.ossc.nimbus.service.aop.MethodInvocationContext) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Method(java.lang.reflect.Method) MethodReflectionCallInvokerService(jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain) InterceptorChain(jp.ossc.nimbus.service.aop.InterceptorChain) ServiceName(jp.ossc.nimbus.core.ServiceName) MockFactory(jp.ossc.nimbus.service.aop.MockFactory) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) InvocationContext(jp.ossc.nimbus.service.aop.InvocationContext) MethodInvocationContext(jp.ossc.nimbus.service.aop.MethodInvocationContext) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Interceptor(jp.ossc.nimbus.service.aop.Interceptor) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Example 3 with MethodReflectionCallInvokerService

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

the class MockInterceptorServiceTest method test2.

public void test2() throws Throwable {
    ServiceManagerFactory.registerManager("Test");
    MockInterceptorService interceptor = new MockInterceptorService();
    ServiceManagerFactory.registerService("Test", "MockInterceptor", interceptor);
    final Method targetMethod = String.class.getMethod("toString", (Class[]) null);
    MockFactory mockFactory = new MockFactory() {

        public Object createMock(InvocationContext context) {
            assertNotNull(context);
            assertTrue(context instanceof MethodInvocationContext);
            MethodInvocationContext ctx = (MethodInvocationContext) context;
            assertEquals("Real", ctx.getTargetObject());
            assertEquals(targetMethod, ctx.getTargetMethod());
            return "Mock";
        }
    };
    try {
        ServiceManagerFactory.findManager("Test").createAllService();
        interceptor.setMockFactory(mockFactory);
        ServiceManagerFactory.findManager("Test").startAllService();
        final InterceptorChain chain = new DefaultInterceptorChain(new DefaultInterceptorChainList(new Interceptor[] { interceptor }), new MethodReflectionCallInvokerService());
        assertEquals("Mock", chain.invokeNext(new DefaultMethodInvocationContext("Real", targetMethod, null)));
    } finally {
        ServiceManagerFactory.findManager("Test").stopAllService();
        ServiceManagerFactory.findManager("Test").destroyAllService();
        ServiceManagerFactory.unregisterManager("Test");
    }
}
Also used : DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain) InterceptorChain(jp.ossc.nimbus.service.aop.InterceptorChain) DefaultInterceptorChainList(jp.ossc.nimbus.service.aop.DefaultInterceptorChainList) MethodInvocationContext(jp.ossc.nimbus.service.aop.MethodInvocationContext) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) MockFactory(jp.ossc.nimbus.service.aop.MockFactory) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Method(java.lang.reflect.Method) InvocationContext(jp.ossc.nimbus.service.aop.InvocationContext) MethodInvocationContext(jp.ossc.nimbus.service.aop.MethodInvocationContext) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Interceptor(jp.ossc.nimbus.service.aop.Interceptor) MethodReflectionCallInvokerService(jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Example 4 with MethodReflectionCallInvokerService

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

the class MockInterceptorServiceTest method test4.

public void test4() throws Throwable {
    ServiceManagerFactory.registerManager("Test");
    MockInterceptorService interceptor = new MockInterceptorService();
    ServiceManagerFactory.registerService("Test", "MockInterceptor", interceptor);
    final Method targetMethod = String.class.getMethod("toString", (Class[]) null);
    try {
        ServiceManagerFactory.findManager("Test").createAllService();
        interceptor.setMock("Mock");
        ServiceManagerFactory.findManager("Test").startAllService();
        final InterceptorChain chain = new DefaultInterceptorChain(new DefaultInterceptorChainList(new Interceptor[] { interceptor }), new MethodReflectionCallInvokerService());
        assertEquals("Mock", chain.invokeNext(new DefaultMethodInvocationContext("Real", targetMethod, null)));
    } finally {
        ServiceManagerFactory.findManager("Test").stopAllService();
        ServiceManagerFactory.findManager("Test").destroyAllService();
        ServiceManagerFactory.unregisterManager("Test");
    }
}
Also used : DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain) InterceptorChain(jp.ossc.nimbus.service.aop.InterceptorChain) DefaultInterceptorChainList(jp.ossc.nimbus.service.aop.DefaultInterceptorChainList) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Method(java.lang.reflect.Method) Interceptor(jp.ossc.nimbus.service.aop.Interceptor) MethodReflectionCallInvokerService(jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Example 5 with MethodReflectionCallInvokerService

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

the class MockInterceptorServiceTest method test3.

public void test3() throws Throwable {
    ServiceManagerFactory.registerManager("Test");
    MockInterceptorService interceptor = new MockInterceptorService();
    ServiceManagerFactory.registerService("Test", "MockInterceptor", interceptor);
    final Method targetMethod = String.class.getMethod("toString", (Class[]) null);
    ServiceManagerFactory.registerService("Test", "Mock", "Mock");
    try {
        ServiceManagerFactory.findManager("Test").createAllService();
        interceptor.setMockServiceName(new ServiceName("Test", "Mock"));
        ServiceManagerFactory.findManager("Test").startAllService();
        final InterceptorChain chain = new DefaultInterceptorChain(new DefaultInterceptorChainList(new Interceptor[] { interceptor }), new MethodReflectionCallInvokerService());
        assertEquals("Mock", chain.invokeNext(new DefaultMethodInvocationContext("Real", targetMethod, null)));
    } finally {
        ServiceManagerFactory.findManager("Test").stopAllService();
        ServiceManagerFactory.findManager("Test").destroyAllService();
        ServiceManagerFactory.unregisterManager("Test");
    }
}
Also used : DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain) InterceptorChain(jp.ossc.nimbus.service.aop.InterceptorChain) DefaultInterceptorChainList(jp.ossc.nimbus.service.aop.DefaultInterceptorChainList) ServiceName(jp.ossc.nimbus.core.ServiceName) DefaultMethodInvocationContext(jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext) Method(java.lang.reflect.Method) Interceptor(jp.ossc.nimbus.service.aop.Interceptor) MethodReflectionCallInvokerService(jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Aggregations

MethodReflectionCallInvokerService (jp.ossc.nimbus.service.aop.invoker.MethodReflectionCallInvokerService)5 Method (java.lang.reflect.Method)4 DefaultInterceptorChain (jp.ossc.nimbus.service.aop.DefaultInterceptorChain)4 DefaultInterceptorChainList (jp.ossc.nimbus.service.aop.DefaultInterceptorChainList)4 DefaultMethodInvocationContext (jp.ossc.nimbus.service.aop.DefaultMethodInvocationContext)4 Interceptor (jp.ossc.nimbus.service.aop.Interceptor)4 InterceptorChain (jp.ossc.nimbus.service.aop.InterceptorChain)4 ServiceName (jp.ossc.nimbus.core.ServiceName)2 InvocationContext (jp.ossc.nimbus.service.aop.InvocationContext)2 MethodInvocationContext (jp.ossc.nimbus.service.aop.MethodInvocationContext)2 MockFactory (jp.ossc.nimbus.service.aop.MockFactory)2