From ab0533399cd211eecc7eb9b143dae9dc91aec412 Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Mon, 27 Nov 2017 11:44:15 -0500 Subject: [PATCH] Removed log4j 1.x dependencies and fixed a test. Resolves BATCH-2656 --- build.gradle | 6 ---- .../LogOrRethrowExceptionHandlerTests.java | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/build.gradle b/build.gradle index 8cd69ec74..d035c0b6f 100644 --- a/build.gradle +++ b/build.gradle @@ -88,7 +88,6 @@ allprojects { postgresqlVersion = '42.1.4' quartzVersion = '2.3.0' servletApiVersion = '3.1.0' - slf4jVersion = '1.7.25' sqlfireclientVersion = '1.0.3' sqliteVersion = '3.20.1' woodstoxVersion = '5.0.3' @@ -285,7 +284,6 @@ project('spring-batch-core') { optional "org.aspectj:aspectjrt:$aspectjVersion" optional "org.aspectj:aspectjweaver:$aspectjVersion" optional "org.springframework:spring-jdbc:$springVersion" - optional "org.slf4j:slf4j-log4j12:$slf4jVersion" optional "org.apache.logging.log4j:log4j-api:$log4jVersion" optional "org.apache.logging.log4j:log4j-core:$log4jVersion" } @@ -327,7 +325,6 @@ project('spring-batch-infrastructure') { testRuntime "org.beanshell:bsh:$beanshellVersion" optional "javax.jms:javax.jms-api:$jmsVersion" - optional "org.slf4j:slf4j-log4j12:$slf4jVersion" optional "com.fasterxml.jackson.core:jackson-databind:${jackson2Version}" compile("org.hibernate:hibernate-core:$hibernateVersion") { dep -> optional dep @@ -464,7 +461,6 @@ project('spring-batch-infrastructure-tests') { testCompile "org.springframework:spring-test:$springVersion" testCompile "org.mockito:mockito-core:$mockitoVersion" - optional "org.slf4j:slf4j-log4j12:$slf4jVersion" compile("org.hibernate:hibernate-core:$hibernateVersion") { dep -> optional dep exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec' @@ -542,7 +538,6 @@ project('spring-batch-integration') { testCompile "org.springframework.integration:spring-integration-jdbc:$springIntegrationVersion" optional "javax.jms:javax.jms-api:$jmsVersion" - optional "org.slf4j:slf4j-log4j12:$slf4jVersion" optional "org.apache.logging.log4j:log4j-api:$log4jVersion" optional "org.apache.logging.log4j:log4j-core:$log4jVersion" optional "org.springframework.integration:spring-integration-jms:$springIntegrationVersion" @@ -609,7 +604,6 @@ project('spring-batch-samples') { provided "javax.servlet:javax.servlet-api:$servletApiVersion" optional "com.vmware.sqlfire:sqlfireclient:$sqlfireclientVersion" - optional "org.slf4j:slf4j-log4j12:$slf4jVersion" optional "org.apache.derby:derby:$derbyVersion" optional "org.postgresql:postgresql:$postgresqlVersion" optional "org.springframework:spring-web:$springVersion" diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/exception/LogOrRethrowExceptionHandlerTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/exception/LogOrRethrowExceptionHandlerTests.java index d67e34702..61dfa04fd 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/exception/LogOrRethrowExceptionHandlerTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/repeat/exception/LogOrRethrowExceptionHandlerTests.java @@ -20,9 +20,16 @@ import java.io.StringWriter; import junit.framework.TestCase; -import org.apache.log4j.Logger; -import org.apache.log4j.SimpleLayout; -import org.apache.log4j.WriterAppender; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.Appender; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.appender.WriterAppender; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.core.layout.PatternLayout; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.springframework.classify.ClassifierSupport; import org.springframework.batch.repeat.RepeatContext; import org.springframework.batch.repeat.exception.LogOrRethrowExceptionHandler.Level; @@ -38,12 +45,17 @@ public class LogOrRethrowExceptionHandlerTests extends TestCase { @Override protected void setUp() throws Exception { super.setUp(); - Logger logger = Logger.getLogger(LogOrRethrowExceptionHandler.class); - logger.setLevel(org.apache.log4j.Level.DEBUG); + Logger logger = LoggerFactory.getLogger(LogOrRethrowExceptionHandler.class); writer = new StringWriter(); - logger.removeAllAppenders(); - logger.getParent().removeAllAppenders(); - logger.addAppender(new WriterAppender(new SimpleLayout(), writer)); + LoggerContext loggerContext = (LoggerContext) LogManager.getContext(); + Configuration configuration = loggerContext.getConfiguration(); + + LoggerConfig rootLoggerConfig = configuration.getLoggerConfig(logger.getName()); + rootLoggerConfig.getAppenders().forEach((name, appender) -> { + rootLoggerConfig.removeAppender(name); + }); + Appender appender = WriterAppender.createAppender(PatternLayout.createDefaultLayout(), null, writer,"TESTWriter", false, false); + rootLoggerConfig.addAppender(appender, org.apache.logging.log4j.Level.DEBUG, null); } public void testRuntimeException() throws Throwable {