org.zeroturnaround.javarebel.integration.IntegrationPlugin Maven / Gradle / Ivy
The newest version!
package org.zeroturnaround.javarebel.integration;
import org.zeroturnaround.javarebel.ClassResourceSource;
import org.zeroturnaround.javarebel.IntegrationFactory;
import org.zeroturnaround.javarebel.Plugin;
import org.zeroturnaround.javarebel.ReloaderFactory;
import org.zeroturnaround.javarebel.integration.classworlds.ClassRealmCBP;
import org.zeroturnaround.javarebel.integration.confluence.JarClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.eclipse301.Eclipse301DefaultClassLoaderClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.elcommons.BeanInfoManagerElCommonsCBP;
import org.zeroturnaround.javarebel.integration.elcommons.BeanInfoManagerStandardLangCBP;
import org.zeroturnaround.javarebel.integration.equinox.EquinoxClassPathManagerClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.equinox.EquinoxDefaultClassLoaderClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.generic.FindClassClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.glassfish.FelixContentClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.glassfish.FelixContentLoaderImplCBP;
import org.zeroturnaround.javarebel.integration.glassfish.GlassfishWebappClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.google.GaeCustomSecurityManagerCBP;
import org.zeroturnaround.javarebel.integration.google.GaeProxyPolicyCBP;
import org.zeroturnaround.javarebel.integration.google.RestrictedUrlClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.intellij.IntelliJClassLoaderClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.javaxel.BeanELResolverCBP;
import org.zeroturnaround.javarebel.integration.javaxel.BeanELResolverElCommonsCBP;
import org.zeroturnaround.javarebel.integration.jboss4.RepositoryClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.jboss4.UnifiedLoaderRepository3CBP;
import org.zeroturnaround.javarebel.integration.jboss5.BaseClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.jboss5.BaseClassLoaderDomainCBP;
import org.zeroturnaround.javarebel.integration.netbeans.NetbeansJarClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.netbeans.ProxyClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.oc4j.EJBPackageDeploymentCBP;
import org.zeroturnaround.javarebel.integration.oc4j.PolicyClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.resin.LineConfigExceptionCBP;
import org.zeroturnaround.javarebel.integration.resin.ResinCBP;
import org.zeroturnaround.javarebel.integration.resin.ResinDeployControllerConfigCBP;
import org.zeroturnaround.javarebel.integration.resin.ResinDynamicClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.resin.ResinWatchdogCBP;
import org.zeroturnaround.javarebel.integration.resin.WatchdogProcessCBP;
import org.zeroturnaround.javarebel.integration.sap.SapResourceLoaderCBP;
import org.zeroturnaround.javarebel.integration.sap.SapResourceMultiParentClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.sap.SapSystemURLStreamHandlerFactoryCBP;
import org.zeroturnaround.javarebel.integration.streambase.StreamBaseJarClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.tomcat.WebappClassLoaderClassBytecodeProcessor;
import org.zeroturnaround.javarebel.integration.weblogic.BaseLoggerCBP;
import org.zeroturnaround.javarebel.integration.weblogic.ChangeAwareClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.weblogic.CompilerForJDTCBP;
import org.zeroturnaround.javarebel.integration.weblogic.DebugLoggerCBP;
import org.zeroturnaround.javarebel.integration.weblogic.EJBJarCBP;
import org.zeroturnaround.javarebel.integration.weblogic.EarCBP;
import org.zeroturnaround.javarebel.integration.weblogic.GenericClassLoaderCBP;
import org.zeroturnaround.javarebel.integration.websphere.CompoundClassLoaderClassBytecodeProcessor;
/**
* @author ekabanov
* @see http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial2.html
*/
public class IntegrationPlugin implements Plugin {
public void preinit() {
ReloaderFactory
.getInstance()
.addClassReloadListener(new IntegrationClassEventListener());
String[] standardIntegrationClassLoaders = new String[]{
// TOMCAT
"org.apache.catalina.loader.StandardClassLoader",
// JETTY
"org.mortbay.jetty.webapp.WebAppClassLoader",
// GLASSFISH
"com.sun.enterprise.loader.EJBClassLoader",
// GWT
"com.google.gwt.dev.shell.CompilingClassLoader",
// Oracle 9.0.4
"com.evermind.naming.ContextClassLoader",
// IBM WAS 6.1
"com.ibm.ws.bootstrap.ExtClassLoader",
// JONAS-4.10.3
"org.objectweb.jonas_lib.loader.EjbJarClassLoader"
};
IntegrationFactory.getInstance().addIntegrationProcessor(
standardIntegrationClassLoaders,
new FindClassClassBytecodeProcessor());
// TOMCAT 5.5
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.apache.catalina.loader.WebappClassLoader",
new WebappClassLoaderClassBytecodeProcessor());
// GLASSFISH 3-PRELUDE
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.glassfish.web.loader.WebappClassLoader",
new GlassfishWebappClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.apache.felix.framework.searchpolicy.ContentClassLoader",
new FelixContentClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.apache.felix.framework.searchpolicy.ContentLoaderImpl",
new FelixContentLoaderImplCBP());
// IBM WAS 6.1
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.ibm.ws.classloader.CompoundClassLoader",
new CompoundClassLoaderClassBytecodeProcessor());
// Equinox (and Eclipse)
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader",
new EquinoxDefaultClassLoaderClassBytecodeProcessor());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.eclipse.osgi.baseadaptor.loader.ClasspathManager",
new EquinoxClassPathManagerClassBytecodeProcessor());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.eclipse.osgi.framework.internal.defaultadaptor.DefaultClassLoader",
new Eclipse301DefaultClassLoaderClassBytecodeProcessor());
// JBOSS 4
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.jboss.mx.loading.RepositoryClassLoader",
new RepositoryClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.jboss.mx.loading.UnifiedLoaderRepository3",
new UnifiedLoaderRepository3CBP());
// JBOSS 5
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.jboss.classloader.spi.base.BaseClassLoader",
new BaseClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.jboss.classloader.spi.base.BaseClassLoaderDomain",
new BaseClassLoaderDomainCBP());
/*
* Oracle 10.1.3+
*
* PolicyClassLoader is used: 10.1.3.3.0, 10.1.3.4.0
* PolicyClassLoader is not used: 9.0.4, 10.1.2.0.2
*/
IntegrationFactory.getInstance().addIntegrationProcessor(
"oracle.classloader.PolicyClassLoader",
new PolicyClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.evermind.server.ejb.EJBPackageDeployment",
new EJBPackageDeploymentCBP());
// Weblogic
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.utils.classloaders.GenericClassLoader",
new GenericClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.utils.classloaders.ChangeAwareClassLoader",
new ChangeAwareClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.application.io.Ear",
new EarCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.ejb.spi.EJBJar",
new EJBJarCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.ejb.container.ejbc.CompilerForJDT",
new CompilerForJDTCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.bea.logging.BaseLogger",
new BaseLoggerCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"weblogic.diagnostics.debug.DebugLogger",
new DebugLoggerCBP());
// Caucho Resin (Tested on 3.0.27, 3.1.3 and 3.2.1)
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.server.resin.Resin",
new ResinCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.loader.DynamicClassLoader",
new ResinDynamicClassLoaderCBP()); // Resin 3.0.x (since Resin 3.1.x see ResinPatchHelper)
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.boot.ResinWatchdog",
new ResinWatchdogCBP()); // Resin 3.1.0 - Resin 3.1.4
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.boot.WatchdogProcess",
new WatchdogProcessCBP()); // Since Resin 3.1.5
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.server.deploy.DeployController",
new ResinDeployControllerConfigCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.caucho.config.LineConfigException",
new LineConfigExceptionCBP());
// Google App Engine 1.x
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.google.appengine.tools.development.DevAppServerClassLoader",
new RestrictedUrlClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.google.appengine.tools.development.IsolatedAppClassLoader",
new RestrictedUrlClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.google.appengine.tools.development.IsolatedAppClassLoader$ProxyPolicy",
new GaeProxyPolicyCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager",
new GaeCustomSecurityManagerCBP());
// SAP NetWeaver 7.0
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.sap.engine.frame.core.load.ResourceLoader",
new SapResourceLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.sap.engine.services.deploy.server.ApplicationLoader",
new SapResourceLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.sap.engine.system.SystemURLStreamHandlerFactory",
new SapSystemURLStreamHandlerFactoryCBP());
// SAP NetWeaver 7.1
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.sap.engine.boot.loader.ResourceMultiParentClassLoader",
new SapResourceMultiParentClassLoaderCBP());
// IntelliJ IDEA
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.intellij.util.lang.UrlClassLoader",
new IntelliJClassLoaderClassBytecodeProcessor());
// Atlassian Confluence
IntegrationFactory.getInstance()
.addIntegrationProcessor(
"com.atlassian.plugin.loaders.classloading.JarClassLoader",
new JarClassLoaderCBP());
// Classworlds
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.codehaus.plexus.classworlds.realm.ClassRealm",
new ClassRealmCBP());
// Netbeans
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.netbeans.JarClassLoader",
new NetbeansJarClassLoaderCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.netbeans.ProxyClassLoader",
new ProxyClassLoaderCBP());
// commons-el
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.apache.taglibs.standard.lang.jstl.BeanInfoManager",
new BeanInfoManagerStandardLangCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"org.apache.commons.el.BeanInfoManager",
new BeanInfoManagerElCommonsCBP());
// javax.el
IntegrationFactory.getInstance().addIntegrationProcessor(
"javax.el.BeanELResolver",
new BeanELResolverCBP());
IntegrationFactory.getInstance().addIntegrationProcessor(
"javax.el.BeanELResolver$BeanProperties",
new BeanELResolverElCommonsCBP());
// StreamBase
IntegrationFactory.getInstance().addIntegrationProcessor(
"com.streambase.sb.runtime.JarClassLoader",
new StreamBaseJarClassLoaderCBP());
}
public boolean checkDependencies(ClassLoader cl, ClassResourceSource crs) {
return false;
}
public String getDescription() {
return null;
}
public String getId() {
return null;
}
public String getName() {
return null;
}
public String getAuthor() {
return null;
}
public String getWebsite() {
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy