[maven-release-plugin] copy for tag log4j-2.0-beta4
git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/log4j2/tags/log4j-2.0-beta4@1439285 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index f6099d0..a784a68 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -22,6 +22,7 @@
o Added Flume Appender samples.
Fixed Bugs:
+o LOG4J2-156: LocalizedMessageTest fails on linux system. Thanks to Andreas Born.
o LOG4J2-152: RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified
on the target file name. Thanks to Remko Popma.
o LOG4J2-150: Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions.
diff --git a/api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java b/api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
index c7a6977..9c3f1b8 100644
--- a/api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
+++ b/api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
@@ -57,7 +57,8 @@
int index = -1;
if (name != null) {
if (name.length() > MAX_LENGTH) {
- throw new IllegalArgumentException("Length of id exceeds maximum of 32 characters: " + name);
+ throw new IllegalArgumentException(String.format("Length of id %s exceeds maximum of %d characters",
+ MAX_LENGTH, name));
}
index = name.indexOf("@");
}
diff --git a/api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageTest.java b/api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageTest.java
index d1b030e..8d1c67e 100644
--- a/api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageTest.java
+++ b/api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageTest.java
@@ -33,7 +33,7 @@
@Test
public void testMessageFormat() {
- final LocalizedMessage msg = new LocalizedMessage("MF", new Locale("en_US"), "msg1", new Object[] {"1", "Test"});
+ final LocalizedMessage msg = new LocalizedMessage("MF", new Locale("en", "US"), "msg1", new Object[] {"1", "Test"});
final String result = msg.getFormattedMessage();
final String expected = "This is test number 1 with string argument Test.";
assertTrue(expected.equals(result));
@@ -42,7 +42,7 @@
@Test
public void testStringFormat() {
- final LocalizedMessage msg = new LocalizedMessage("SF", new Locale("en_US"), "msg1", new Object[] {"1", "Test"});
+ final LocalizedMessage msg = new LocalizedMessage("SF", new Locale("en", "US"), "msg1", new Object[] {"1", "Test"});
final String result = msg.getFormattedMessage();
final String expected = "This is test number 1 with string argument Test.";
assertTrue(expected.equals(result));
diff --git a/core/src/main/java/org/apache/logging/log4j/core/Logger.java b/core/src/main/java/org/apache/logging/log4j/core/Logger.java
index 2185629..429f4c2 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/Logger.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/Logger.java
@@ -16,6 +16,11 @@
*/
package org.apache.logging.log4j.core;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.core.config.Configuration;
@@ -26,11 +31,6 @@
import org.apache.logging.log4j.message.SimpleMessage;
import org.apache.logging.log4j.spi.AbstractLogger;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
/**
* @doubt All the isEnabled methods could be pushed into a filter interface. Not sure of the utility of having
* isEnabled be able to examine the message pattern and parameters. (RG) Moving the isEnabled methods out of
@@ -137,7 +137,7 @@
* This method is not exposed through the public API and is used primarily for unit testing.
* @param appender The Appender to add to the Logger.
*/
- public void addAppender(final Appender appender) {
+ public void addAppender(final Appender<?> appender) {
config.config.addLoggerAppender(this, appender);
}
@@ -145,7 +145,7 @@
* This method is not exposed through the public API and is used primarily for unit testing.
* @param appender The Appender to remove from the Logger.
*/
- public void removeAppender(final Appender appender) {
+ public void removeAppender(final Appender<?> appender) {
config.loggerConfig.removeAppender(appender.getName());
}
@@ -153,7 +153,7 @@
* This method is not exposed through the public API and is used primarily for unit testing.
* @return A Map containing the Appender's name as the key and the Appender as the value.
*/
- public Map<String, Appender> getAppenders() {
+ public Map<String, Appender<?>> getAppenders() {
return config.loggerConfig.getAppenders();
}
diff --git a/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java b/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
index 9d43818..73f8ab2 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/appender/AsynchAppender.java
@@ -72,7 +72,7 @@
@Override
public void start() {
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
final List<AppenderControl> appenders = new ArrayList<AppenderControl>();
for (final AppenderRef appenderRef : appenderRefs) {
if (map.containsKey(appenderRef.getRef())) {
diff --git a/core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java b/core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
index a12b0a9..200942b 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/appender/FailoverAppender.java
@@ -71,7 +71,7 @@
@Override
public void start() {
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
int errors = 0;
if (map.containsKey(primaryRef)) {
primary = new AppenderControl(map.get(primaryRef), null, null);
diff --git a/core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java b/core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
index 554b050..ebe9734 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppender.java
@@ -54,7 +54,7 @@
@Override
public void start() {
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
for (final AppenderRef ref : appenderRefs) {
final String name = ref.getRef();
final Appender appender = map.get(name);
diff --git a/core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java b/core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
index a670dde..1a7b6af 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/appender/routing/RoutingAppender.java
@@ -72,7 +72,7 @@
@Override
public void start() {
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
// Register all the static routes.
for (final Route route : routes.getRoutes()) {
if (route.getAppenderRef() != null) {
@@ -91,7 +91,7 @@
@Override
public void stop() {
super.stop();
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
for (final Map.Entry<String, AppenderControl> entry : appenders.entrySet()) {
final String name = entry.getValue().getAppender().getName();
if (!map.containsKey(name)) {
diff --git a/core/src/main/java/org/apache/logging/log4j/core/config/BaseConfiguration.java b/core/src/main/java/org/apache/logging/log4j/core/config/BaseConfiguration.java
index aa6dc3d..f6cf6f0 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/config/BaseConfiguration.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/config/BaseConfiguration.java
@@ -85,7 +85,7 @@
private String name;
- private ConcurrentMap<String, Appender> appenders = new ConcurrentHashMap<String, Appender>();
+ private ConcurrentMap<String, Appender<?>> appenders = new ConcurrentHashMap<String, Appender<?>>();
private ConcurrentMap<String, LoggerConfig> loggers = new ConcurrentHashMap<String, LoggerConfig>();
@@ -176,7 +176,7 @@
subst.setVariableResolver(new Interpolator(lookup));
}
if (child.getName().equalsIgnoreCase("appenders")) {
- appenders = (ConcurrentMap<String, Appender>) child.getObject();
+ appenders = (ConcurrentMap<String, Appender<?>>) child.getObject();
} else if (child.getObject() instanceof Filter) {
addFilter((Filter) child.getObject());
} else if (child.getName().equalsIgnoreCase("loggers")) {
@@ -283,9 +283,9 @@
/**
* Returns a Map containing all the Appenders and their name.
- * @return A Map containing each Appender's naem and the Appender object.
+ * @return A Map containing each Appender's name and the Appender object.
*/
- public Map<String, Appender> getAppenders() {
+ public Map<String, Appender<?>> getAppenders() {
return appenders;
}
diff --git a/core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java b/core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
index 0cdde27..057747a 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/config/Configuration.java
@@ -49,13 +49,13 @@
/**
* Returns a Map containing all the Appenders and their name.
- * @return A Map containing each Appender's naem and the Appender object.
+ * @return A Map containing each Appender's name and the Appender object.
*/
- Map<String, Appender> getAppenders();
+ Map<String, Appender<?>> getAppenders();
Map<String, LoggerConfig> getLoggers();
- void addLoggerAppender(Logger logger, Appender appender);
+ void addLoggerAppender(Logger logger, Appender<?> appender);
void addLoggerFilter(Logger logger, Filter filter);
diff --git a/core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
index dd4aea9..2a666fe 100644
--- a/core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
+++ b/core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
@@ -56,7 +56,7 @@
private static final long WAIT_TIME = 1000;
private List<AppenderRef> appenderRefs = new ArrayList<AppenderRef>();
- private final Map<String, AppenderControl> appenders = new ConcurrentHashMap<String, AppenderControl>();
+ private final Map<String, AppenderControl<?>> appenders = new ConcurrentHashMap<String, AppenderControl<?>>();
private final String name;
private LogEventFactory logEventFactory;
private Level level;
@@ -168,9 +168,9 @@
* Returns all Appenders as a Map.
* @return a Map with the Appender name as the key and the Appender as the value.
*/
- public Map<String, Appender> getAppenders() {
- final Map<String, Appender> map = new HashMap<String, Appender>();
- for (final Map.Entry<String, AppenderControl> entry : appenders.entrySet()) {
+ public Map<String, Appender<?>> getAppenders() {
+ final Map<String, Appender<?>> map = new HashMap<String, Appender<?>>();
+ for (final Map.Entry<String, AppenderControl<?>> entry : appenders.entrySet()) {
map.put(entry.getKey(), entry.getValue().getAppender());
}
return map;
@@ -181,10 +181,10 @@
*/
protected void clearAppenders() {
waitForCompletion();
- final Collection<AppenderControl> controls = appenders.values();
- final Iterator<AppenderControl> iterator = controls.iterator();
+ final Collection<AppenderControl<?>> controls = appenders.values();
+ final Iterator<AppenderControl<?>> iterator = controls.iterator();
while (iterator.hasNext()) {
- final AppenderControl ctl = iterator.next();
+ final AppenderControl<?> ctl = iterator.next();
iterator.remove();
cleanupFilter(ctl);
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java b/core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java
index dbe33dc..a1897f8 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/AppenderRefLevelTest.java
@@ -49,7 +49,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("LIST1")) {
app1 = (ListAppender) entry.getValue();
} else if (entry.getKey().equals("LIST2")) {
diff --git a/core/src/test/java/org/apache/logging/log4j/core/FileConfigTest.java b/core/src/test/java/org/apache/logging/log4j/core/FileConfigTest.java
index a01ec42..7dd21b8 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/FileConfigTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/FileConfigTest.java
@@ -60,7 +60,7 @@
@Before
public void before() {
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java b/core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
index e091a1c..11764d4 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
@@ -72,7 +72,7 @@
@Before
public void before() {
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
} else if (entry.getKey().equals("HostTest")) {
diff --git a/core/src/test/java/org/apache/logging/log4j/core/StrictXMLConfigTest.java b/core/src/test/java/org/apache/logging/log4j/core/StrictXMLConfigTest.java
index 9828041..6c58a28 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/StrictXMLConfigTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/StrictXMLConfigTest.java
@@ -50,7 +50,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/AsynchAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/AsynchAppenderTest.java
index 1042fa3..4c57fa0 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/AsynchAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/AsynchAppenderTest.java
@@ -49,7 +49,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/FailoverAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/FailoverAppenderTest.java
index e7cf77a..efac36e 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/FailoverAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/FailoverAppenderTest.java
@@ -50,7 +50,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
} else if (entry.getKey().equals("Once")) {
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java
index 7658eb1..6872e8a 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderTest.java
@@ -82,9 +82,9 @@
@After
public void teardown() {
- final Map<String,Appender> map = root.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = root.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
root.removeAppender(app);
app.stop();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTest.java
index e375a6f..109b18f 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/SyslogAppenderTest.java
@@ -85,9 +85,9 @@
@After
public void teardown() {
- final Map<String,Appender> map = root.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = root.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
root.removeAppender(app);
app.stop();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppenderTest.java
index 023163f..5fabe6e 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/rewrite/RewriteAppenderTest.java
@@ -56,7 +56,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
} else if (entry.getKey().equals("List2")) {
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppender2Test.java b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppender2Test.java
index d6cbdc8..bef69af 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppender2Test.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppender2Test.java
@@ -51,7 +51,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppenderTest.java
index 622c5b5..6110595 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/JSONRoutingAppenderTest.java
@@ -51,7 +51,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
index 8fbbde1..3ecb3e4 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/appender/routing/RoutingAppenderTest.java
@@ -51,7 +51,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/config/TestConfigurator.java b/core/src/test/java/org/apache/logging/log4j/core/config/TestConfigurator.java
index 317f6d4..448a2b3 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/config/TestConfigurator.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/config/TestConfigurator.java
@@ -71,7 +71,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
Configurator.shutdown(ctx);
@@ -91,7 +91,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
Configurator.shutdown(ctx);
@@ -111,7 +111,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
Configurator.shutdown(ctx);
@@ -128,7 +128,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
Configurator.shutdown(ctx);
@@ -145,7 +145,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
Configurator.shutdown(ctx);
@@ -164,7 +164,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
diff --git a/core/src/test/java/org/apache/logging/log4j/core/config/XMLConfigurationTest.java b/core/src/test/java/org/apache/logging/log4j/core/config/XMLConfigurationTest.java
index 9110648..0dea8c8 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/config/XMLConfigurationTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/config/XMLConfigurationTest.java
@@ -81,7 +81,7 @@
final Iterator<Filter> iter = l.getFilters();
final Filter filter = iter.next();
assertTrue(filter instanceof ThreadContextMapFilter);
- final Map<String, Appender> appenders = l.getAppenders();
+ final Map<String, Appender<?>> appenders = l.getAppenders();
assertNotNull(appenders);
assertTrue("number of appenders = " + appenders.size(), appenders.size() == 1);
final Appender a = appenders.get("STDOUT");
@@ -92,7 +92,7 @@
public void testConfiguredAppenders() {
final LoggerContext ctx = (LoggerContext) LogManager.getContext();
final Configuration c = ctx.getConfiguration();
- final Map<String, Appender> apps = c.getAppenders();
+ final Map<String, Appender<?>> apps = c.getAppenders();
assertNotNull(apps);
assertEquals(apps.size(), 3);
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/config/XMLLoggerPropsTest.java b/core/src/test/java/org/apache/logging/log4j/core/config/XMLLoggerPropsTest.java
index 720e0e1..6fdc7c4 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/config/XMLLoggerPropsTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/config/XMLLoggerPropsTest.java
@@ -48,7 +48,7 @@
System.setProperty("test", "test");
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/filter/BurstFilterTest.java b/core/src/test/java/org/apache/logging/log4j/core/filter/BurstFilterTest.java
index 2384d11..974e815 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/filter/BurstFilterTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/filter/BurstFilterTest.java
@@ -49,7 +49,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("ListAppender")) {
app = (ListAppender) entry.getValue();
filter = (BurstFilter) app.getFilter();
diff --git a/core/src/test/java/org/apache/logging/log4j/core/filter/MapFilterTest.java b/core/src/test/java/org/apache/logging/log4j/core/filter/MapFilterTest.java
index 0a0f590..5cd4a7a 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/filter/MapFilterTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/filter/MapFilterTest.java
@@ -96,7 +96,7 @@
final Map<String, String> eventMap = new HashMap<String, String>();
eventMap.put("eventId", "Login");
logger.debug(new MapMessage(eventMap));
- final Map<String,Appender> appenders = config.getAppenders();
+ final Map<String,Appender<?>> appenders = config.getAppenders();
final Appender app = appenders.get("LIST");
assertNotNull("No List appender", app);
final List<String> msgs = ((ListAppender) app).getMessages();
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java
index f458549..8de4916 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java
@@ -78,7 +78,7 @@
public void testConfiguration() throws Exception {
final LoggerContext ctx = (LoggerContext) LogManager.getContext();
final Configuration config = ctx.getConfiguration();
- final Map<String, Appender> appenders = config.getAppenders();
+ final Map<String, Appender<?>> appenders = config.getAppenders();
assertTrue(appenders.containsKey("JMSQueue"));
}
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueFailoverTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueFailoverTest.java
index 1bd3419..6695efb 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueFailoverTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueFailoverTest.java
@@ -78,7 +78,7 @@
@Before
public void before() {
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
index b83d9f0..1fab864 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
@@ -83,9 +83,9 @@
@After
public void teardown() {
- final Map<String,Appender> map = root.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = root.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
root.removeAppender(app);
app.stop();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicFailoverTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicFailoverTest.java
index 63c81a3..0a9e9f4 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicFailoverTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicFailoverTest.java
@@ -77,7 +77,7 @@
@Before
public void before() {
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
break;
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java
index a03af18..a41187e 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java
@@ -83,9 +83,9 @@
@After
public void teardown() {
- final Map<String,Appender> map = root.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = root.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
root.removeAppender(app);
app.stop();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/net/SocketServerTest.java b/core/src/test/java/org/apache/logging/log4j/core/net/SocketServerTest.java
index 459085b..91c2e0a 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/net/SocketServerTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/net/SocketServerTest.java
@@ -79,9 +79,9 @@
@After
public void teardown() {
- final Map<String,Appender> map = root.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = root.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
root.removeAppender(app);
app.stop();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/pattern/ExtendedThrowableTest.java b/core/src/test/java/org/apache/logging/log4j/core/pattern/ExtendedThrowableTest.java
index 5730b6a..a7b8906 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/pattern/ExtendedThrowableTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/pattern/ExtendedThrowableTest.java
@@ -46,7 +46,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java b/core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
index 8fe2fe1..697471f 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/pattern/RegexReplacementTest.java
@@ -53,7 +53,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/pattern/RootThrowableTest.java b/core/src/test/java/org/apache/logging/log4j/core/pattern/RootThrowableTest.java
index eecce6f..c19aa5f 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/pattern/RootThrowableTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/pattern/RootThrowableTest.java
@@ -47,7 +47,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
}
diff --git a/core/src/test/java/org/apache/logging/log4j/core/pattern/StyleConverterTest.java b/core/src/test/java/org/apache/logging/log4j/core/pattern/StyleConverterTest.java
index 74a29b2..55cc4b5 100644
--- a/core/src/test/java/org/apache/logging/log4j/core/pattern/StyleConverterTest.java
+++ b/core/src/test/java/org/apache/logging/log4j/core/pattern/StyleConverterTest.java
@@ -53,7 +53,7 @@
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
config = ctx.getConfiguration();
- for (final Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
+ for (final Map.Entry<String, Appender<?>> entry : config.getAppenders().entrySet()) {
if (entry.getKey().equals("List")) {
app = (ListAppender) entry.getValue();
}
diff --git a/flume-ng/pom.xml b/flume-ng/pom.xml
index e4644c1..f4010c0 100644
--- a/flume-ng/pom.xml
+++ b/flume-ng/pom.xml
@@ -32,7 +32,7 @@
<log4jParentDir>${basedir}/..</log4jParentDir>
<docLabel>Flume Documentation</docLabel>
<projectDir>/flume-ng</projectDir>
- <flumeVersion>1.3.1</flumeVersion>
+ <flumeVersion>1.2.0</flumeVersion>
</properties>
<dependencies>
<dependency>
diff --git a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
index 9b5f7e5..c792898 100644
--- a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
+++ b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
@@ -132,11 +132,11 @@
String msg = "No Flume agents are available";
if (client != null) {
final AvroFlumeEvent avroEvent = new AvroFlumeEvent();
- avroEvent.body = ByteBuffer.wrap(event.getBody());
- avroEvent.headers = new HashMap<CharSequence, CharSequence>();
+ avroEvent.setBody(ByteBuffer.wrap(event.getBody()));
+ avroEvent.setHeaders(new HashMap<CharSequence, CharSequence>());
for (final Map.Entry<String, String> entry : event.getHeaders().entrySet()) {
- avroEvent.headers.put(entry.getKey(), entry.getValue());
+ avroEvent.getHeaders().put(entry.getKey(), entry.getValue());
}
final List<AvroFlumeEvent> batch = batchSize > 1 ? events.addAndGet(avroEvent, batchSize) : null;
diff --git a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeConfigurationBuilder.java b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeConfigurationBuilder.java
index 874d241..abd572b 100644
--- a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeConfigurationBuilder.java
+++ b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeConfigurationBuilder.java
@@ -111,7 +111,7 @@
loadSources(agentConf, conf);
loadSinks(agentConf, conf);
- configurationAware.startAllComponents(conf);
+ //configurationAware.startAllComponents(conf);
} else {
LOGGER.warn("No configuration found for: {}", name);
}
diff --git a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
index 5b02c01..512c51a 100644
--- a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
+++ b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
@@ -17,15 +17,13 @@
package org.apache.logging.log4j.flume.appender;
import org.apache.flume.SourceRunner;
-import org.apache.flume.lifecycle.LifecycleController;
-import org.apache.flume.lifecycle.LifecycleState;
import org.apache.flume.node.NodeConfiguration;
import org.apache.flume.node.nodemanager.DefaultLogicalNodeManager;
import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.config.ConfigurationException;
import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.core.helpers.Constants;
import org.apache.logging.log4j.core.helpers.NameUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
import java.util.Locale;
import java.util.Properties;
@@ -40,6 +38,10 @@
private static ManagerFactory factory = new FlumeManagerFactory();
+ private static final String FiLE_SEP = PropertiesUtil.getProperties().getStringProperty("file.separator");
+
+ private static final String IN_MEMORY = "InMemory";
+
private final FlumeNode node;
private NodeConfiguration conf;
@@ -173,10 +175,9 @@
final FlumeConfigurationBuilder builder = new FlumeConfigurationBuilder();
final NodeConfiguration conf = builder.load(data.name, props, nodeManager);
- final FlumeNode node = new FlumeNode(nodeManager, conf);
+ final FlumeNode node = new FlumeNode(nodeManager, nodeManager, conf);
node.start();
- LifecycleController.waitForOneOf(node, LifecycleState.START_OR_ERROR);
return new FlumeEmbeddedManager(name, data.name, node);
} catch (final Exception ex) {
@@ -202,15 +203,26 @@
if (agents != null && agents.length > 0) {
props.put(name + ".sources", FlumeEmbeddedManager.SOURCE_NAME);
props.put(name + ".sources." + FlumeEmbeddedManager.SOURCE_NAME + ".type", SOURCE_TYPE);
- props.put(name + ".channels", "file");
- props.put(name + ".channels.file.type", "file");
+
if (dataDir != null && dataDir.length() > 0) {
- if (!dataDir.endsWith(Constants.LINE_SEP)) {
- dataDir = dataDir + Constants.LINE_SEP;
+ if (dataDir.equals(IN_MEMORY)) {
+ props.put(name + ".channels", "primary");
+ props.put(name + ".channels.primary.type", "memory");
+ } else {
+ props.put(name + ".channels", "primary");
+ props.put(name + ".channels.primary.type", "file");
+
+ if (!dataDir.endsWith(FiLE_SEP)) {
+ dataDir = dataDir + FiLE_SEP;
+ }
+
+ props.put(name + ".channels.primary.checkpointDir", dataDir + "checkpoint");
+ props.put(name + ".channels.primary.dataDirs", dataDir + "data");
}
- props.put(name + ".channels.file.checkpointDir", dataDir + "checkpoint");
- props.put(name + ".channels.file.dataDirs", dataDir + "data");
+ } else {
+ props.put(name + ".channels", "primary");
+ props.put(name + ".channels.primary.type", "file");
}
final StringBuilder sb = new StringBuilder();
@@ -220,7 +232,7 @@
sb.append(leading).append("agent").append(i);
leading = " ";
final String prefix = name + ".sinks.agent" + i;
- props.put(prefix + ".channel", "file");
+ props.put(prefix + ".channel", "primary");
props.put(prefix + ".type", "avro");
props.put(prefix + ".hostname", agents[i].getHost());
props.put(prefix + ".port", Integer.toString(agents[i].getPort()));
@@ -232,7 +244,7 @@
props.put(name + ".sinkgroups", "group1");
props.put(name + ".sinkgroups.group1.sinks", sb.toString());
props.put(name + ".sinkgroups.group1.processor.type", "failover");
- final String sourceChannels = "file";
+ final String sourceChannels = "primary";
props.put(name + ".channels", sourceChannels);
props.put(name + ".sources." + FlumeEmbeddedManager.SOURCE_NAME + ".channels", sourceChannels);
} else {
@@ -285,7 +297,7 @@
String sourceChannels = channels;
if (channels == null) {
- sourceChannels = "file";
+ sourceChannels = "primary";
props.put(name + ".channels", sourceChannels);
}
diff --git a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeNode.java b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeNode.java
index 0d7481c..2628270 100644
--- a/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeNode.java
+++ b/flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeNode.java
@@ -19,9 +19,9 @@
import com.google.common.base.Preconditions;
import org.apache.flume.lifecycle.LifecycleAware;
import org.apache.flume.lifecycle.LifecycleState;
-import org.apache.flume.lifecycle.LifecycleSupervisor;
import org.apache.flume.node.NodeConfiguration;
import org.apache.flume.node.NodeManager;
+import org.apache.flume.node.nodemanager.NodeConfigurationAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,25 +34,23 @@
private LifecycleState lifecycleState;
private final NodeManager nodeManager;
- private final LifecycleSupervisor supervisor;
+ private final NodeConfigurationAware configurationAware;
private final NodeConfiguration conf;
- public FlumeNode(final NodeManager manager, final NodeConfiguration conf) {
+ public FlumeNode(final NodeConfigurationAware configurationAware, final NodeManager manager,
+ final NodeConfiguration conf) {
this.nodeManager = manager;
this.conf = conf;
- supervisor = new LifecycleSupervisor();
+ this.configurationAware = configurationAware;
}
public void start() {
Preconditions.checkState(nodeManager != null, "Node manager can not be null");
- supervisor.start();
-
LOGGER.info("Flume node starting");
- supervisor.supervise(nodeManager,
- new LifecycleSupervisor.SupervisorPolicy.AlwaysRestartPolicy(), LifecycleState.START);
+ configurationAware.startAllComponents(conf);
lifecycleState = LifecycleState.START;
}
@@ -61,7 +59,7 @@
LOGGER.info("Flume node stopping");
- supervisor.stop();
+ configurationAware.stopAllComponents();
lifecycleState = LifecycleState.STOP;
}
@@ -77,5 +75,4 @@
public LifecycleState getLifecycleState() {
return lifecycleState;
}
-
}
diff --git a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeAppenderTest.java b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeAppenderTest.java
index 3150d2b..cc2b02c 100644
--- a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeAppenderTest.java
+++ b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeAppenderTest.java
@@ -372,17 +372,16 @@
private void removeAppenders(final Logger logger) {
- final Map<String,Appender> map = logger.getAppenders();
- for (final Map.Entry<String, Appender> entry : map.entrySet()) {
- final Appender app = entry.getValue();
+ final Map<String,Appender<?>> map = logger.getAppenders();
+ for (final Map.Entry<String, Appender<?>> entry : map.entrySet()) {
+ final Appender<?> app = entry.getValue();
avroLogger.removeAppender(app);
app.stop();
}
}
- private Appender getAppender(final Logger logger, final String name) {
- final Map<String,Appender> map = logger.getAppenders();
- return map.get(name);
+ private Appender<?> getAppender(final Logger logger, final String name) {
+ return logger.getAppenders().get(name);
}
private String getBody(final Event event) throws IOException {
diff --git a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
index 1ce837a..f2a9322 100644
--- a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
+++ b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
@@ -16,18 +16,16 @@
*/
package org.apache.logging.log4j.flume.appender;
-import org.apache.flume.Channel;
-import org.apache.flume.ChannelSelector;
-import org.apache.flume.Context;
+import com.google.common.base.Preconditions;
+import org.apache.avro.AvroRemoteException;
+import org.apache.avro.ipc.NettyServer;
+import org.apache.avro.ipc.Responder;
+import org.apache.avro.ipc.specific.SpecificResponder;
import org.apache.flume.Event;
-import org.apache.flume.Transaction;
-import org.apache.flume.channel.ChannelProcessor;
-import org.apache.flume.channel.MemoryChannel;
-import org.apache.flume.channel.ReplicatingChannelSelector;
-import org.apache.flume.conf.Configurables;
-import org.apache.flume.lifecycle.LifecycleController;
-import org.apache.flume.lifecycle.LifecycleState;
-import org.apache.flume.source.AvroSource;
+import org.apache.flume.event.EventBuilder;
+import org.apache.flume.source.avro.AvroFlumeEvent;
+import org.apache.flume.source.avro.AvroSourceProtocol;
+import org.apache.flume.source.avro.Status;
import org.apache.logging.log4j.EventLogger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -50,9 +48,15 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Queue;
import java.util.Set;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
import java.util.zip.GZIPInputStream;
/**
@@ -60,17 +64,11 @@
*/
public class FlumeEmbeddedAgentTest {
private static final String CONFIG = "default_embedded.xml";
+ private static final String HOSTNAME = "localhost";
private static LoggerContext ctx;
- private static final int testServerPort = 12345;
-
- private AvroSource primarySource;
- private AvroSource altSource;
- private Channel primaryChannel;
- private Channel alternateChannel;
-
- private String testPort;
- private String altPort;
+ private EventCollector primary;
+ private EventCollector alternate;
@BeforeClass
public static void setupClass() {
@@ -88,57 +86,19 @@
@Before
public void setUp() throws Exception {
+
final File file = new File("target/file-channel");
final boolean result = deleteFiles(file);
- primarySource = new AvroSource();
- primarySource.setName("Primary");
- altSource = new AvroSource();
- altSource.setName("Alternate");
- primaryChannel = new MemoryChannel();
- primaryChannel.setName("Primary Memory");
- alternateChannel = new MemoryChannel();
- alternateChannel.setName("Alternate Memory");
-
- Configurables.configure(primaryChannel, new Context());
- Configurables.configure(alternateChannel, new Context());
/*
* Clear out all other appenders associated with this logger to ensure we're
* only hitting the Avro appender.
*/
- Context context = new Context();
- testPort = String.valueOf(testServerPort);
- context.put("port", testPort);
- context.put("bind", "localhost");
- Configurables.configure(primarySource, context);
-
- context = new Context();
- altPort = String.valueOf(testServerPort + 1);
- context.put("port", altPort);
- context.put("bind", "localhost");
- Configurables.configure(altSource, context);
-
- final List<Channel> channels = new ArrayList<Channel>();
- channels.add(primaryChannel);
-
- final ChannelSelector primaryCS = new ReplicatingChannelSelector();
- primaryCS.setChannels(channels);
-
- final List<Channel> altChannels = new ArrayList<Channel>();
- altChannels.add(alternateChannel);
-
- final ChannelSelector alternateCS = new ReplicatingChannelSelector();
- alternateCS.setChannels(altChannels);
-
- primarySource.setChannelProcessor(new ChannelProcessor(primaryCS));
- altSource.setChannelProcessor(new ChannelProcessor(alternateCS));
-
- primarySource.start();
- altSource.start();
-
- Assert.assertTrue("Reached start or error", LifecycleController.waitForOneOf(
- primarySource, LifecycleState.START_OR_ERROR));
- Assert.assertEquals("Server is started", LifecycleState.START, primarySource.getLifecycleState());
+ int[] ports = findFreePorts(2);
+ System.setProperty("primaryPort", Integer.toString(ports[0]));
+ System.setProperty("alternatePort", Integer.toString(ports[1]));
+ primary = new EventCollector(ports[0]);
+ alternate = new EventCollector(ports[1]);
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
ctx.reconfigure();
@@ -148,12 +108,8 @@
public void teardown() throws Exception {
System.clearProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
ctx.reconfigure();
- primarySource.stop();
- altSource.stop();
- Assert.assertTrue("Reached stop or error",
- LifecycleController.waitForOneOf(primarySource, LifecycleState.STOP_OR_ERROR));
- Assert.assertEquals("Server is stopped", LifecycleState.STOP,
- primarySource.getLifecycleState());
+ primary.stop();
+ alternate.stop();
final File file = new File("target/file-channel");
final boolean result = deleteFiles(file);
final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
@@ -173,18 +129,11 @@
final StructuredDataMessage msg = new StructuredDataMessage("Test", "Test Log4j", "Test");
EventLogger.logEvent(msg);
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
+ final Event event = primary.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith("Test Log4j"));
- transaction.commit();
- transaction.close();
-
- primarySource.stop();
}
@Test
@@ -195,20 +144,13 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
- Assert.assertNotNull("Missing event number " + i + 1, event);
+ final Event event = primary.poll();
+ Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Multiple " + i;
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
-
- primarySource.stop();
}
@@ -221,22 +163,18 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
+ final Event event = primary.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Primary " + i;
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
// Give the AvroSink time to receive notification and notify the channel.
Thread.sleep(500);
- primarySource.stop();
+
+ primary.stop();
for (int i = 0; i < 10; ++i) {
@@ -244,10 +182,7 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = alternateChannel.getTransaction();
- transaction.begin();
-
- final Event event = alternateChannel.take();
+ final Event event = alternate.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Alternate " + i;
@@ -255,8 +190,6 @@
the failover, which fails this test */
Assert.assertTrue("Channel contained event, but not expected message. Expected: " + expected +
" Received: " + body, body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
}
@@ -287,4 +220,79 @@
return result &= file.delete();
}
-}
+
+ private static class EventCollector implements AvroSourceProtocol {
+ private final LinkedBlockingQueue<AvroFlumeEvent> eventQueue = new LinkedBlockingQueue<AvroFlumeEvent>();
+
+ private final NettyServer nettyServer;
+
+
+ public EventCollector(int port) {
+ Responder responder = new SpecificResponder(AvroSourceProtocol.class, this);
+ nettyServer = new NettyServer(responder, new InetSocketAddress(HOSTNAME, port));
+ nettyServer.start();
+ }
+
+ public void stop() {
+ nettyServer.close();
+ }
+
+ public Event poll() {
+
+ AvroFlumeEvent avroEvent = null;
+ try {
+ avroEvent = eventQueue.poll(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException ie) {
+ // Ignore the exception.
+ }
+ if (avroEvent != null) {
+ return EventBuilder.withBody(avroEvent.getBody().array(),
+ toStringMap(avroEvent.getHeaders()));
+ } else {
+ System.out.println("No Event returned");
+ }
+ return null;
+ }
+
+ public Status append(AvroFlumeEvent event) throws AvroRemoteException {
+ eventQueue.add(event);
+ return Status.OK;
+ }
+
+ public Status appendBatch(List<AvroFlumeEvent> events)
+ throws AvroRemoteException {
+ Preconditions.checkState(eventQueue.addAll(events));
+ return Status.OK;
+ }
+ }
+
+ private static Map<String, String> toStringMap(Map<CharSequence, CharSequence> charSeqMap) {
+ Map<String, String> stringMap = new HashMap<String, String>();
+ for (Map.Entry<CharSequence, CharSequence> entry : charSeqMap.entrySet()) {
+ stringMap.put(entry.getKey().toString(), entry.getValue().toString());
+ }
+ return stringMap;
+ }
+
+ private static int[] findFreePorts(int count) throws IOException {
+ int[] ports = new int[count];
+ ServerSocket[] sockets = new ServerSocket[count];
+ try {
+ for (int i = 0; i < count; ++i) {
+ sockets[i] = new ServerSocket(0);
+ ports[i] = sockets[i].getLocalPort();
+ }
+ } finally {
+ for (int i = 0; i < count; ++i) {
+ if (sockets[i] != null) {
+ try {
+ sockets[i].close();
+ } catch (Exception ex) {
+ // Ignore the error.
+ }
+ }
+ }
+ }
+ return ports;
+ }
+}
\ No newline at end of file
diff --git a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
index eda590c..011c3bd 100644
--- a/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
+++ b/flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
@@ -16,18 +16,16 @@
*/
package org.apache.logging.log4j.flume.appender;
-import org.apache.flume.Channel;
-import org.apache.flume.ChannelSelector;
-import org.apache.flume.Context;
+import com.google.common.base.Preconditions;
+import org.apache.avro.AvroRemoteException;
+import org.apache.avro.ipc.NettyServer;
+import org.apache.avro.ipc.Responder;
+import org.apache.avro.ipc.specific.SpecificResponder;
import org.apache.flume.Event;
-import org.apache.flume.Transaction;
-import org.apache.flume.channel.ChannelProcessor;
-import org.apache.flume.channel.MemoryChannel;
-import org.apache.flume.channel.ReplicatingChannelSelector;
-import org.apache.flume.conf.Configurables;
-import org.apache.flume.lifecycle.LifecycleController;
-import org.apache.flume.lifecycle.LifecycleState;
-import org.apache.flume.source.AvroSource;
+import org.apache.flume.event.EventBuilder;
+import org.apache.flume.source.avro.AvroFlumeEvent;
+import org.apache.flume.source.avro.AvroSourceProtocol;
+import org.apache.flume.source.avro.Status;
import org.apache.logging.log4j.EventLogger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -50,9 +48,15 @@
import java.io.IOException;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
-import java.util.ArrayList;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Queue;
import java.util.Set;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
import java.util.zip.GZIPInputStream;
/**
@@ -60,17 +64,11 @@
*/
public class FlumeEmbeddedAppenderTest {
private static final String CONFIG = "embedded.xml";
+ private static final String HOSTNAME = "localhost";
private static LoggerContext ctx;
- private static final int testServerPort = 12345;
-
- private AvroSource primarySource;
- private AvroSource altSource;
- private Channel primaryChannel;
- private Channel alternateChannel;
-
- private String testPort;
- private String altPort;
+ private EventCollector primary;
+ private EventCollector alternate;
@BeforeClass
public static void setupClass() {
@@ -88,57 +86,19 @@
@Before
public void setUp() throws Exception {
+
final File file = new File("target/file-channel");
final boolean result = deleteFiles(file);
- primarySource = new AvroSource();
- primarySource.setName("Primary");
- altSource = new AvroSource();
- altSource.setName("Alternate");
- primaryChannel = new MemoryChannel();
- primaryChannel.setName("Primary Memory");
- alternateChannel = new MemoryChannel();
- alternateChannel.setName("Alternate Memory");
-
- Configurables.configure(primaryChannel, new Context());
- Configurables.configure(alternateChannel, new Context());
/*
* Clear out all other appenders associated with this logger to ensure we're
* only hitting the Avro appender.
*/
- Context context = new Context();
- testPort = String.valueOf(testServerPort);
- context.put("port", testPort);
- context.put("bind", "localhost");
- Configurables.configure(primarySource, context);
-
- context = new Context();
- altPort = String.valueOf(testServerPort + 1);
- context.put("port", altPort);
- context.put("bind", "localhost");
- Configurables.configure(altSource, context);
-
- final List<Channel> channels = new ArrayList<Channel>();
- channels.add(primaryChannel);
-
- final ChannelSelector primaryCS = new ReplicatingChannelSelector();
- primaryCS.setChannels(channels);
-
- final List<Channel> altChannels = new ArrayList<Channel>();
- altChannels.add(alternateChannel);
-
- final ChannelSelector alternateCS = new ReplicatingChannelSelector();
- alternateCS.setChannels(altChannels);
-
- primarySource.setChannelProcessor(new ChannelProcessor(primaryCS));
- altSource.setChannelProcessor(new ChannelProcessor(alternateCS));
-
- primarySource.start();
- altSource.start();
-
- Assert.assertTrue("Reached start or error", LifecycleController.waitForOneOf(
- primarySource, LifecycleState.START_OR_ERROR));
- Assert.assertEquals("Server is started", LifecycleState.START, primarySource.getLifecycleState());
+ int[] ports = findFreePorts(2);
+ System.setProperty("primaryPort", Integer.toString(ports[0]));
+ System.setProperty("alternatePort", Integer.toString(ports[1]));
+ primary = new EventCollector(ports[0]);
+ alternate = new EventCollector(ports[1]);
System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
ctx = (LoggerContext) LogManager.getContext(false);
ctx.reconfigure();
@@ -148,12 +108,8 @@
public void teardown() throws Exception {
System.clearProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
ctx.reconfigure();
- primarySource.stop();
- altSource.stop();
- Assert.assertTrue("Reached stop or error",
- LifecycleController.waitForOneOf(primarySource, LifecycleState.STOP_OR_ERROR));
- Assert.assertEquals("Server is stopped", LifecycleState.STOP,
- primarySource.getLifecycleState());
+ primary.stop();
+ alternate.stop();
final File file = new File("target/file-channel");
final boolean result = deleteFiles(file);
final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
@@ -173,18 +129,11 @@
final StructuredDataMessage msg = new StructuredDataMessage("Test", "Test Log4j", "Test");
EventLogger.logEvent(msg);
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
+ final Event event = primary.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith("Test Log4j"));
- transaction.commit();
- transaction.close();
-
- primarySource.stop();
}
@Test
@@ -195,20 +144,13 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
+ final Event event = primary.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Multiple " + i;
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
-
- primarySource.stop();
}
@@ -221,23 +163,18 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = primaryChannel.getTransaction();
- transaction.begin();
-
- final Event event = primaryChannel.take();
+ final Event event = primary.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Primary " + i;
Assert.assertTrue("Channel contained event, but not expected message. Received: " + body,
body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
// Give the AvroSink time to receive notification and notify the channel.
Thread.sleep(500);
- primarySource.stop();
+ primary.stop();
for (int i = 0; i < 10; ++i) {
@@ -245,10 +182,7 @@
EventLogger.logEvent(msg);
}
for (int i = 0; i < 10; ++i) {
- final Transaction transaction = alternateChannel.getTransaction();
- transaction.begin();
-
- final Event event = alternateChannel.take();
+ final Event event = alternate.poll();
Assert.assertNotNull(event);
final String body = getBody(event);
final String expected = "Test Alternate " + i;
@@ -256,8 +190,6 @@
the failover, which fails this test */
Assert.assertTrue("Channel contained event, but not expected message. Expected: " + expected +
" Received: " + body, body.endsWith(expected));
- transaction.commit();
- transaction.close();
}
}
@@ -288,4 +220,79 @@
return result &= file.delete();
}
+
+ private static class EventCollector implements AvroSourceProtocol {
+ private final LinkedBlockingQueue<AvroFlumeEvent> eventQueue = new LinkedBlockingQueue<AvroFlumeEvent>();
+
+ private final NettyServer nettyServer;
+
+
+ public EventCollector(int port) {
+ Responder responder = new SpecificResponder(AvroSourceProtocol.class, this);
+ nettyServer = new NettyServer(responder, new InetSocketAddress(HOSTNAME, port));
+ nettyServer.start();
+ }
+
+ public void stop() {
+ nettyServer.close();
+ }
+
+ public Event poll() {
+
+ AvroFlumeEvent avroEvent = null;
+ try {
+ avroEvent = eventQueue.poll(30000, TimeUnit.MILLISECONDS);
+ } catch (InterruptedException ie) {
+ // Ignore the exception.
+ }
+ if (avroEvent != null) {
+ return EventBuilder.withBody(avroEvent.getBody().array(),
+ toStringMap(avroEvent.getHeaders()));
+ } else {
+ System.out.println("No Event returned");
+ }
+ return null;
+ }
+
+ public Status append(AvroFlumeEvent event) throws AvroRemoteException {
+ eventQueue.add(event);
+ return Status.OK;
+ }
+
+ public Status appendBatch(List<AvroFlumeEvent> events)
+ throws AvroRemoteException {
+ Preconditions.checkState(eventQueue.addAll(events));
+ return Status.OK;
+ }
+ }
+
+ private static Map<String, String> toStringMap(Map<CharSequence, CharSequence> charSeqMap) {
+ Map<String, String> stringMap = new HashMap<String, String>();
+ for (Map.Entry<CharSequence, CharSequence> entry : charSeqMap.entrySet()) {
+ stringMap.put(entry.getKey().toString(), entry.getValue().toString());
+ }
+ return stringMap;
+ }
+
+ private static int[] findFreePorts(int count) throws IOException {
+ int[] ports = new int[count];
+ ServerSocket[] sockets = new ServerSocket[count];
+ try {
+ for (int i = 0; i < count; ++i) {
+ sockets[i] = new ServerSocket(0);
+ ports[i] = sockets[i].getLocalPort();
+ }
+ } finally {
+ for (int i = 0; i < count; ++i) {
+ if (sockets[i] != null) {
+ try {
+ sockets[i].close();
+ } catch (Exception ex) {
+ // Ignore the error.
+ }
+ }
+ }
+ }
+ return ports;
+ }
}
diff --git a/flume-ng/src/test/resources/default_embedded.xml b/flume-ng/src/test/resources/default_embedded.xml
index b415ce6..838356b 100644
--- a/flume-ng/src/test/resources/default_embedded.xml
+++ b/flume-ng/src/test/resources/default_embedded.xml
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" name="MyApp" packages="">
<appenders>
- <Flume name="eventLogger" suppressExceptions="false" compress="true" embedded="true" dataDir="target/file-channel">
- <Agent host="localhost" port="12345"/>
- <Agent host="localhost" port="12346"/>
+ <Flume name="eventLogger" suppressExceptions="false" compress="true" embedded="true" dataDir="InMemory">
+ <Agent host="localhost" port="${sys:primaryPort}"/>
+ <Agent host="localhost" port="${sys:alternatePort}"/>
<RFC5424Layout enterpriseNumber="18060" includeMDC="true" appName="MyApp"/>
</Flume>
<Console name="STDOUT">
- <PatternLayout pattern="%d [%p] %c %m%n"/>
+ <PatternLayout pattern="%d %t - [%p] %c %m%n"/>
</Console>
</appenders>
<loggers>
<logger name="EventLogger" level="info">
<appender-ref ref="eventLogger"/>
</logger>
- <root level="warn">
+ <root level="error">
<appender-ref ref="STDOUT"/>
</root>
</loggers>
diff --git a/flume-ng/src/test/resources/embedded.xml b/flume-ng/src/test/resources/embedded.xml
index c3bbf6c..9b13a95 100644
--- a/flume-ng/src/test/resources/embedded.xml
+++ b/flume-ng/src/test/resources/embedded.xml
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<configuration status="error" name="MyApp" packages="">
+<configuration status="warn" name="MyApp" packages="">
<appenders>
<Flume name="eventLogger" suppressExceptions="false" compress="true" embedded="true">
- <Property name="channels">file</Property>
- <Property name="channels.file.type">file</Property>
- <Property name="channels.file.checkpointDir">target/file-channel/checkpoint</Property>
- <Property name="channels.file.dataDirs">target/file-channel/data</Property>
+ <Property name="channels">primary</Property>
+ <Property name="channels.primary.type">memory</Property>
<Property name="sinks">agent1 agent2</Property>
- <Property name="sinks.agent1.channel">file</Property>
+ <Property name="sinks.agent1.channel">primary</Property>
<Property name="sinks.agent1.type">avro</Property>
<Property name="sinks.agent1.hostname">localhost</Property>
- <Property name="sinks.agent1.port">12345</Property>
+ <Property name="sinks.agent1.port">${sys:primaryPort}</Property>
<Property name="sinks.agent1.batch-size">1</Property>
- <Property name="sinks.agent2.channel">file</Property>
+ <Property name="sinks.agent2.channel">primary</Property>
<Property name="sinks.agent2.type">avro</Property>
<Property name="sinks.agent2.hostname">localhost</Property>
- <Property name="sinks.agent2.port">12346</Property>
+ <Property name="sinks.agent2.port">${sys:alternatePort}</Property>
<Property name="sinks.agent2.batch-size">1</Property>
<Property name="sinkgroups">group1</Property>
<Property name="sinkgroups.group1.sinks">agent1 agent2</Property>
diff --git a/jcl-bridge/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java b/jcl-bridge/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java
index b65265a..70307ac 100644
--- a/jcl-bridge/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java
+++ b/jcl-bridge/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java
@@ -75,8 +75,8 @@
private void verify(final String name, final String expected) {
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
- final Map<String, Appender> list = ctx.getConfiguration().getAppenders();
- final Appender listApp = list.get(name);
+ final Map<String, Appender<?>> list = ctx.getConfiguration().getAppenders();
+ final Appender<?> listApp = list.get(name);
assertNotNull("Missing Appender", listApp);
assertTrue("Not a ListAppender", listApp instanceof ListAppender);
final List<String> events = ((ListAppender) listApp).getMessages();
diff --git a/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java b/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
index cde2600..fdd1c24 100644
--- a/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
+++ b/slf4j-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
@@ -172,8 +172,8 @@
private void verify(final String name, final String expected) {
//LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
- final Map<String, Appender> list = ctx.getConfiguration().getAppenders();
- final Appender listApp = list.get(name);
+ final Map<String, Appender<?>> list = ctx.getConfiguration().getAppenders();
+ final Appender<?> listApp = list.get(name);
assertNotNull("Missing Appender", listApp);
assertTrue("Not a ListAppender", listApp instanceof ListAppender);
final List<String> events = ((ListAppender) listApp).getMessages();
@@ -186,10 +186,10 @@
@Before
public void cleanup()
{
- final Map<String, Appender> list = ctx.getConfiguration().getAppenders();
- final Appender listApp = list.get("List");
+ final Map<String, Appender<?>> list = ctx.getConfiguration().getAppenders();
+ final Appender<?> listApp = list.get("List");
((ListAppender) listApp).clear();
- final Appender eventApp = list.get("EventLogger");
+ final Appender<?> eventApp = list.get("EventLogger");
((ListAppender) eventApp).clear();
}
}
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index e9f9636..40cb7fb 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,7 +22,10 @@
</properties>
<body>
- <release version="2.0-beta4" date="2012-01-20" description="Bug fixes and enhancements">
+ <release version="2.0-beta4" date="2012-01-28" description="Bug fixes and enhancements">
+ <action issue="LOG4J2-156" dev="ggregory" type="fix" due-to="Andreas Born">
+ LocalizedMessageTest fails on linux system.
+ </action>
<action issue="LOG4J2-152" dev="rgoers" type="fix" due-to="Remko Popma">
RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified
on the target file name.
diff --git a/web/src/test/java/org/apache/logging/log4j/core/web/Log4jContextListenerTest.java b/web/src/test/java/org/apache/logging/log4j/core/web/Log4jContextListenerTest.java
index 082b6e3..7cc7fbc 100644
--- a/web/src/test/java/org/apache/logging/log4j/core/web/Log4jContextListenerTest.java
+++ b/web/src/test/java/org/apache/logging/log4j/core/web/Log4jContextListenerTest.java
@@ -61,7 +61,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
listener.contextDestroyed(event);
@@ -84,7 +84,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
listener.contextDestroyed(event);
@@ -106,7 +106,7 @@
assertNotNull("No configuration", config);
assertTrue("Incorrect Configuration. Expected " + CONFIG_NAME + " but found " + config.getName(),
CONFIG_NAME.equals(config.getName()));
- final Map<String, Appender> map = config.getAppenders();
+ final Map<String, Appender<?>> map = config.getAppenders();
assertNotNull("No Appenders", map != null && map.size() > 0);
assertTrue("Wrong configuration", map.containsKey("List"));
listener.contextDestroyed(event);