Skip to content

Commit

Permalink
[AMQ-8520] WIP: Convert activemq-unit-tests to log4j2
Browse files Browse the repository at this point in the history
  • Loading branch information
mattrpav committed Mar 3, 2022
1 parent c1b3505 commit 7ec5254
Show file tree
Hide file tree
Showing 54 changed files with 886 additions and 623 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,17 @@
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.broker.region.Queue;
import org.apache.activemq.broker.region.Topic;
import org.apache.activemq.broker.region.policy.PolicyEntry;
import org.apache.activemq.broker.region.policy.PolicyMap;
import org.apache.activemq.broker.region.policy.VMPendingQueueMessageStoragePolicy;
import org.apache.activemq.broker.region.policy.VMPendingSubscriberMessageStoragePolicy;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.transport.tcp.TcpTransport;
import org.apache.activemq.util.DefaultTestAppender;
import org.apache.log4j.Appender;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LogEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -261,22 +261,24 @@ public void testDisableWarning() throws Exception {

Appender appender = new DefaultTestAppender() {
@Override
public void doAppend(LoggingEvent event) {
if (event.getLevel().equals(Level.WARN) && event.getMessage().toString().contains("Usage Manager Memory Limit")) {
public void append(LogEvent event) {
if (event.getLevel().equals(Level.WARN) && event.getMessage().getFormattedMessage().contains("Usage Manager Memory Limit")) {
LOG.info("received warn log message: " + event.getMessage());
warnings.incrementAndGet();
}
if (event.getLevel().equals(Level.DEBUG) && event.getMessage().toString().contains("Usage Manager Memory Limit")) {
if (event.getLevel().equals(Level.DEBUG) && event.getMessage().getFormattedMessage().contains("Usage Manager Memory Limit")) {
LOG.info("received debug log message: " + event.getMessage());
debugs.incrementAndGet();
}

}
};
org.apache.log4j.Logger log4jLogger =
org.apache.log4j.Logger.getLogger(Queue.class);
appender.start();

org.apache.logging.log4j.core.Logger log4jLogger = (org.apache.logging.log4j.core.Logger)LogManager.getLogger(Queue.class);
log4jLogger.addAppender(appender);
log4jLogger.setLevel(Level.DEBUG);

try {
ConnectionFactory factory = createConnectionFactory();
connection = (ActiveMQConnection)factory.createConnection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@
import javax.jms.Session;

import junit.framework.Test;
import org.apache.activemq.util.DefaultTestAppender;
import org.apache.log4j.Appender;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.Property;
import org.apache.logging.log4j.core.filter.AbstractFilter;
import org.apache.logging.log4j.core.layout.MessageLayout;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -48,20 +52,22 @@ public void initCombosForTestReconnectMultipleTimesWithSameClientID() {

public void testReconnectMultipleTimesWithSameClientID() throws Exception {

org.apache.log4j.Logger log4jLogger =
org.apache.log4j.Logger.getLogger(org.apache.activemq.broker.jmx.ManagedTransportConnection.class);
final AtomicBoolean failed = new AtomicBoolean(false);

Appender appender = new DefaultTestAppender() {
final var logger = org.apache.logging.log4j.core.Logger.class.cast(LogManager.getLogger((org.apache.activemq.broker.jmx.ManagedTransportConnection.class)));
final var appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
@Override
public void doAppend(LoggingEvent event) {
if (event.getMessage().toString().startsWith("Failed to register MBean")) {
public void append(LogEvent event) {
if (event.getMessage().getFormattedMessage().startsWith("Failed to register MBean")) {
LOG.info("received unexpected log message: " + event.getMessage());
failed.set(true);
}
}
};
log4jLogger.addAppender(appender);
appender.start();

logger.get().addAppender(appender, Level.DEBUG, new AbstractFilter() {});
logger.addAppender(appender);

try {
connection = connectionFactory.createConnection();
useConnection(connection);
Expand All @@ -85,7 +91,7 @@ public void doAppend(LoggingEvent event) {
connection = connectionFactory.createConnection();
useConnection(connection);
} finally {
log4jLogger.removeAppender(appender);
logger.removeAppender(appender);
}
assertFalse("failed on unexpected log event", failed.get());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,39 +18,44 @@
package org.apache.activemq;

import org.apache.activemq.broker.jmx.ManagementContext;
import org.apache.activemq.util.DefaultTestAppender;
import org.apache.activemq.util.Wait;
import org.apache.log4j.Appender;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.Property;
import org.apache.logging.log4j.core.filter.AbstractFilter;
import org.apache.logging.log4j.core.layout.MessageLayout;
import org.junit.*;

import static org.junit.Assert.assertFalse;

import java.util.concurrent.*;

import org.apache.activemq.broker.BrokerService;

import javax.management.JMException;
import javax.management.ObjectName;

public class TcpTransportCloseConnectionTest {

static boolean transportConnectionFailed = false;

static final org.apache.logging.log4j.core.Appender appender;
private BrokerService broker;

private final String uri = "tcp://localhost:0?wireFormat.maxInactivityDuration=500";

static final Appender appender = new DefaultTestAppender() {
@Override
public void doAppend(LoggingEvent event) {
if(event.getMessage().toString().contains("Transport Connection")
&& event.getMessage().toString().contains("failed")
&& (event.getMessage().toString().contains("java.net.SocketException") || event.getMessage().toString().contains("java.io.EOFException"))) {
transportConnectionFailed = true;
static {
appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
@Override
public void append(LogEvent event) {
String message = event.getMessage().getFormattedMessage();
if(message.contains("Transport Connection")
&& message.contains("failed")
&& (message.contains("java.net.SocketException") || message.contains("java.io.EOFException"))) {
transportConnectionFailed = true;
}
}
}
};
};
appender.start();
}

class CustomManagementContext extends ManagementContext {
@Override
Expand All @@ -67,12 +72,12 @@ public void unregisterMBean(ObjectName name) throws JMException {

@BeforeClass
public static void setUp() throws Exception {
org.apache.log4j.Logger.getRootLogger().addAppender(appender);
org.apache.logging.log4j.core.Logger.class.cast(LogManager.getRootLogger()).addAppender(appender);
}

@AfterClass
public static void setDown() throws Exception {
org.apache.log4j.Logger.getRootLogger().removeAppender(appender);
org.apache.logging.log4j.core.Logger.class.cast(LogManager.getRootLogger()).removeAppender(appender);
}

@Before
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.EmbeddedBrokerTestSupport;
import org.apache.activemq.broker.BrokerService;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import org.junit.Test;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -112,7 +113,7 @@ public void testLog4JConfigViewGetLevelUnknownLoggerName() throws Throwable {
String level = log4jConfigView.getLogLevel("not.a.logger");
assertNotNull(level);
assertFalse(level.isEmpty());
assertEquals(Logger.getRootLogger().getLevel().toString(), level);
assertEquals(LogManager.getRootLogger().getLevel().toString(), level);
}

@Test
Expand Down Expand Up @@ -166,7 +167,7 @@ public void testLog4JConfigViewGetRootLogLevel() throws Throwable {
assertNotNull(level);
assertFalse(level.isEmpty());

String currentRootLevel = Logger.getRootLogger().getLevel().toString();
String currentRootLevel = LogManager.getRootLogger().getLevel().toString();
assertEquals(currentRootLevel, level);
}

Expand All @@ -177,12 +178,12 @@ public void testLog4JConfigViewSetRootLevel() throws Throwable {
Log4JConfigViewMBean log4jConfigView = MBeanServerInvocationHandler.newProxyInstance(
mbeanServer, log4jConfigViewName, Log4JConfigViewMBean.class, true);

String currentRootLevel = Logger.getRootLogger().getLevel().toString();
String currentRootLevel = LogManager.getRootLogger().getLevel().toString();
log4jConfigView.setRootLogLevel("WARN");
currentRootLevel = Logger.getRootLogger().getLevel().toString();
currentRootLevel = LogManager.getRootLogger().getLevel().toString();
assertEquals("WARN", currentRootLevel);
log4jConfigView.setRootLogLevel("INFO");
currentRootLevel = Logger.getRootLogger().getLevel().toString();
currentRootLevel = LogManager.getRootLogger().getLevel().toString();
assertEquals("INFO", currentRootLevel);

Level level;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,13 @@
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.activemq.util.DefaultTestAppender;
import org.apache.activemq.util.Wait;
import org.apache.log4j.Appender;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.Property;
import org.apache.logging.log4j.core.filter.AbstractFilter;
import org.apache.logging.log4j.core.layout.MessageLayout;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Expand Down Expand Up @@ -90,20 +94,22 @@ protected BrokerService createBroker() throws Exception {
@Test(timeout = 60000)
public void testClashWithPublishAndGC() throws Exception {

org.apache.log4j.Logger log4jLogger =
org.apache.log4j.Logger.getLogger(RegionBroker.class);
final AtomicBoolean failed = new AtomicBoolean(false);

Appender appender = new DefaultTestAppender() {
final var logger = org.apache.logging.log4j.core.Logger.class.cast(LogManager.getLogger(RegionBroker.class));
final var appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
@Override
public void doAppend(LoggingEvent event) {
if (event.getLevel().equals(Level.ERROR) && event.getMessage().toString().startsWith("Failed to remove inactive")) {
public void append(LogEvent event) {
if (event.getLevel().equals(Level.ERROR) && event.getMessage().getFormattedMessage().startsWith("Failed to remove inactive")) {
logger.info("received unexpected log message: " + event.getMessage());
failed.set(true);
}
}
};
log4jLogger.addAppender(appender);
appender.start();

logger.get().addAppender(appender, Level.DEBUG, new AbstractFilter() {});
logger.addAppender(appender);

try {

final AtomicInteger max = new AtomicInteger(20000);
Expand Down Expand Up @@ -147,7 +153,7 @@ public void run() {
connection.close();

} finally {
log4jLogger.removeAppender(appender);
logger.removeAppender(appender);
}
assertFalse("failed on unexpected log event", failed.get());

Expand All @@ -156,16 +162,14 @@ public void run() {
@Test(timeout = 60000)
public void testAddRemoveWildcardWithGc() throws Exception {

org.apache.log4j.Logger log4jLogger =
org.apache.log4j.Logger.getLogger(RegionBroker.class);
final AtomicBoolean failed = new AtomicBoolean(false);

Appender appender = new DefaultTestAppender() {
final var logger = org.apache.logging.log4j.core.Logger.class.cast(LogManager.getLogger(RegionBroker.class));
final var appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
@Override
public void doAppend(LoggingEvent event) {
if (event.getLevel().equals(Level.ERROR) && event.getMessage().toString().startsWith("Failed to remove inactive")) {
if (event.getThrowableInformation().getThrowable() != null
&& event.getThrowableInformation().getThrowable().getCause() instanceof BrokerStoppedException) {
public void append(LogEvent event) {
if (event.getLevel().equals(Level.ERROR) && event.getMessage().getFormattedMessage().startsWith("Failed to remove inactive")) {
if (event.getThrown() != null
&& event.getThrown().getCause() instanceof BrokerStoppedException) {
// ok
} else {
logger.info("received unexpected log message: " + event.getMessage());
Expand All @@ -174,7 +178,11 @@ public void doAppend(LoggingEvent event) {
}
}
};
log4jLogger.addAppender(appender);
appender.start();

logger.get().addAppender(appender, Level.DEBUG, new AbstractFilter() {});
logger.addAppender(appender);

try {

final AtomicInteger max = new AtomicInteger(10000);
Expand Down Expand Up @@ -241,7 +249,7 @@ public boolean isSatisified() throws Exception {
connection.close();

} finally {
log4jLogger.removeAppender(appender);
logger.removeAppender(appender);
}
assertFalse("failed on unexpected log event", failed.get());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@
import org.apache.activemq.broker.region.policy.PolicyMap;
import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
import org.apache.activemq.util.DefaultTestAppender;
import org.apache.log4j.Appender;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LogEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -108,31 +108,30 @@ private void testPurgeLargeQueue(boolean prioritizedMessages) throws Exception {
QueueViewMBean proxy = getProxyToQueueViewMBean();
LOG.info("purging..");

org.apache.log4j.Logger log4jLogger = org.apache.log4j.Logger.getLogger(org.apache.activemq.broker.jmx.QueueView.class);
org.apache.logging.log4j.core.Logger log4jLogger = (org.apache.logging.log4j.core.Logger)LogManager.getLogger(org.apache.activemq.broker.jmx.QueueView.class);

final AtomicBoolean gotPurgeLogMessage = new AtomicBoolean(false);

Appender appender = new DefaultTestAppender() {
@Override
public void doAppend(LoggingEvent event) {
if (event.getMessage() instanceof String) {
String message = (String) event.getMessage();
public void append(LogEvent event) {
if (event.getMessage() != null) {
String message = event.getMessage().getFormattedMessage();
if (message.contains("purge of " + NUM_TO_SEND +" messages")) {
LOG.info("Received a log message: {} ", event.getMessage());
gotPurgeLogMessage.set(true);
}
}
}
};

Level level = log4jLogger.getLevel();
log4jLogger.setLevel(Level.INFO);
appender.start();
log4jLogger.addAppender(appender);

try {

proxy.purge();

} finally {
log4jLogger.setLevel(level);
log4jLogger.removeAppender(appender);
}

Expand Down
Loading

0 comments on commit 7ec5254

Please sign in to comment.