//as the first declarer.
context.getMetaData().setOrigin("pre-destroy", descriptor);
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load pre-destory target class "+className);
}
break;
}
case WebXml:
case WebDefaults:
case WebOverride:
{
//A web xml file previously declared a pre-destroy. Only allow other web xml files
//(not web-fragments) to add to them.
if (!(descriptor instanceof FragmentDescriptor))
{
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load pre-destory target class "+className);
}
}
break;
}
case WebFragment:
{
//No pre-destroys in web xml, so allow all fragments to merge their pre-destroys.
try
{
Class<?> clazz = context.loadClass(className);
LifeCycleCallback callback = new PreDestroyCallback();
callback.setTarget(clazz, methodName);
((LifeCycleCallbackCollection)context.getAttribute(LifeCycleCallbackCollection.LIFECYCLE_CALLBACK_COLLECTION)).add(callback);
}
catch (ClassNotFoundException e)
{
LOG.warn("Couldn't load pre-destory target class "+className);