diff -Naurp parfait-0.5.4.orig/parfait-agent/pom.xml parfait-0.5.4/parfait-agent/pom.xml --- parfait-0.5.4.orig/parfait-agent/pom.xml 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-agent/pom.xml 2021-12-16 14:46:17.702813590 +1100 @@ -142,11 +142,6 @@ ${slf4j.version} - log4j - log4j - ${log4j.version} - - com.fasterxml.jackson.core jackson-core 2.8.8 diff -Naurp parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/AgentMonitoringView.java parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/AgentMonitoringView.java --- parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/AgentMonitoringView.java 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/AgentMonitoringView.java 2021-12-16 14:46:17.702813590 +1100 @@ -48,11 +48,12 @@ import javax.management.ReflectionExcept import javax.management.openmbean.CompositeData; import javax.measure.Unit; -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; class AgentMonitoringView { - private static final Logger logger = Logger.getLogger(ParfaitAgent.class); + private static final Logger logger = LoggerFactory.getLogger(ParfaitAgent.class); private MonitorableRegistry registry = MonitorableRegistry.DEFAULT_REGISTRY; diff -Naurp parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/JmxUtilities.java parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/JmxUtilities.java --- parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/JmxUtilities.java 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/JmxUtilities.java 2021-12-16 14:46:17.703813573 +1100 @@ -29,8 +29,6 @@ import javax.management.remote.JMXConnec import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; -import org.apache.log4j.Logger; - /** * Convenience mechanisms for locating MBeanServer classes. */ diff -Naurp parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/ParfaitAgent.java parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/ParfaitAgent.java --- parfait-0.5.4.orig/parfait-agent/src/main/java/io/pcp/parfait/ParfaitAgent.java 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-agent/src/main/java/io/pcp/parfait/ParfaitAgent.java 2021-12-16 14:49:54.874103371 +1100 @@ -42,10 +42,11 @@ import javax.management.IntrospectionExc import javax.management.MBeanException; import javax.management.MBeanServer; -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ParfaitAgent { - private static final Logger logger = Logger.getLogger(ParfaitAgent.class); + private static final Logger logger = LoggerFactory.getLogger(ParfaitAgent.class); private static final String RESOURCE = "/jvm.json"; private static final String PATHNAME = "/etc/parfait"; diff -Naurp parfait-0.5.4.orig/parfait-core/src/main/java/io/pcp/parfait/QuiescentRegistryListener.java parfait-0.5.4/parfait-core/src/main/java/io/pcp/parfait/QuiescentRegistryListener.java --- parfait-0.5.4.orig/parfait-core/src/main/java/io/pcp/parfait/QuiescentRegistryListener.java 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-core/src/main/java/io/pcp/parfait/QuiescentRegistryListener.java 2021-12-16 14:46:17.703813573 +1100 @@ -20,14 +20,15 @@ import java.util.Timer; import java.util.TimerTask; import com.google.common.base.Supplier; -import org.apache.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Designed to run code after the MonitorableRegistry has become quiet, in terms of addition of new metrics */ public class QuiescentRegistryListener implements MonitorableRegistryListener { - private static final Logger LOG = Logger.getLogger(QuiescentRegistryListener.class); + private static final Logger LOG = LoggerFactory.getLogger(QuiescentRegistryListener.class); private final Scheduler quiescentScheduler; private volatile long lastTimeMonitorableAdded = 0; diff -Naurp parfait-0.5.4.orig/parfait-core/src/main/java/io/pcp/parfait/timing/ThreadContext.java parfait-0.5.4/parfait-core/src/main/java/io/pcp/parfait/timing/ThreadContext.java --- parfait-0.5.4.orig/parfait-core/src/main/java/io/pcp/parfait/timing/ThreadContext.java 2021-12-16 14:45:29.312640302 +1100 +++ parfait-0.5.4/parfait-core/src/main/java/io/pcp/parfait/timing/ThreadContext.java 2021-12-16 14:46:17.703813573 +1100 @@ -95,11 +95,6 @@ public class ThreadContext { * Clears all values for the current thread. */ public void clear() { - - /** - * Unfortunately log4j's MDC historically never had a mechanism to block remove keys, - * so we're forced to do this one by one. - */ for (String key : allKeys()) { mdcBridge.remove(key); } @@ -127,21 +122,18 @@ public class ThreadContext { } /** - * Factory method that creates a new ThreadContext initialized to also update Log4j's MDC. + * Factory methods that create a new ThreadContext initialised to also update SLF4J's MDC */ public static ThreadContext newMDCEnabledContext() { - return new ThreadContext(new Log4jMdcBridge()); + return newSLF4JEnabledContext(); } - /** - * Factory method that creates a new ThreadContext initialised to also update SLF4J's MDC - */ public static ThreadContext newSLF4JEnabledContext() { return new ThreadContext(new Slf4jMDCBridge()); } public interface MdcBridge { - void put(String key, Object object); + void put(String key, Object object); void remove(String key); } @@ -158,18 +150,6 @@ public class ThreadContext { } } - public static class Log4jMdcBridge implements MdcBridge { - @Override - public void put(String key, Object object) { - org.apache.log4j.MDC.put(key, object); - } - - @Override - public void remove(String key) { - org.apache.log4j.MDC.remove(key); - } - } - public static class Slf4jMDCBridge implements MdcBridge { @Override public void put(String key, Object object) { diff -Naurp parfait-0.5.4.orig/parfait-core/src/test/java/io/pcp/parfait/timing/ThreadContextTest.java parfait-0.5.4/parfait-core/src/test/java/io/pcp/parfait/timing/ThreadContextTest.java --- parfait-0.5.4.orig/parfait-core/src/test/java/io/pcp/parfait/timing/ThreadContextTest.java 2017-10-11 11:01:37.000000000 +1100 +++ parfait-0.5.4/parfait-core/src/test/java/io/pcp/parfait/timing/ThreadContextTest.java 2021-12-16 14:46:17.703813573 +1100 @@ -20,7 +20,7 @@ import java.util.Hashtable; import java.util.Map; import java.util.concurrent.CountDownLatch; -import org.apache.log4j.MDC; +import org.slf4j.MDC; import junit.framework.TestCase; @@ -29,11 +29,7 @@ public class ThreadContextTest extends T public void setUp() { context = new ThreadContext(); - - Hashtable hashtable = MDC.getContext(); - if (hashtable != null) { - hashtable.clear(); - } + MDC.clear(); } @@ -86,15 +82,16 @@ public class ThreadContextTest extends T assertNull("get() after clear should return null", context.get(testKey)); } +/* -- Slf4j provides no MDC context API -- public void testClearRemovesMDCValue() { - ThreadContext log4jThreadContext = ThreadContext.newMDCEnabledContext(); + ThreadContext logThreadContext = ThreadContext.newMDCEnabledContext(); Hashtable mdcContext = MDC.getContext(); assertTrue(mdcContext == null || mdcContext.isEmpty()); final String testKey = "painter"; - log4jThreadContext.put(testKey, 7); + logThreadContext.put(testKey, 7); mdcContext = MDC.getContext(); assertEquals(1, mdcContext.size()); @@ -102,7 +99,8 @@ public class ThreadContextTest extends T mdcContext.clear(); assertEquals(0, mdcContext.size()); - log4jThreadContext.clear(); - assertNull("get() after clear should return null", log4jThreadContext.get(testKey)); + logThreadContext.clear(); + assertNull("get() after clear should return null", logThreadContext.get(testKey)); } +*/ } diff -Naurp parfait-0.5.4.orig/pom.xml parfait-0.5.4/pom.xml --- parfait-0.5.4.orig/pom.xml 2021-12-16 14:45:29.313640285 +1100 +++ parfait-0.5.4/pom.xml 2021-12-16 14:50:31.701474201 +1100 @@ -95,7 +95,6 @@ UTF-8 4.2.5.RELEASE 1.6.1 - 1.2.14 1.8 ${jdk.version} ${jdk.version} @@ -323,11 +322,6 @@ org.slf4j slf4j-api ${slf4j.version} - - - log4j - log4j - ${log4j.version} com.google.guava @@ -385,11 +379,6 @@ slf4j-api - log4j - log4j - true - - com.fasterxml.jackson.core jackson-core 2.8.8 diff -Naurp parfait-0.5.4.orig/parfait-agent/src/main/resources/log4j2.xml parfait-0.5.4/parfait-agent/src/main/resources/log4j2.xml --- parfait-0.5.4.orig/parfait-agent/src/main/resources/log4j2.xml 2022-01-10 17:09:09.794017829 +0100 +++ parfait-0.5.4/parfait-agent/src/main/resources/log4j2.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff -Naurp parfait-0.5.4.orig/parfait-agent/src/main/resources/log4j.properties parfait-0.5.4/parfait-agent/src/main/resources/log4j.properties --- parfait-0.5.4.orig/parfait-agent/src/main/resources/log4j.properties 2022-01-10 17:09:09.794017829 +0100 +++ parfait-0.5.4/parfait-agent/src/main/resources/log4j.properties 1970-01-01 01:00:00.000000000 +0100 @@ -1,7 +0,0 @@ -# Set root logger level to ERROR and its only appender to A1. -log4j.rootLogger=warn, A1 - -log4j.appender.A1=org.apache.log4j.ConsoleAppender -log4j.appender.A1.Threshold=warn -log4j.appender.A1.layout=org.apache.log4j.PatternLayout -log4j.appender.A1.layout.ConversionPattern=[%t] %-5p %c %x - %m%n