![JAR search and dependency download from the Maven repository](/logo.png)
org.zeroturnaround.javarebel.integration.log4j.cbp.Log4jCBP Maven / Gradle / Ivy
The newest version!
package org.zeroturnaround.javarebel.integration.log4j.cbp;
import org.zeroturnaround.bundled.javassist.ClassPool;
import org.zeroturnaround.bundled.javassist.CtClass;
import org.zeroturnaround.bundled.javassist.CtMethod;
import org.zeroturnaround.javarebel.integration.support.JavassistClassBytecodeProcessor;
/**
* Log4jCBP
*
* @author Richard Julien
* @version 1.0
*/
public class Log4jCBP extends JavassistClassBytecodeProcessor {
public void process(ClassPool classPool, ClassLoader classLoader, CtClass ctClass) throws Exception {
//Inserting package to log
classPool.importPackage("org.zeroturnaround.javarebel");
classPool.importPackage("org.apache.log4j.helpers");
//Inser after in resetConfiguration function
CtMethod m = ctClass.getDeclaredMethod("resetConfiguration");
m.insertAfter(
"String override = OptionConverter.getSystemProperty(DEFAULT_INIT_OVERRIDE_KEY, null);\n" +
"if(override == null || \"false\".equalsIgnoreCase(override)) {" +
"String configurationOptionStr = OptionConverter.getSystemProperty(DEFAULT_CONFIGURATION_KEY, null);\n" +
"String configuratorClassName = OptionConverter.getSystemProperty( CONFIGURATOR_CLASS_KEY, null);\n" +
"java.net.URL url = null;\n" +
"if(configurationOptionStr == null) {\n" +
"url = Loader.getResource(DEFAULT_XML_CONFIGURATION_FILE);\n" +
"if(url == null) {\n" +
"url = Loader.getResource(DEFAULT_CONFIGURATION_FILE);\n" +
"}\n" +
"} else {\n" +
"try {\n" +
"url = new java.net.URL(configurationOptionStr);\n" +
"} catch (java.net.MalformedURLException ex) {\n" +
"url = Loader.getResource(configurationOptionStr);\n" +
"}\n" +
"}\n" +
"if(url != null) {" +
"try {" +
"OptionConverter.selectAndConfigure(url, configuratorClassName, getLoggerRepository());" +
"} catch (java.lang.NoClassDefFoundError e) {" +
"LoggerFactory.getInstance().echo(\"******* jRebel Log4j warn : \" + e);\n" +
"}" +
"}\n" +
"}"
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy