You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/08/31 00:20:13 UTC
[46/50] [abbrv] git commit: Merge branch 'master' into
messaging-module
Merge branch 'master' into messaging-module
Conflicts:
log4j-core/pom.xml
pom.xml
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e1db6e23
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e1db6e23
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e1db6e23
Branch: refs/heads/messaging-module
Commit: e1db6e23ce32956d744ea29ad492134b48806c84
Parents: 6befe58 1167a72
Author: Matt Sicker <bo...@gmail.com>
Authored: Sat Aug 30 17:14:10 2014 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sat Aug 30 17:14:10 2014 -0500
----------------------------------------------------------------------
.gitignore | 4 +
BUILDING.txt | 4 +-
RELEASE-NOTES.txt | 103 +--
checkstyle-suppressions.xml | 8 +
checkstyle.xml | 1 -
log4j-1.2-api/.gitignore | 4 +
log4j-1.2-api/pom.xml | 6 +-
.../src/main/java/org/apache/log4j/Layout.java | 13 +-
.../apache/log4j/BasicConfigurationFactory.java | 2 +
.../test/java/org/apache/log4j/LoggerTest.java | 2 +
log4j-api/.gitignore | 4 +
log4j-api/pom.xml | 8 +-
.../org/apache/logging/log4j/LogManager.java | 53 +-
.../java/org/apache/logging/log4j/Logger.java | 80 +-
.../org/apache/logging/log4j/ThreadContext.java | 106 +--
.../message/ExtendedThreadInformation.java | 28 +-
.../logging/log4j/message/FormattedMessage.java | 8 +-
.../logging/log4j/message/MapMessage.java | 5 +
.../logging/log4j/message/ObjectMessage.java | 22 +-
.../log4j/message/ParameterizedMessage.java | 52 +-
.../log4j/message/StructuredDataMessage.java | 31 +-
.../logging/log4j/message/package-info.java | 2 +-
.../org/apache/logging/log4j/package-info.java | 2 +-
.../logging/log4j/spi/AbstractLogger.java | 842 +------------------
.../log4j/spi/DefaultThreadContextMap.java | 42 -
.../log4j/spi/DefaultThreadContextStack.java | 152 ++--
.../log4j/spi/MutableThreadContextStack.java | 41 +
.../org/apache/logging/log4j/spi/Provider.java | 92 +-
.../logging/log4j/spi/ThreadContextMap.java | 10 +-
.../logging/log4j/spi/ThreadContextStack.java | 2 +-
.../logging/log4j/status/package-info.java | 2 +-
.../apache/logging/log4j/util/Activator.java | 108 +++
.../apache/logging/log4j/util/LoaderUtil.java | 59 ++
.../logging/log4j/util/PropertiesUtil.java | 68 +-
.../apache/logging/log4j/util/ProviderUtil.java | 60 +-
.../org/apache/logging/log4j/util/Strings.java | 22 +
.../java/org/apache/log4j/util/SerialUtil.java | 65 ++
.../log4j/message/FormattedMessageTest.java | 25 +
.../log4j/message/LocalizedMessageTest.java | 24 +
.../logging/log4j/message/MapMessageTest.java | 18 +
.../log4j/message/MessageFormatMessageTest.java | 25 +
.../apache/logging/log4j/message/Mutable.java | 34 +
.../log4j/message/ObjectMessageTest.java | 51 ++
.../log4j/message/ParameterizedMessageTest.java | 12 +
.../message/StringFormattedMessageTest.java | 25 +
.../message/StructuredDataMessageTest.java | 19 +
.../log4j/message/ThreadDumpMessageTest.java | 16 +
.../spi/DefaultThreadContextStackTest.java | 50 +-
.../spi/MutableThreadContextStackTest.java | 83 +-
log4j-bom/.gitignore | 2 +
log4j-bom/pom.xml | 39 +-
log4j-core/.gitignore | 4 +
log4j-core/LOG4J2-807.log | 24 +
log4j-core/pom.xml | 9 +-
.../logging/log4j/core/AbstractLifeCycle.java | 6 +-
.../org/apache/logging/log4j/core/Appender.java | 31 +-
.../org/apache/logging/log4j/core/Filter.java | 4 +-
.../org/apache/logging/log4j/core/Layout.java | 2 +
.../apache/logging/log4j/core/LifeCycle.java | 11 +-
.../logging/log4j/core/LifeCycleState.java | 33 -
.../org/apache/logging/log4j/core/LogEvent.java | 20 +-
.../logging/log4j/core/LogEventListener.java | 1 +
.../org/apache/logging/log4j/core/Logger.java | 10 +
.../logging/log4j/core/LoggerContext.java | 60 +-
.../log4j/core/appender/AbstractAppender.java | 3 +
.../appender/AbstractOutputStreamAppender.java | 2 +
.../log4j/core/appender/AsyncAppender.java | 2 +
.../log4j/core/appender/ConsoleAppender.java | 6 +-
.../log4j/core/appender/FailoverAppender.java | 4 +-
.../log4j/core/appender/FileAppender.java | 3 +-
.../core/appender/RandomAccessFileAppender.java | 4 +-
.../core/appender/RollingFileAppender.java | 2 +
.../RollingRandomAccessFileAppender.java | 2 +
.../log4j/core/appender/SmtpAppender.java | 1 +
.../log4j/core/appender/SocketAppender.java | 5 +-
.../log4j/core/appender/SyslogAppender.java | 3 +-
.../appender/db/AbstractDatabaseAppender.java | 4 +-
.../appender/db/AbstractDatabaseManager.java | 19 +-
.../core/appender/db/jdbc/JdbcAppender.java | 2 +
.../appender/db/jdbc/JdbcDatabaseManager.java | 29 +-
.../log4j/core/appender/db/jpa/JpaAppender.java | 2 +
.../log4j/core/appender/package-info.java | 2 +-
.../core/appender/rewrite/RewriteAppender.java | 3 +
.../appender/rolling/RollingFileManager.java | 2 +-
.../rolling/action/FileRenameAction.java | 6 +-
.../core/appender/routing/RoutingAppender.java | 3 +-
.../logging/log4j/core/async/AsyncLogger.java | 7 +-
.../log4j/core/async/AsyncLoggerConfig.java | 8 +-
.../core/async/AsyncLoggerConfigHelper.java | 3 +
.../log4j/core/async/AsyncLoggerContext.java | 2 +
.../log4j/core/async/RingBufferLogEvent.java | 5 -
.../core/config/AbstractConfiguration.java | 16 +-
.../log4j/core/config/AppenderControl.java | 2 +
.../logging/log4j/core/config/AppenderRef.java | 2 +-
.../log4j/core/config/ConfigurationFactory.java | 12 +-
.../log4j/core/config/DefaultConfiguration.java | 2 +
.../logging/log4j/core/config/LoggerConfig.java | 37 +-
.../log4j/core/config/NullConfiguration.java | 1 +
.../core/config/json/JsonConfiguration.java | 8 +-
.../log4j/core/config/json/package-info.java | 20 +
.../logging/log4j/core/config/package-info.java | 2 +-
.../log4j/core/config/plugins/Plugin.java | 5 +
.../core/config/plugins/osgi/Activator.java | 94 ---
.../core/config/plugins/osgi/package-info.java | 21 -
.../config/plugins/processor/package-info.java | 2 +-
.../core/config/plugins/util/PluginManager.java | 164 +++-
.../core/config/plugins/util/ResolverUtil.java | 5 +-
.../log4j/core/config/xml/XmlConfiguration.java | 36 +-
.../log4j/core/config/xml/package-info.java | 20 +
.../core/config/yaml/YamlConfiguration.java | 2 +
.../log4j/core/config/yaml/package-info.java | 20 +
.../log4j/core/filter/AbstractFilter.java | 2 +
.../log4j/core/filter/AbstractFilterable.java | 2 +
.../logging/log4j/core/filter/BurstFilter.java | 2 +
.../log4j/core/filter/CompositeFilter.java | 2 +
.../core/filter/DynamicThresholdFilter.java | 3 +
.../logging/log4j/core/filter/MapFilter.java | 3 +
.../logging/log4j/core/filter/MarkerFilter.java | 2 +
.../logging/log4j/core/filter/RegexFilter.java | 76 +-
.../log4j/core/filter/StructuredDataFilter.java | 2 +
.../core/filter/ThreadContextMapFilter.java | 2 +
.../log4j/core/filter/ThresholdFilter.java | 2 +
.../logging/log4j/core/filter/TimeFilter.java | 3 +
.../logging/log4j/core/filter/package-info.java | 2 +-
.../log4j/core/impl/Log4jContextFactory.java | 20 +-
.../logging/log4j/core/impl/Log4jLogEvent.java | 55 +-
.../logging/log4j/core/impl/ThrowableProxy.java | 7 +-
.../logging/log4j/core/impl/package-info.java | 2 +-
.../log4j/core/jackson/package-info.java | 21 +
.../log4j/core/jmx/ContextSelectorAdmin.java | 2 +-
.../log4j/core/jmx/LoggerConfigAdmin.java | 4 +-
.../apache/logging/log4j/core/jmx/Server.java | 6 +-
.../log4j/core/jmx/StatusLoggerAdminMBean.java | 6 +-
.../logging/log4j/core/jmx/package-info.java | 2 +-
.../log4j/core/layout/PatternLayout.java | 4 +-
.../logging/log4j/core/layout/package-info.java | 2 +-
.../log4j/core/lookup/ContextMapLookup.java | 2 +-
.../logging/log4j/core/lookup/DateLookup.java | 6 +-
.../logging/log4j/core/lookup/Interpolator.java | 26 +-
.../lookup/JmxRuntimeInputArgumentsLookup.java | 36 +
.../logging/log4j/core/lookup/JndiLookup.java | 21 +-
.../logging/log4j/core/lookup/MapLookup.java | 116 ++-
.../log4j/core/lookup/ResourceBundleLookup.java | 20 +-
.../logging/log4j/core/lookup/StrLookup.java | 19 +-
.../log4j/core/lookup/StrSubstitutor.java | 63 +-
.../log4j/core/lookup/StructuredDataLookup.java | 6 +-
.../core/lookup/SystemPropertiesLookup.java | 16 +-
.../logging/log4j/core/lookup/package-info.java | 2 +-
.../logging/log4j/core/net/package-info.java | 2 +-
.../core/net/ssl/KeyStoreConfiguration.java | 2 +-
.../core/net/ssl/TrustStoreConfiguration.java | 2 +-
.../log4j/core/net/ssl/package-info.java | 2 +-
.../logging/log4j/core/osgi/Activator.java | 82 ++
.../logging/log4j/core/osgi/package-info.java | 21 +
.../apache/logging/log4j/core/package-info.java | 2 +-
.../core/pattern/DatePatternConverter.java | 27 +-
.../log4j/core/pattern/PatternParser.java | 4 +-
.../core/selector/JndiContextSelector.java | 5 +-
.../log4j/core/selector/package-info.java | 2 +-
.../logging/log4j/core/tools/Generate.java | 548 ++++++++++++
.../logging/log4j/core/tools/package-info.java | 20 +
.../apache/logging/log4j/core/util/Assert.java | 6 +-
.../log4j/core/util/BundleResourceLoader.java | 1 -
.../logging/log4j/core/util/Charsets.java | 32 +-
.../logging/log4j/core/util/ClockFactory.java | 3 +
.../apache/logging/log4j/core/util/Closer.java | 28 -
.../DefaultShutdownRegistrationStrategy.java | 41 +
.../logging/log4j/core/util/JndiCloser.java | 55 ++
.../apache/logging/log4j/core/util/Loader.java | 49 +-
.../log4j/core/util/OptionConverter.java | 38 +-
.../logging/log4j/core/util/SetUtils.java | 9 +-
.../core/util/ShutdownRegistrationStrategy.java | 61 ++
.../logging/log4j/core/util/UuidUtil.java | 2 +-
.../logging/log4j/core/util/package-info.java | 2 +-
log4j-core/src/site/resources/images/logo.jpg | Bin 8184 -> 0 bytes
.../src/site/resources/images/ls-logo.jpg | Bin 32725 -> 0 bytes
log4j-core/src/site/xdoc/index.xml | 7 +-
.../DebugDisabledPerformanceComparison.java | 270 ------
.../apache/logging/log4j/LocationPerfCheck.java | 49 --
.../logging/log4j/Log4jInitPerformance.java | 57 --
.../log4j/core/BasicConfigurationFactory.java | 1 +
.../apache/logging/log4j/core/LoggerTest.java | 13 +
.../log4j/core/TimestampMessageTest.java | 93 ++
.../ConsoleAppenderNoAnsiStyleLayoutMain.java | 2 +
.../core/appender/ConsoleAppenderTest.java | 1 -
.../log4j/core/appender/Jira739Test.java | 55 ++
.../core/appender/ProgressConsoleTest.java | 20 +-
.../db/AbstractDatabaseAppenderTest.java | 3 +
.../db/jdbc/AbstractJdbcAppenderTest.java | 1 -
.../appender/db/jdbc/JdbcH2AppenderTest.java | 1 -
.../appender/routing/RoutingAppenderTest.java | 2 +-
.../async/AsyncLoggerThreadContextTest.java | 76 ++
.../async/AsyncLoggerTimestampMessageTest.java | 101 +++
.../log4j/core/async/AsyncRootReloadTest.java | 44 +
.../core/async/RingBufferLogEventTest.java | 56 --
.../core/async/perftest/PerfTestDriver.java | 3 +-
.../logging/log4j/core/config/XIncludeTest.java | 138 +++
.../plugins/util/PluginManagerPackagesTest.java | 114 +++
.../log4j/core/filter/RegexFilterTest.java | 38 +-
.../log4j/core/impl/ReflectionComparison.java | 113 ---
.../impl/ReflectiveCallerClassUtilityTest.java | 43 +
.../log4j/core/layout/PatternLayoutTest.java | 22 +-
.../log4j/core/lookup/ContextMapLookupTest.java | 51 ++
.../lookup/MainInputArgumentsJmxLookupTest.java | 57 ++
.../lookup/MainInputArgumentsMapLookup.java | 41 +
.../log4j/core/lookup/MapLookupTest.java | 67 ++
.../net/server/AbstractSocketServerTest.java | 4 +-
.../core/pattern/DatePatternConverterTest.java | 133 +++
.../log4j/core/pattern/PatternParserTest.java | 29 +-
.../core/tools/GenerateCustomLoggerTest.java | 136 +++
.../core/tools/GenerateExtendedLoggerTest.java | 156 ++++
.../log4j/core/util/CachedClockTest.java | 36 -
.../log4j/core/util/StandardCharsetsTest.java | 71 ++
.../logging/log4j/test/AvailablePortFinder.java | 2 +-
.../log4j/test/appender/AlwaysFailAppender.java | 2 +
.../log4j/test/appender/FailOnceAppender.java | 2 +
.../log4j/test/appender/InMemoryAppender.java | 2 +
.../log4j/test/appender/ListAppender.java | 4 +-
.../test/appender/UsesLoggingAppender.java | 4 +-
.../resources/AsyncLoggerThreadContextTest.xml | 17 +
.../AsyncLoggerTimestampMessageTest.xml | 17 +
.../src/test/resources/ContextMapLookupTest.xml | 29 +
log4j-core/src/test/resources/LOG4J2-739.xml | 28 +
log4j-core/src/test/resources/LOG4J2-807.xml | 15 +
.../test/resources/bad/log4j-badfilename.xml | 4 +-
.../test/resources/bad/log4j-badfilterparam.xml | 4 +-
.../src/test/resources/bad/log4j-badlayout.xml | 4 +-
.../src/test/resources/bad/log4j-loggers.xml | 4 +-
.../src/test/resources/bad/log4j-nofilter.xml | 8 +-
.../src/test/resources/bad/log4j-status.xml | 4 +-
.../customplugin/FixedStringLayout.java.source | 54 ++
.../test/resources/customplugin/log4j2-741.xml | 29 +
.../src/test/resources/log4j-filetest.xml | 4 +-
.../src/test/resources/log4j-rolling2.xml | 8 +-
log4j-core/src/test/resources/log4j-strict1.xml | 8 +-
log4j-core/src/test/resources/log4j-test2.xml | 17 +-
.../src/test/resources/log4j-threaded.xml | 4 +-
.../src/test/resources/log4j-xinclude.xml | 8 +-
log4j-core/src/test/resources/log4j12-perf.xml | 4 +-
log4j-core/src/test/resources/log4j12-perf2.xml | 31 -
log4j-core/src/test/resources/log4j2-319.xml | 4 +-
log4j-core/src/test/resources/log4j2-744.xml | 31 +
.../log4j2-console-highlight-default.xml | 4 +-
.../log4j2-console-highlight-logback.xml | 4 +-
.../test/resources/log4j2-console-highlight.xml | 4 +-
.../resources/log4j2-console-style-ansi.xml | 4 +-
.../log4j2-console-style-name-ansi.xml | 4 +-
.../resources/log4j2-console-style-no-ansi.xml | 2 +-
.../src/test/resources/log4j2-console.xml | 4 +-
.../src/test/resources/log4j2-perf-filter.xml | 4 +-
log4j-core/src/test/resources/log4j2-perf.xml | 4 +-
log4j-core/src/test/resources/log4j2-perf2.xml | 32 -
log4j-core/src/test/resources/logback-flume.xml | 4 +-
.../src/test/resources/logback-perf-filter.xml | 4 +-
log4j-core/src/test/resources/logback-perf.xml | 4 +-
log4j-core/src/test/resources/logback-perf2.xml | 29 -
log4j-core/src/test/resources/logback-subst.xml | 4 +-
log4j-distribution/pom.xml | 2 +-
log4j-flume-ng/.gitignore | 4 +
log4j-flume-ng/pom.xml | 6 +-
.../log4j/flume/appender/FlumeAppender.java | 3 +-
log4j-flume-ng/src/site/xdoc/index.xml | 243 ------
log4j-flume-ng/src/site/xdoc/index.xml.vm | 244 ++++++
log4j-jcl/.gitignore | 4 +
log4j-jcl/pom.xml | 6 +-
log4j-jcl/src/site/xdoc/index.xml | 6 +-
.../apache/logging/log4j/jcl/LoggerTest.java | 1 -
log4j-jmx-gui/.gitignore | 4 +
log4j-jmx-gui/pom.xml | 6 +-
.../mom/jms/appender/JmsQueueAppender.java | 2 +
.../mom/jms/appender/JmsTopicAppender.java | 4 +-
.../log4j/mom/jms/appender/JmsQueueTest.java | 3 +
.../log4j/mom/jms/appender/JmsTopicTest.java | 3 +
log4j-nosql/.gitignore | 4 +
log4j-nosql/pom.xml | 101 ++-
.../log4j/nosql/appender/NoSqlAppender.java | 1 +
log4j-nosql/src/site/xdoc/index.xml | 81 --
log4j-nosql/src/site/xdoc/index.xml.vm | 85 ++
log4j-perf/.gitignore | 4 +
log4j-perf/pom.xml | 10 +-
.../logging/log4j/perf/jmh/ClocksBenchmark.java | 139 +++
.../jmh/ConfiguratorInitializeBenchmark.java | 72 ++
.../log4j/perf/jmh/DebugDisabledBenchmark.java | 107 +++
.../perf/jmh/FormatterLoggerBenchmark.java | 136 +++
.../log4j/perf/jmh/Log4jLogEventBenchmark.java | 55 +-
.../log4j/perf/jmh/ReflectionBenchmark.java | 106 +++
.../log4j/perf/jmh/TimeFormatBenchmark.java | 253 ++++++
.../log4j/perf/jmh/UuidGeneratorBenchmark.java | 51 ++
.../logging/log4j/perf/jmh/package-info.java | 23 +
log4j-perf/src/main/resources/log4j12-perf2.xml | 31 +
log4j-perf/src/main/resources/log4j2-perf2.xml | 32 +
log4j-perf/src/main/resources/logback-perf2.xml | 29 +
log4j-samples/.gitignore | 2 +
log4j-samples/flume-common/.gitignore | 4 +
log4j-samples/flume-common/pom.xml | 2 +-
.../logging/log4j/samples/util/NamingUtils.java | 6 +-
log4j-samples/flume-embedded/.gitignore | 4 +
log4j-samples/flume-embedded/pom.xml | 2 +-
log4j-samples/flume-remote/.gitignore | 4 +
log4j-samples/flume-remote/pom.xml | 2 +-
log4j-samples/pom.xml | 2 +-
log4j-slf4j-impl/.gitignore | 4 +
log4j-slf4j-impl/pom.xml | 6 +-
.../org/apache/logging/slf4j/Log4jLogger.java | 10 +-
.../org/apache/logging/slf4j/Log4jMarker.java | 6 +-
.../logging/slf4j/Log4jMarkerFactory.java | 66 +-
log4j-slf4j-impl/src/site/xdoc/index.xml | 6 +-
.../apache/logging/slf4j/CustomFlatMarker.java | 76 ++
.../org/apache/logging/slf4j/LoggerTest.java | 53 +-
.../src/test/resources/log4j-test1.xml | 2 +-
log4j-streams/pom.xml | 212 +++++
.../logging/log4j/streams/ByteStreamLogger.java | 150 ++++
.../logging/log4j/streams/CharStreamLogger.java | 110 +++
.../streams/LoggerBufferedInputStream.java | 105 +++
.../log4j/streams/LoggerBufferedReader.java | 92 ++
.../log4j/streams/LoggerInputStream.java | 92 ++
.../log4j/streams/LoggerOutputStream.java | 126 +++
.../log4j/streams/LoggerPrintStream.java | 273 ++++++
.../log4j/streams/LoggerPrintWriter.java | 247 ++++++
.../logging/log4j/streams/LoggerReader.java | 96 +++
.../logging/log4j/streams/LoggerStreams.java | 166 ++++
.../logging/log4j/streams/LoggerWriter.java | 122 +++
.../log4j/streams/helpers/ByteStreamLogger.java | 150 ++++
.../log4j/streams/helpers/CharStreamLogger.java | 110 +++
...LoggerBufferedInputStreamCallerInfoTest.java | 66 ++
.../streams/LoggerBufferedInputStreamTest.java | 29 +
.../LoggerBufferedReaderCallerInfoTest.java | 84 ++
.../log4j/streams/LoggerBufferedReaderTest.java | 41 +
.../LoggerInputStreamCallerInfoTest.java | 54 ++
.../log4j/streams/LoggerInputStreamTest.java | 127 +++
.../LoggerOutputStreamCallerInfoTest.java | 50 ++
.../log4j/streams/LoggerOutputStreamTest.java | 125 +++
.../LoggerPrintStreamCallerInfoTest.java | 145 ++++
.../log4j/streams/LoggerPrintStreamTest.java | 116 +++
.../LoggerPrintWriterCallerInfoTest.java | 145 ++++
.../log4j/streams/LoggerPrintWriterTest.java | 118 +++
.../streams/LoggerReaderCallerInfoTest.java | 57 ++
.../logging/log4j/streams/LoggerReaderTest.java | 141 ++++
.../streams/LoggerStreamsCallerInfoTesting.java | 51 ++
.../logging/log4j/streams/LoggerWriterTest.java | 124 +++
.../logging/log4j/streams/StreamTesting.java | 61 ++
.../resources/log4j2-streams-calling-info.xml | 30 +
.../test/resources/log4j2-streams-unit-test.xml | 30 +
log4j-taglib/.gitignore | 4 +
log4j-taglib/pom.xml | 4 +-
log4j-to-slf4j/.gitignore | 4 +
log4j-to-slf4j/pom.xml | 7 +-
log4j-web/.gitignore | 4 +
log4j-web/pom.xml | 101 ++-
.../log4j/web/Log4jWebInitializerImpl.java | 35 +-
.../logging/log4j/web/Log4jWebSupport.java | 6 +-
.../log4j/web/WebLoggerContextUtils.java | 112 +++
.../log4j/web/appender/ServletAppender.java | 5 +-
.../logging/log4j/web/TestAsyncServlet.java | 60 ++
pom.xml | 64 +-
src/changes/announcement.vm | 170 +++-
src/changes/changes.xml | 173 +++-
src/site/apt/download.apt.vm | 5 +-
src/site/pdf.xml | 5 +-
src/site/resources/images/logo.jpg | Bin 24805 -> 14818 bytes
src/site/site.vm | 2 +-
src/site/site.xml | 9 +-
src/site/xdoc/build.xml.vm | 14 +-
src/site/xdoc/faq.xml | 10 +-
src/site/xdoc/index.xml | 6 +-
src/site/xdoc/javadoc.xml | 8 +
src/site/xdoc/manual/api.xml | 22 +-
src/site/xdoc/manual/appenders.xml | 2 -
src/site/xdoc/manual/architecture.xml | 76 +-
src/site/xdoc/manual/async.xml | 20 +
src/site/xdoc/manual/configuration.xml.vm | 17 +-
src/site/xdoc/manual/customloglevels.xml.vm | 233 +++++
src/site/xdoc/manual/extending.xml | 40 +-
src/site/xdoc/manual/index.xml | 25 +-
src/site/xdoc/manual/jmx.xml | 172 ----
src/site/xdoc/manual/jmx.xml.vm | 172 ++++
src/site/xdoc/manual/layouts.xml.vm | 56 +-
src/site/xdoc/manual/logsep.xml | 2 +-
src/site/xdoc/manual/lookups.xml | 9 +-
src/site/xdoc/manual/messages.xml | 4 +-
src/site/xdoc/manual/migration.xml | 4 +-
src/site/xdoc/manual/plugins.xml | 90 +-
src/site/xdoc/manual/webapp.xml | 144 ++--
383 files changed, 11840 insertions(+), 3355 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/log4j-core/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueAppender.java
----------------------------------------------------------------------
diff --cc log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueAppender.java
index aa4fd95,0000000..4a544e4
mode 100644,000000..100644
--- a/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueAppender.java
+++ b/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueAppender.java
@@@ -1,111 -1,0 +1,113 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.mom.jms.appender;
+
+import java.io.Serializable;
+
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.appender.AbstractAppender;
+import org.apache.logging.log4j.core.appender.AppenderLoggingException;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginElement;
+import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+import org.apache.logging.log4j.core.layout.SerializedLayout;
+import org.apache.logging.log4j.mom.jms.manager.JmsQueueManager;
+import org.apache.logging.log4j.core.util.Booleans;
+
+/**
+ * Appender to write to a JMS Queue.
+ */
+@Plugin(name = "JMSQueue", category = "Core", elementType = "appender", printObject = true)
+public final class JmsQueueAppender extends AbstractAppender {
+
++ private static final long serialVersionUID = 1L;
++
+ private final JmsQueueManager manager;
+
+ private JmsQueueAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
+ final JmsQueueManager manager, final boolean ignoreExceptions) {
+ super(name, filter, layout, ignoreExceptions);
+ this.manager = manager;
+ }
+
+ /**
+ * Actual writing occurs here.
+ *
+ * @param event The LogEvent.
+ */
+ @Override
+ public void append(final LogEvent event) {
+ try {
+ manager.send(getLayout().toSerializable(event));
+ } catch (final Exception ex) {
+ throw new AppenderLoggingException(ex);
+ }
+ }
+
+ /**
+ * Create a JmsQueueAppender.
+ * @param name The name of the Appender.
+ * @param factoryName The fully qualified class name of the InitialContextFactory.
+ * @param providerURL The URL of the provider to use.
+ * @param urlPkgPrefixes A colon-separated list of package prefixes for the class name of the factory class that
+ * will create a URL context factory
+ * @param securityPrincipalName The name of the identity of the Principal.
+ * @param securityCredentials The security credentials of the Principal.
+ * @param factoryBindingName The name to locate in the Context that provides the QueueConnectionFactory.
+ * @param queueBindingName The name to use to locate the Queue.
+ * @param userName The user ID to use to create the Queue Connection.
+ * @param password The password to use to create the Queue Connection.
+ * @param layout The layout to use (defaults to SerializedLayout).
+ * @param filter The Filter or null.
+ * @param ignore If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise
+ * they are propagated to the caller.
+ * @return The JmsQueueAppender.
+ */
+ @PluginFactory
+ public static JmsQueueAppender createAppender(
+ @PluginAttribute("name") final String name,
+ @PluginAttribute("factoryName") final String factoryName,
+ @PluginAttribute("providerURL") final String providerURL,
+ @PluginAttribute("urlPkgPrefixes") final String urlPkgPrefixes,
+ @PluginAttribute("securityPrincipalName") final String securityPrincipalName,
+ @PluginAttribute("securityCredentials") final String securityCredentials,
+ @PluginAttribute("factoryBindingName") final String factoryBindingName,
+ @PluginAttribute("queueBindingName") final String queueBindingName,
+ @PluginAttribute("userName") final String userName,
+ @PluginAttribute("password") final String password,
+ @PluginElement("Layout") Layout<? extends Serializable> layout,
+ @PluginElement("Filter") final Filter filter,
+ @PluginAttribute("ignoreExceptions") final String ignore) {
+ if (name == null) {
+ LOGGER.error("No name provided for JmsQueueAppender");
+ return null;
+ }
+ final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
+ final JmsQueueManager manager = JmsQueueManager.getJmsQueueManager(factoryName, providerURL, urlPkgPrefixes,
+ securityPrincipalName, securityCredentials, factoryBindingName, queueBindingName, userName, password);
+ if (manager == null) {
+ return null;
+ }
+ if (layout == null) {
+ layout = SerializedLayout.createLayout();
+ }
+ return new JmsQueueAppender(name, filter, layout, manager, ignoreExceptions);
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicAppender.java
----------------------------------------------------------------------
diff --cc log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicAppender.java
index 6b1e16f,0000000..1b000ce
mode 100644,000000..100644
--- a/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicAppender.java
+++ b/log4j-mom/src/main/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicAppender.java
@@@ -1,112 -1,0 +1,114 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.mom.jms.appender;
+
+import java.io.Serializable;
+
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.appender.AbstractAppender;
+import org.apache.logging.log4j.core.appender.AppenderLoggingException;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginElement;
+import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+import org.apache.logging.log4j.core.layout.SerializedLayout;
+import org.apache.logging.log4j.mom.jms.manager.JmsTopicManager;
+import org.apache.logging.log4j.core.util.Booleans;
+
+/**
+ * Appender to write to a JMS Topic.
+ */
+@Plugin(name = "JMSTopic", category = "Core", elementType = "appender", printObject = true)
+public final class JmsTopicAppender extends AbstractAppender {
+
++ private static final long serialVersionUID = 1L;
++
+ private final JmsTopicManager manager;
+
+ private JmsTopicAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout,
+ final JmsTopicManager manager, final boolean ignoreExceptions) {
+ super(name, filter, layout, ignoreExceptions);
+ this.manager = manager;
+ }
+
+ /**
+ * Actual writing occurs here.
+ * <p/>
+ * @param event The LogEvent.
+ */
+ @Override
+ public void append(final LogEvent event) {
+ try {
+ manager.send(getLayout().toSerializable(event));
+ } catch (final Exception ex) {
+ throw new AppenderLoggingException(ex);
+ }
+ }
+
+ /**
+ * Create a JmsTopicAppender.
+ * @param name The name of the Appender.
+ * @param factoryName The fully qualified class name of the InitialContextFactory.
+ * @param providerURL The URL of the provider to use.
+ * @param urlPkgPrefixes A colon-separated list of package prefixes for the class name of the factory class that
+ * will create a URL context factory
+ * @param securityPrincipalName The name of the identity of the Principal.
+ * @param securityCredentials The security credentials of the Principal.
+ * @param factoryBindingName The name to locate in the Context that provides the TopicConnectionFactory.
+ * @param topicBindingName The name to use to locate the Topic.
+ * @param userName The userid to use to create the Topic Connection.
+ * @param password The password to use to create the Topic Connection.
+ * @param layout The layout to use (defaults to SerializedLayout).
+ * @param filter The Filter or null.
+ * @param ignore If {@code "true"} (default) exceptions encountered when appending events are logged; otherwise
+ * they are propagated to the caller.
+ * @return The JmsTopicAppender.
+ */
+ @PluginFactory
+ public static JmsTopicAppender createAppender(
+ @PluginAttribute("name") final String name,
+ @PluginAttribute("factoryName") final String factoryName,
+ @PluginAttribute("providerURL") final String providerURL,
+ @PluginAttribute("urlPkgPrefixes") final String urlPkgPrefixes,
+ @PluginAttribute("securityPrincipalName") final String securityPrincipalName,
+ @PluginAttribute("securityCredentials") final String securityCredentials,
+ @PluginAttribute("factoryBindingName") final String factoryBindingName,
+ @PluginAttribute("topicBindingName") final String topicBindingName,
+ @PluginAttribute("userName") final String userName,
+ @PluginAttribute("password") final String password,
+ @PluginElement("Layout") Layout<? extends Serializable> layout,
- @PluginElement("Filters") final Filter filter,
++ @PluginElement("Filter") final Filter filter,
+ @PluginAttribute("ignoreExceptions") final String ignore) {
+
+ if (name == null) {
+ LOGGER.error("No name provided for JmsQueueAppender");
+ return null;
+ }
+ final boolean ignoreExceptions = Booleans.parseBoolean(ignore, true);
+ final JmsTopicManager manager = JmsTopicManager.getJmsTopicManager(factoryName, providerURL, urlPkgPrefixes,
+ securityPrincipalName, securityCredentials, factoryBindingName, topicBindingName, userName, password);
+ if (manager == null) {
+ return null;
+ }
+ if (layout == null) {
+ layout = SerializedLayout.createLayout();
+ }
+ return new JmsTopicAppender(name, filter, layout, manager, ignoreExceptions);
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueTest.java
----------------------------------------------------------------------
diff --cc log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueTest.java
index 7a61efa,0000000..a36e148
mode 100644,000000..100644
--- a/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueTest.java
+++ b/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsQueueTest.java
@@@ -1,144 -1,0 +1,147 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.mom.jms.appender;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+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.Filter;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.appender.ConsoleAppender;
+import org.apache.logging.log4j.core.filter.AbstractFilter;
+import org.apache.logging.log4j.core.filter.CompositeFilter;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.mom.jms.receiver.AbstractJmsReceiver;
+import org.apache.logging.log4j.mom.jms.receiver.JmsQueueReceiver;
+import org.apache.logging.log4j.mom.jms.receiver.JmsTopicReceiver;
+import org.apache.logging.log4j.status.StatusConsoleListener;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockejb.jms.MockQueue;
+import org.mockejb.jms.QueueConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+import static org.junit.Assert.*;
+
+/**
+ *
+ */
+public class JmsQueueTest {
+
+ private static final String FACTORY_NAME = "TestQueueConnectionFactory";
+ private static final String QUEUE_NAME = "TestQueue";
+
+ private static Context context;
+ private static AbstractJmsReceiver receiver;
+
+ LoggerContext ctx = (LoggerContext) LogManager.getContext();
+ Logger root = ctx.getLogger("JmsQueueTest");
+
+ @BeforeClass
+ public static void setupClass() throws Exception {
+ // MockContextFactory becomes the primary JNDI provider
+ final StatusConsoleListener listener = new StatusConsoleListener(Level.ERROR);
+ StatusLogger.getLogger().registerListener(listener);
+ MockContextFactory.setAsInitial();
+ context = new InitialContext();
+ context.rebind(FACTORY_NAME, new QueueConnectionFactoryImpl());
+ context.rebind(QUEUE_NAME, new MockQueue(QUEUE_NAME));
+ ((LoggerContext) LogManager.getContext()).reconfigure();
+ receiver = new JmsQueueReceiver(FACTORY_NAME, QUEUE_NAME, null, null);
+ }
+
+ @AfterClass
+ public static void cleanupClass() {
+ StatusLogger.getLogger().reset();
+ }
+
+ @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();
+ root.removeAppender(app);
+ app.stop();
+ }
+ }
+
+ @Test
+ public void testServer() throws Exception {
+ final Filter clientFilter = new MessageFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
+ final Filter serverFilter = new MessageFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
+ final CompositeFilter clientFilters = CompositeFilter.createFilters(new Filter[]{clientFilter});
+ final JmsQueueAppender appender = JmsQueueAppender.createAppender("Test", null, null, null, null, null, FACTORY_NAME,
+ QUEUE_NAME, null, null, null, clientFilters, "true");
+ appender.start();
+ final CompositeFilter serverFilters = CompositeFilter.createFilters(new Filter[]{serverFilter});
+ final ListAppender listApp = new ListAppender("Events", serverFilters, null, false, false);
+ listApp.start();
+ final PatternLayout layout = PatternLayout.newBuilder().withPattern("%m %ex%n").build();
+ final ConsoleAppender console = ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", "Console", "false", "true");
+ console.start();
+ final Logger serverLogger = ctx.getLogger(JmsTopicReceiver.class.getName());
+ serverLogger.addAppender(console);
+ serverLogger.setAdditive(false);
+
+
+ // set appender on root and set level to debug
+ root.addAppender(listApp);
+ root.addAppender(appender);
+ root.setAdditive(false);
+ root.setLevel(Level.DEBUG);
+ root.debug("This is a test message");
+ Thread.sleep(100);
+ final List<LogEvent> events = listApp.getEvents();
+ assertNotNull("No event retrieved", events);
+ assertTrue("No events retrieved", events.size() > 0);
+ assertTrue("Incorrect event", events.get(0).getMessage().getFormattedMessage().equals("This is a test message"));
+ }
+
+ private class MessageFilter extends AbstractFilter {
++
++ private static final long serialVersionUID = 1L;
++
+ public MessageFilter(final Result onMatch, final Result onMismatch) {
+ super(onMatch, onMismatch);
+ }
+
+ @Override
+ public Result filter(final LogEvent event) {
+ final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
+ for (final StackTraceElement element : stackTrace) {
+ if (element.getMethodName().equals("onMessage")) {
+ return onMatch;
+ } else if (element.getMethodName().equals("testServer")) {
+ return onMismatch;
+ }
+ }
+ return onMismatch;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicTest.java
----------------------------------------------------------------------
diff --cc log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicTest.java
index 6781b75,0000000..890f929
mode 100644,000000..100644
--- a/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicTest.java
+++ b/log4j-mom/src/test/java/org/apache/logging/log4j/mom/jms/appender/JmsTopicTest.java
@@@ -1,144 -1,0 +1,147 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.mom.jms.appender;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+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.Filter;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.appender.ConsoleAppender;
+import org.apache.logging.log4j.core.filter.AbstractFilter;
+import org.apache.logging.log4j.core.filter.CompositeFilter;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.mom.jms.receiver.AbstractJmsReceiver;
+import org.apache.logging.log4j.mom.jms.receiver.JmsTopicReceiver;
+import org.apache.logging.log4j.status.StatusConsoleListener;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockejb.jms.MockTopic;
+import org.mockejb.jms.TopicConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+import static org.junit.Assert.*;
+
+/**
+ *
+ */
+public class JmsTopicTest {
+
+ private static final String FACTORY_NAME = "TestTopicConnectionFactory";
+ private static final String TOPIC_NAME = "TestTopic";
+
+ private static Context context;
+ private static AbstractJmsReceiver receiver;
+
+ LoggerContext ctx = (LoggerContext) LogManager.getContext();
+ Logger root = ctx.getLogger("JmsTopicTest");
+
+ @BeforeClass
+ public static void setupClass() throws Exception {
+ // MockContextFactory becomes the primary JNDI provider
+ final StatusConsoleListener listener = new StatusConsoleListener(Level.ERROR);
+ StatusLogger.getLogger().registerListener(listener);
+ MockContextFactory.setAsInitial();
+ context = new InitialContext();
+ context.rebind(FACTORY_NAME, new TopicConnectionFactoryImpl());
+ context.rebind(TOPIC_NAME, new MockTopic(TOPIC_NAME));
+ ((LoggerContext) LogManager.getContext()).reconfigure();
+ receiver = new JmsTopicReceiver(FACTORY_NAME, TOPIC_NAME, null, null);
+ }
+
+ @AfterClass
+ public static void cleanupClass() {
+ StatusLogger.getLogger().reset();
+ }
+
+ @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();
+ root.removeAppender(app);
+ app.stop();
+ }
+ }
+
+ @Test
+ public void testServer() throws Exception {
+ final Filter clientFilter = new MessageFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
+ final Filter serverFilter = new MessageFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
+ final CompositeFilter clientFilters = CompositeFilter.createFilters(new Filter[]{clientFilter});
+ final JmsTopicAppender appender = JmsTopicAppender.createAppender("Test", null, null, null, null, null, FACTORY_NAME,
+ TOPIC_NAME, null, null, null, clientFilters, "true");
+ appender.start();
+ final CompositeFilter serverFilters = CompositeFilter.createFilters(new Filter[]{serverFilter});
+ final ListAppender listApp = new ListAppender("Events", serverFilters, null, false, false);
+ listApp.start();
+ final PatternLayout layout = PatternLayout.newBuilder().withPattern("%m %ex%n").build();
+ final ConsoleAppender console =
+ ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", "Console", "false", "true");
+ console.start();
+ final Logger serverLogger = ctx.getLogger(JmsTopicReceiver.class.getName());
+ serverLogger.addAppender(console);
+ serverLogger.setAdditive(false);
+
+
+ // set appender on root and set level to debug
+ root.addAppender(listApp);
+ root.addAppender(appender);
+ root.setAdditive(false);
+ root.setLevel(Level.DEBUG);
+ root.debug("This is a test message");
+ Thread.sleep(100);
+ final List<LogEvent> events = listApp.getEvents();
+ assertNotNull("No event retrieved", events);
+ assertTrue("No events retrieved", events.size() > 0);
+ assertTrue("Incorrect event", events.get(0).getMessage().getFormattedMessage().equals("This is a test message"));
+ }
+
+ private class MessageFilter extends AbstractFilter {
++
++ private static final long serialVersionUID = 1L;
++
+ public MessageFilter(final Result onMatch, final Result onMismatch) {
+ super(onMatch, onMismatch);
+ }
+
+ @Override
+ public Result filter(final LogEvent event) {
+ final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
+ for (final StackTraceElement element : stackTrace) {
+ if (element.getMethodName().equals("onMessage")) {
+ return onMatch;
+ } else if (element.getMethodName().equals("testServer")) {
+ return onMismatch;
+ }
+ }
+ return onMismatch;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1db6e23/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index d045e7b,29b05af..2d0b1e5
--- a/pom.xml
+++ b/pom.xml
@@@ -153,22 -154,15 +154,22 @@@
<slf4j.version>1.7.7</slf4j.version>
<logback.version>1.0.13</logback.version>
<log4jParentDir>${basedir}</log4jParentDir>
- <Log4jReleaseVersion>2.0-rc2</Log4jReleaseVersion>
- <Log4jReleaseCount>thirteenth</Log4jReleaseCount>
+ <Log4jReleaseVersion>2.0.2</Log4jReleaseVersion>
+ <Log4jReleaseCount>sixteenth</Log4jReleaseCount>
<jackson1.version>1.9.13</jackson1.version>
- <jackson2.version>2.4.1</jackson2.version>
+ <jackson2.version>2.4.2</jackson2.version>
<spring.version>3.2.8.RELEASE</spring.version>
- <flumeVersion>1.5.0.1</flumeVersion>
- <disruptor.version>3.3.0</disruptor.version>
- <pmd.plugin.version>3.2</pmd.plugin.version>
- <findbugs.plugin.version>2.5.5</findbugs.plugin.version>
+ <flumeVersion>1.5.0</flumeVersion>
+ <disruptor.version>3.2.1</disruptor.version>
+ <activemq.version>5.10.0</activemq.version>
+ <!-- Configuration properties for the OSGi maven-bundle-plugin -->
+ <project.version.osgi>2.0.0.RC2-SNAPSHOT</project.version.osgi>
+ <osgi.symbolicName>org.apache.logging.${project.artifactId}</osgi.symbolicName>
+ <osgi.export>org.apache.logging.log4j.*;version=${project.version};-noimport:=true</osgi.export>
+ <osgi.import>*</osgi.import>
+ <osgi.dynamicImport />
+ <osgi.private />
+ <pmd.plugin.version>3.1</pmd.plugin.version>
<changes.plugin.version>2.9</changes.plugin.version>
<javadoc.plugin.version>2.9.1</javadoc.plugin.version>
<surefire.plugin.version>2.17</surefire.plugin.version>
@@@ -1000,7 -994,7 +1011,8 @@@
<module>log4j-nosql</module>
<module>log4j-web</module>
<module>log4j-perf</module>
+ <module>log4j-mom</module>
+ <module>log4j-streams</module>
</modules>
<profiles>
<profile>