What about is you add some deployer similar to this:
import java.util.Collection;
import org.jboss.classloader.plugins.ClassLoaderUtils;
import org.jboss.classloader.spi.filter.ClassFilter;
import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.vfs.VirtualFile;
import javassist.util.proxy.MethodHandler;
import javassist.util.proxy.ProxyObject;
/**
* Filter on Javassist' MethodHandler and ProxyObject.
*
* @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>
*/
public class ExcludeAppJavassistDeployer extends WeldAwareMetadataDeployer<ClassLoadingMetaData>
{
private String PO = ClassLoaderUtils.classNameToPath(ProxyObject.class);
private String MH = ClassLoaderUtils.classNameToPath(MethodHandler.class);
public ExcludeAppJavassistDeployer()
{
super(ClassLoadingMetaData.class, true);
}
protected void internalDeploy(VFSDeploymentUnit unit, ClassLoadingMetaData deployment, Collection<VirtualFile> wbXml) throws DeploymentException
{
ClassFilter excluded = deployment.getExcluded();
String excludedPackages = deployment.getExcludedPackages();
if (excluded == null && excludedPackages == null)
{
excluded = new ClassFilter()
{
public boolean matchesClassName(String className)
{
return (ProxyObject.class.getName().equals(className) || MethodHandler.class.getName().equals(className)) == false;
}
public boolean matchesResourcePath(String resourcePath)
{
return (PO.equals(resourcePath) || MH.equals(resourcePath)) == false;
}
public boolean matchesPackageName(String packageName)
{
return true;
}
};
deployment.setExcluded(excluded);
}
}
}