Author: tchemit Date: 2009-02-24 11:21:33 +0000 (Tue, 24 Feb 2009) New Revision: 1242 Modified: jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/DefaultApplicationContext.java Log: implantation initMethod Modified: jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/DefaultApplicationContext.java =================================================================== --- jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/DefaultApplicationContext.java 2009-02-23 13:06:52 UTC (rev 1241) +++ jaxx/trunk/jaxx-runtime-api/src/main/java/jaxx/runtime/DefaultApplicationContext.java 2009-02-24 11:21:33 UTC (rev 1242) @@ -123,6 +123,10 @@ throw new IllegalArgumentException("an " + AutoLoad.class.getName() + " can not have a named context but was call with this one : " + name); } value = newInstance(clazz); + if (!anno.initMethod().trim().isEmpty()){ + // apply method on class + newAccess(clazz, value, anno.initMethod().trim()); + } if (log.isDebugEnabled()) { log.debug("new instance " + clazz + " : " + value); } @@ -219,4 +223,21 @@ throw new IllegalArgumentException(ex); } } + + protected Object newAccess(Class<?> clazz, Object parent, String methodName) throws IllegalArgumentException { + Object value; + try { + Method m = clazz.getMethod(methodName); + value = m.invoke(parent); + return value; + } catch (NoSuchMethodException ex) { + throw new IllegalArgumentException(ex); + } catch (SecurityException ex) { + throw new IllegalArgumentException(ex); + } catch (IllegalAccessException ex) { + throw new IllegalArgumentException(ex); + } catch (InvocationTargetException ex) { + throw new IllegalArgumentException(ex); + } + } }