context.getMetaData().setOrigin("post-construct", descriptor);
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load post-construct target class "+className);
}
break;
}
case WebXml:
case WebDefaults:
case WebOverride:
{
//A web xml first declared a post-construct. Only allow other web xml files (web-defaults, web-overrides etc)
//to add to it
if (!(descriptor instanceof FragmentDescriptor))
{
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load post-construct target class "+className);
}
}
break;
}
case WebFragment:
{
//A web-fragment first declared a post-construct. Allow all other web-fragments to merge in their post-constructs
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PostConstructCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load post-construct target class "+className);