protected Object[] resolveSignature(String signature) { String[] data = StringUtil.splitc(signature, '#'); try { data[0] = this.getClass().getPackage().getName() + '.' + data[0]; Class c = ClassLoaderUtil.loadClass(data[0]); Method m = ClassUtil.findMethod(c, data[1]); return new Object[]{c, m}; } catch (Exception e) { throw new RuntimeException(e); } }
@Test void testMethod() { TFooBean bean = new TFooBean(); Method m; m = ClassUtil.findMethod(TFooBean.class, "getMore"); assertNotNull(m); m = ClassUtil.findMethod(bean.getClass(), "getMore"); assertNotNull(m); m = ClassUtil.findMethod(bean.getClass(), "getXXX"); assertNull(m); }
protected ActionRequest createActionRequest(String actionPath) { HttpServletRequest servletRequest = mock(HttpServletRequest.class); HttpServletResponse servletResponse = mock(HttpServletResponse.class); HttpSession httpSession = mock(HttpSession.class); ServletContext servletContext = mock(ServletContext.class); when(servletRequest.getSession()).thenReturn(httpSession); when(httpSession.getServletContext()).thenReturn(servletContext); MadvocController madvocController = new MadvocController(); Object action = new Object(); ActionRuntime actionRuntime = new ActionRuntime( null, Action.class, ClassUtil.findMethod(Action.class, "view"), null, null, new ActionDefinition(actionPath, "GET"), ServletDispatcherActionResult.class, null, false, false, null, null); return new ActionRequest(madvocController, actionRuntime.getActionPath(), MadvocUtil.splitPathToChunks(actionRuntime.getActionPath()), actionRuntime, action, servletRequest, servletResponse); }
@Test void testBeanPropertyNames() { String name = ClassUtil.getBeanPropertyGetterName(ClassUtil.findMethod(JavaBean.class, "getOne")); assertEquals("one", name); name = ClassUtil.getBeanPropertySetterName(ClassUtil.findMethod(JavaBean.class, "setOne")); assertEquals("one", name); name = ClassUtil.getBeanPropertyGetterName(ClassUtil.findMethod(JavaBean.class, "isTwo")); assertEquals("two", name); name = ClassUtil.getBeanPropertySetterName(ClassUtil.findMethod(JavaBean.class, "setTwo")); assertEquals("two", name); name = ClassUtil.getBeanPropertyGetterName(ClassUtil.findMethod(JavaBean.class, "getThree")); assertEquals("three", name); name = ClassUtil.getBeanPropertySetterName(ClassUtil.findMethod(JavaBean.class, "setThree")); assertEquals("three", name); name = ClassUtil.getBeanPropertyGetterName(ClassUtil.findMethod(JavaBean.class, "getF")); assertEquals("f", name); name = ClassUtil.getBeanPropertySetterName(ClassUtil.findMethod(JavaBean.class, "setF")); assertEquals("f", name); name = ClassUtil.getBeanPropertyGetterName(ClassUtil.findMethod(JavaBean.class, "getG")); assertEquals("g", name); name = ClassUtil.getBeanPropertySetterName(ClassUtil.findMethod(JavaBean.class, "setG"));
@Test public void invokeMethod() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Moon.class); Hello hello = new Hello(); Method world1 = ClassUtil.findMethod(Hello.class, "world1"); Method world2 = ClassUtil.findMethod(Hello.class, "world2"); String string = pc.invokeMethod(hello, world1); assertEquals("worldmoon", string); string = pc.invokeMethod(hello, world2); assertEquals("world", string); } }
assertNull(ClassUtil.getComponentType(string.getGenericType(), 0)); Method integerList = ClassUtil.findMethod(sooClass, "getIntegerList"); assertEquals(List.class, ClassUtil.getRawType(integerList.getReturnType())); assertEquals(Integer.class, ClassUtil.getComponentType(integerList.getGenericReturnType(), -1)); Method integers = ClassUtil.findMethod(sooClass, "getIntegers"); assertEquals(Integer[].class, ClassUtil.getRawType(integers.getReturnType())); assertEquals(Integer.class, ClassUtil.getComponentType(integers.getGenericReturnType(), 0)); Method integer = ClassUtil.findMethod(sooClass, "getInteger"); assertEquals(Integer.class, ClassUtil.getRawType(integer.getReturnType())); assertNull(ClassUtil.getComponentType(integer.getGenericReturnType(), -1)); Method template = ClassUtil.findMethod(sooClass, "getTemplate"); assertEquals(Object.class, ClassUtil.getRawType(template.getReturnType())); assertNull(ClassUtil.getComponentType(template.getGenericReturnType(), 0)); Method collection = ClassUtil.findMethod(sooClass, "getCollection"); assertEquals(Collection.class, ClassUtil.getRawType(collection.getReturnType())); assertEquals(Number.class, ClassUtil.getComponentType(collection.getGenericReturnType(), -1)); Method collection2 = ClassUtil.findMethod(sooClass, "getCollection2"); assertEquals(Collection.class, ClassUtil.getRawType(collection2.getReturnType())); assertEquals(Object.class, ClassUtil.getComponentType(collection2.getGenericReturnType(), 0));
@Test void testWrapperProxetta_unopen() throws InvocationTargetException, IllegalAccessException { ProxyAspect proxyAspect = ProxyAspect.of(LogProxyAdvice.class, MethodWithAnnotationPointcut.of(Transaction.class)); final Object service = Proxetta.wrapperProxetta() .withAspect(proxyAspect) .setCreateTargetInDefaultCtor(true) .proxy() .setTarget(Test568Service.class) .newInstance(); // no need to inject since setCreateTargetInstanceInDefaultCtor is set // ProxettaUtil.injectTargetIntoWrapper(new Test568Service(), service); Method method = jodd.util.ClassUtil.findMethod(service.getClass(), "findMember"); String result = (String) method.invoke(service, Long.valueOf(1)); assertEquals("1", result); }
@Test void testGetRawWithImplClass() throws NoSuchFieldException { Method number = ClassUtil.findMethod(Base2.class, "getNumber"); Method kiko = ClassUtil.findMethod(Base2.class, "getKiko"); assertEquals(Number.class, ClassUtil.getRawType(number.getReturnType())); assertEquals(Number.class, ClassUtil.getRawType(number.getGenericReturnType())); assertEquals(Object.class, ClassUtil.getRawType(kiko.getReturnType())); assertEquals(Object.class, ClassUtil.getRawType(kiko.getGenericReturnType())); assertEquals(Number.class, ClassUtil.getRawType(number.getReturnType(), Impl1.class)); assertEquals(Number.class, ClassUtil.getRawType(number.getGenericReturnType(), Impl1.class)); assertEquals(Object.class, ClassUtil.getRawType(kiko.getReturnType(), Impl1.class)); assertEquals(Long.class, ClassUtil.getRawType(kiko.getGenericReturnType(), Impl1.class)); assertEquals(Number.class, ClassUtil.getRawType(number.getReturnType(), Impl2.class)); assertEquals(Integer.class, ClassUtil.getRawType(number.getGenericReturnType(), Impl2.class)); assertEquals(Object.class, ClassUtil.getRawType(kiko.getReturnType(), Impl2.class)); assertEquals(Long.class, ClassUtil.getRawType(kiko.getGenericReturnType(), Impl2.class)); assertEquals(Number.class, ClassUtil.getRawType(number.getReturnType(), Impl3.class)); assertEquals(Integer.class, ClassUtil.getRawType(number.getGenericReturnType(), Impl3.class)); assertEquals(Object.class, ClassUtil.getRawType(kiko.getReturnType(), Impl3.class)); assertEquals(Long.class, ClassUtil.getRawType(kiko.getGenericReturnType(), Impl3.class)); }
private MyActionRequest createMyActionRequest(ActionFilter[] actionFilters, ActionInterceptor[] actionInterceptors) { SimpleMadvocController madvocController = new SimpleMadvocController(); Action action = new Action(); ActionRuntime actionRuntime = new ActionRuntime( null, Action.class, ClassUtil.findMethod(Action.class, "view"), actionFilters, actionInterceptors, new ActionDefinition("path", "method"), ServletDispatcherActionResult.class, null, false, false, null, null); return new MyActionRequest( madvocController, "actionPath", actionRuntime, action, null, null); }