You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2019/05/05 05:27:21 UTC

[logging-log4j2] branch release-2.x updated (f1adadc -> a6004c9)

This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a change to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git.


    from f1adadc  Update revapi.json
     new 22a0ca7  LOG4J2-913 - Access configurations by HTTP/S. Support Spring Cloud Config
     new ea4101a  LOG4J2-1906 - Delay file name resolution closer to when the stream is opened
     new 23ec2ac  LOG4J2-2266 - Load PropertySources from any accessible ClassLoader and handle any exceptions
     new 927322a  Prepare for release
     new e22f9eb  Update changes.xml for next release
     new 7a9a466  LOG4J2-913 - Add support for dynamic reconfiguration
     new 90636cf  LOG4J2-913 - Code review changes
     new 3c8ea80  Functional Sample
     new 512c51c  LOG4J2-913 - Fix JSON serialization problems. Configure for various deployment methods
     new e5f4479  LOG4J2-913 - Add more tests and update site
     new a54d243  More documentation fixes
     new a6004c9  LOG4J2-913 - Remove unneeded imports. General cleanup

The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/logging/log4j/util/Base64Util.java  |   20 +-
 .../org/apache/logging/log4j/util/Base64Util.java  |   64 +
 .../apache/logging/log4j/util/PropertiesUtil.java  |   15 +
 .../java/org/apache/logging/log4j/util}/Timer.java |   70 +-
 .../logging/log4j/ThreadContextUtilityClass.java   |    4 +-
 .../log4j/message/MessageFormatsPerfTest.java      |    2 +-
 .../logging/log4j/util/PropertiesUtilTest.java     |   15 +-
 .../src/test/resources/log4j2.system.properties    |    1 +
 .../apache/logging/log4j/core/SimplePerfTest.java  |    2 +-
 .../logging/log4j/core/ThreadedPerfTest.java       |    2 +-
 log4j-core/revapi.json                             |  348 +-
 .../core/appender/mom/kafka/KafkaAppender.java     |    8 +-
 .../core/appender/mom/kafka/KafkaManager.java      |   39 +
 .../log4j/core/config/AbstractConfiguration.java   |   40 +-
 .../log4j/core/config/ConfigurationFactory.java    |   42 +-
 .../core/config/ConfigurationFileWatcher.java      |   72 +
 .../log4j/core/config/ConfigurationSource.java     |   95 +-
 .../logging/log4j/core/config/HttpWatcher.java     |  154 +
 .../config/builder/impl/BuiltConfiguration.java    |   15 +-
 .../builder/impl/DefaultConfigurationBuilder.java  |    2 +-
 .../config/composite/CompositeConfiguration.java   |   24 +-
 .../log4j/core/config/json/JsonConfiguration.java  |   13 +-
 .../log4j/core/config/xml/XmlConfiguration.java    |   16 +-
 .../log4j/core/layout/AbstractJacksonLayout.java   |  141 +-
 .../logging/log4j/core/lookup/Interpolator.java    |   10 +
 .../log4j/core/net/UrlConnectionFactory.java       |  101 +
 .../log4j/core/net/ssl/SslConfiguration.java       |   29 +-
 .../core/net/ssl/SslConfigurationFactory.java      |   91 +
 .../AbstractWatcher.java}                          |   42 +-
 .../log4j/core/util/AuthorizationProvider.java     |   21 +-
 .../core/util/BasicAuthorizationProvider.java      |   65 +
 .../apache/logging/log4j/core/util/NetUtils.java   |   57 +
 .../logging/log4j/core/util/PasswordDecryptor.java |   21 +-
 .../org/apache/logging/log4j/core/util/Source.java |  135 +
 .../apache/logging/log4j/core/util/UuidUtil.java   |   43 +-
 .../logging/log4j/core/util/WatchEventService.java |   18 +-
 .../logging/log4j/core/util/WatchManager.java      |  195 +-
 .../apache/logging/log4j/core/util/Watcher.java    |   79 +
 .../logging/log4j/core/util/WatcherFactory.java    |  101 +
 .../log4j/core/util/WrappedFileWatcher.java        |  102 +
 .../logging/log4j/core/util/WatchHttpTest.java     |  173 +
 .../test/resources/{ => __files}/log4j-test1.xml   |    0
 .../{logback-perf.xml => logback-test.xml}         |    0
 log4j-docker/pom.xml                               |  215 ++
 .../apache/logging/log4j/docker/DockerLookup.java  |  124 +
 .../logging/log4j/docker/model/Container.java      |  176 +
 .../logging/log4j/docker/model/HostConfig.java     |   20 +-
 .../logging/log4j/docker/model/IPAMConfig.java     |   69 +
 .../apache/logging/log4j/docker/model/Mount.java   |  113 +
 .../apache/logging/log4j/docker/model/Network.java |  168 +
 .../log4j/docker/model/NetworkSettings.java        |  215 ++
 .../logging/log4j/docker/model/PortDefinition.java |   69 +
 log4j-docker/src/site/markdown/index.md.vm         |   56 +
 log4j-docker/src/site/site.xml                     |   52 +
 .../logging/log4j/flume/appender/BatchEvent.java   |    4 +
 .../log4j/flume/appender/FlumeAppender.java        |   19 +
 .../log4j/flume/appender/FlumeAvroManager.java     |   40 +-
 log4j-samples/log4j-samples-flume-embedded/pom.xml |    1 +
 log4j-samples/log4j-samples-flume-remote/pom.xml   |    1 +
 .../log4j-spring-cloud-config-client/pom.xml       |  208 ++
 .../client/Log4j2CloudConfigLoggingSystem.java     |  132 +
 .../cloud/config/client/Log4j2EventListener.java   |   49 +
 .../cloud/config/client/WatchEventManager.java     |   34 +-
 ...pache.logging.log4j.core.util.WatchEventService |    1 +
 .../src/main/resources/META-INF/spring.factories   |    1 +
 .../src/main/resources/log4j2.component.properties |    0
 .../src/main/resources/log4j2.system.properties    |    1 +
 .../src/site/markdown/index.md                     |   88 +
 .../src/site/site.xml                              |   52 +
 .../Dockerfile                                     |   16 +
 .../README.md                                      |   36 +
 .../docker/app-compose.yml                         |   21 +
 .../docker/docker-compose.yml                      |   74 +
 .../docker/down.sh                                 |    5 +
 .../docker/init/fluent-bit/fluent-bit.conf         |   28 +
 .../docker/init/flume/flume-env.sh                 |    1 +
 .../docker/init/flume/flume.conf                   |   32 +
 .../docker/init/flume/log4j.properties             |   10 +
 .../docker/init/flume/start-flume.sh               |   14 +
 .../docker/init/rabbit/definitions.json            |   36 +
 .../docker/init/rabbit/rabbitmq.config             |   14 +
 .../docker/logs.sh                                 |    7 +
 .../docker/restartApp.sh                           |   20 +
 .../docker/stop.sh                                 |    6 +
 .../docker/stopApp.sh                              |    3 +
 .../docker/up.sh                                   |    6 +
 .../pom.xml                                        |  269 ++
 .../cloud/config/sample/SampleApplication.java     |   17 +
 .../sample/config/GlobalExceptionHandler.java      |   26 +-
 .../cloud/config/sample/config/WebMvcConfig.java   |   39 +
 .../config/sample/controller/SampleController.java |  117 +
 .../utils/spring/SampleResponseErrorHandler.java   |   26 +-
 .../src/main/resources/META-INF/MANIFEST.MF        |    0
 .../src/main/resources/application.yml             |   30 +
 .../src/main/resources/bootstrap.yml               |    5 +
 .../src/main/resources/log4j2.component.properties |    3 +
 .../pom.xml                                        |  218 ++
 .../readme.txt                                     |    0
 .../src/main/config-repo/log4j2.xml                |   97 +
 .../config/service/ConfigServiceApplication.java   |   29 +-
 .../service/config/SecurityConfiguration.java      |   29 +-
 .../src/main/resources/application.yaml            |   38 +
 .../src/main/resources/log4j2.xml                  |   29 +
 .../service/ConfigServiceApplicationTest.java      |   28 +-
 .../log4j-spring-cloud-config-samples/pom.xml      |  108 +
 log4j-spring-cloud-config/pom.xml                  |   93 +
 .../src/site/markdown/index.md                     |   21 +
 log4j-spring-cloud-config/src/site/site.xml        |   52 +
 pom.xml                                            | 3440 ++++++++++----------
 src/changes/changes.xml                            |    1 -
 src/site/markdown/index.md.vm                      |    6 +
 src/site/markdown/manual/cloud.md                  |  223 ++
 src/site/resources/images/DockerFluentd.drawio     |    1 +
 src/site/resources/images/DockerFluentd.png        |  Bin 0 -> 16444 bytes
 .../images/DockerFluentdAggregator.drawio          |    1 +
 .../resources/images/DockerFluentdAggregator.png   |  Bin 0 -> 15394 bytes
 src/site/resources/images/DockerLogFile.drawio     |    1 +
 src/site/resources/images/DockerLogFile.png        |  Bin 0 -> 14674 bytes
 src/site/resources/images/DockerStdout.drawio      |    1 +
 src/site/resources/images/DockerStdout.png         |  Bin 0 -> 19551 bytes
 src/site/resources/images/DockerTCP.drawio         |    1 +
 src/site/resources/images/DockerTCP.png            |  Bin 0 -> 11895 bytes
 src/site/resources/images/LoggerAggregator.drawio  |    1 +
 src/site/resources/images/LoggerAggregator.png     |  Bin 0 -> 11342 bytes
 src/site/site.xml                                  |    4 +
 src/site/xdoc/manual/configuration.xml.vm          |   78 +
 src/site/xdoc/manual/lookups.xml                   |   25 +
 src/site/xdoc/runtime-dependencies.xml             |   74 +-
 128 files changed, 7687 insertions(+), 2168 deletions(-)
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-api-java9/src/main/java/org/apache/logging/log4j/util/Base64Util.java (69%)
 create mode 100644 log4j-api/src/main/java/org/apache/logging/log4j/util/Base64Util.java
 rename log4j-api/src/{test/java/org/apache/logging/log4j => main/java/org/apache/logging/log4j/util}/Timer.java (84%)
 create mode 100644 log4j-api/src/test/resources/log4j2.system.properties
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
 rename log4j-core/src/main/java/org/apache/logging/log4j/core/{config/ConfiguratonFileWatcher.java => util/AbstractWatcher.java} (65%)
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java (68%)
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-core/src/main/java/org/apache/logging/log4j/core/util/PasswordDecryptor.java (68%)
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchEventService.java (69%)
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
 create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
 create mode 100644 log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
 copy log4j-core/src/test/resources/{ => __files}/log4j-test1.xml (100%)
 copy log4j-core/src/test/resources/{logback-perf.xml => logback-test.xml} (100%)
 create mode 100644 log4j-docker/pom.xml
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/HostConfig.java (69%)
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Mount.java
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
 create mode 100644 log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/PortDefinition.java
 create mode 100644 log4j-docker/src/site/markdown/index.md.vm
 create mode 100644 log4j-docker/src/site/site.xml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/WatchEventManager.java (50%)
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.WatchEventService
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/spring.factories
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.component.properties
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.system.properties
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/site.xml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/app-compose.yml
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/down.sh
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/fluent-bit/fluent-bit.conf
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume-env.sh
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume.conf
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/log4j.properties
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/start-flume.sh
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/definitions.json
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/rabbitmq.config
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/logs.sh
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stop.sh
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stopApp.sh
 create mode 100755 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/up.sh
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/SampleApplication.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/GlobalExceptionHandler.java (51%)
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/WebMvcConfig.java
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/utils/spring/SampleResponseErrorHandler.java (56%)
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/META-INF/MANIFEST.MF
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/application.yml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/readme.txt
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplication.java (64%)
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/config/SecurityConfiguration.java (52%)
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/application.yaml
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
 copy log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java => log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/test/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplicationTest.java (68%)
 create mode 100644 log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
 create mode 100644 log4j-spring-cloud-config/pom.xml
 create mode 100644 log4j-spring-cloud-config/src/site/markdown/index.md
 create mode 100644 log4j-spring-cloud-config/src/site/site.xml
 create mode 100644 src/site/markdown/manual/cloud.md
 create mode 100644 src/site/resources/images/DockerFluentd.drawio
 create mode 100644 src/site/resources/images/DockerFluentd.png
 create mode 100644 src/site/resources/images/DockerFluentdAggregator.drawio
 create mode 100644 src/site/resources/images/DockerFluentdAggregator.png
 create mode 100644 src/site/resources/images/DockerLogFile.drawio
 create mode 100644 src/site/resources/images/DockerLogFile.png
 create mode 100644 src/site/resources/images/DockerStdout.drawio
 create mode 100644 src/site/resources/images/DockerStdout.png
 create mode 100644 src/site/resources/images/DockerTCP.drawio
 create mode 100644 src/site/resources/images/DockerTCP.png
 create mode 100644 src/site/resources/images/LoggerAggregator.drawio
 create mode 100644 src/site/resources/images/LoggerAggregator.png


[logging-log4j2] 08/12: Functional Sample

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 3c8ea80baec80dde1ded31f4b1502ada33d53b06
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Mon Mar 4 06:19:32 2019 -0700

    Functional Sample
---
 .../org/apache/logging/log4j/util/Base64Util.java  |   32 +
 .../org/apache/logging/log4j/util/Base64Util.java  |   64 +
 .../log4j/core/config/AbstractConfiguration.java   |    2 +-
 .../log4j/core/config/ConfigurationFactory.java    |   46 +-
 .../log4j/core/config/ConfigurationSource.java     |   19 +-
 .../logging/log4j/core/config/HttpWatcher.java     |   48 +-
 .../log4j/core/net/UrlConnectionFactory.java       |  101 +
 .../log4j/core/util/AuthorizationProvider.java     |   27 +
 .../core/util/BasicAuthorizationProvider.java      |   65 +
 .../logging/log4j/core/util/PasswordDecryptor.java |   25 +
 log4j-spring-cloud-config/hs_err_pid81053.log      |  697 ++
 .../log4j-spring-cloud-config-client/pom.xml       |    6 +-
 .../client/Log4j2CloudConfigLoggingSystem.java     |    5 +
 .../cloud/config/client/Log4j2EventListener.java   |   34 +-
 .../Dockerfile                                     |   16 +
 .../README.md                                      |   53 +
 .../docker/docker-compose.yml                      |   23 +
 .../docker/down.sh                                 |    5 +
 .../docker/init/rabbit/definitions.json            |   36 +
 .../docker/init/rabbit/rabbitmq.config             |   14 +
 .../docker/logs.sh                                 |    7 +
 .../docker/restartApp.sh                           |   18 +
 .../docker/stop.sh                                 |    6 +
 .../docker/stopApp.sh                              |    3 +
 .../docker/up.sh                                   |    6 +
 .../pom.xml                                        |  214 +
 .../cloud/config/sample/SampleApplication.java     |   17 +
 .../sample/config/GlobalExceptionHandler.java      |   36 +
 .../cloud/config/sample/config/WebMvcConfig.java   |   39 +
 .../config/sample/controller/SampleController.java |   38 +
 .../utils/spring/SampleResponseErrorHandler.java   |   36 +
 .../src/main/resources/META-INF/MANIFEST.MF        |    0
 .../src/main/resources/application.yml             |   30 +
 .../src/main/resources/bootstrap.yml               |    5 +
 .../src/main/resources/log4j2.component.properties |    3 +
 .../mvn.txt                                        |  135 +
 .../pom.xml                                        |  208 +
 .../readme.txt                                     |    0
 .../src/main/config-repo/log4j2.xml                |   22 +
 .../config/service/ConfigServiceApplication.java   |   29 +
 .../service/config/SecurityConfiguration.java      |   37 +
 .../src/main/resources/application.yaml            |   38 +
 .../src/main/resources/log4j2.xml                  |   29 +
 .../service/ConfigServiceApplicationTest.java      |   32 +
 .../pom.xml                                        |   67 +-
 .../log4j-spring-cloud-config-server/pom.txt       | 7048 ++++++++++++++++++++
 .../log4j-spring-cloud-config-server/pom.xml       |    2 +-
 log4j-spring-cloud-config/pom.xml                  |   38 +-
 48 files changed, 9312 insertions(+), 149 deletions(-)

diff --git a/log4j-api-java9/src/main/java/org/apache/logging/log4j/util/Base64Util.java b/log4j-api-java9/src/main/java/org/apache/logging/log4j/util/Base64Util.java
new file mode 100644
index 0000000..63ac84f
--- /dev/null
+++ b/log4j-api-java9/src/main/java/org/apache/logging/log4j/util/Base64Util.java
@@ -0,0 +1,32 @@
+/*
+ * 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.util;
+
+import java.util.Base64;
+
+
+/**
+ * C
+ */
+public class Base64Util {
+
+    private static final Base64.Encoder encoder = Base64.getEncoder();
+
+    public static String encode(String str) {
+        return str != null ? encoder.encodeToString(str.getBytes()) : null;
+    }
+}
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Base64Util.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Base64Util.java
new file mode 100644
index 0000000..66ff989
--- /dev/null
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Base64Util.java
@@ -0,0 +1,64 @@
+/*
+ * 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.util;
+
+import java.lang.reflect.Method;
+
+import org.apache.logging.log4j.status.StatusLogger;
+
+/**
+ *
+ */
+public class Base64Util {
+
+    private static Method encodeMethod = null;
+    private static Object encoder = null;
+
+    static {
+        try {
+            Class<?> clazz = LoaderUtil.loadClass("java.util.Base64");
+            Class<?> encoderClazz = LoaderUtil.loadClass("java.util.Base64$Encoder");
+            Method method = clazz.getMethod("getEncoder");
+            encoder = method.invoke(null);
+            encodeMethod = encoderClazz.getMethod("encodeToString", byte[].class);
+        } catch (Exception ex) {
+            try {
+                Class<?> clazz = LoaderUtil.loadClass("javax.xml.bind.DataTypeConverter");
+                encodeMethod = clazz.getMethod("printBase64Binary");
+            } catch (Exception ex2) {
+                LowLevelLogUtil.logException("Unable to create a Base64 Encoder", ex2);
+            }
+        }
+    }
+
+    public static String encode(String str) {
+        if (str == null) {
+            return null;
+        }
+        byte [] data = str.getBytes();
+        if (encodeMethod != null) {
+            try {
+                return (String) encodeMethod.invoke(encoder, data);
+            } catch (Exception ex) {
+                StatusLogger.getLogger().warn("Unable to encode String: " + ex.getMessage());
+                return str;
+            }
+        }
+        StatusLogger.getLogger().warn("No Encoder, unable to encode string");
+        return str;
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 4a93e02..42e9940 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -289,7 +289,7 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
         }
         LOGGER.debug("Starting configuration {}", this);
         this.setStarting();
-        if (watchManager.getIntervalSeconds() > 0) {
+        if (watchManager.getIntervalSeconds() >= 0) {
             watchManager.start();
         }
         if (hasAsyncLoggers()) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index f4adea0..4a68a63 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -30,8 +30,6 @@ import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import javax.net.ssl.HttpsURLConnection;
-
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -41,9 +39,10 @@ import org.apache.logging.log4j.core.config.plugins.util.PluginManager;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.lookup.Interpolator;
 import org.apache.logging.log4j.core.lookup.StrSubstitutor;
-import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
-import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.UrlConnectionFactory;
 import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.AuthorizationProvider;
+import org.apache.logging.log4j.core.util.BasicAuthorizationProvider;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.NetUtils;
@@ -93,6 +92,8 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
      */
     public static final String CONFIGURATION_FILE_PROPERTY = "log4j.configurationFile";
 
+    public static final String AUTHORIZATION_PROVIDER = "log4j2.authorizationProvider";
+
     /**
      * Plugin category used to inject a ConfigurationFactory {@link org.apache.logging.log4j.core.config.plugins.Plugin}
      * class.
@@ -135,6 +136,9 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
     private static final Lock LOCK = new ReentrantLock();
 
     private static final String HTTPS = "https";
+    private static final String HTTP = "http";
+
+    private static AuthorizationProvider authorizationProvider = null;
 
     /**
      * Returns the ConfigurationFactory.
@@ -148,7 +152,8 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
             try {
                 if (factories == null) {
                     final List<ConfigurationFactory> list = new ArrayList<>();
-                    final String factoryClass = PropertiesUtil.getProperties().getStringProperty(CONFIGURATION_FACTORY_PROPERTY);
+                    PropertiesUtil props = PropertiesUtil.getProperties();
+                    final String factoryClass = props.getStringProperty(CONFIGURATION_FACTORY_PROPERTY);
                     if (factoryClass != null) {
                         addFactory(list, factoryClass);
                     }
@@ -170,6 +175,22 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
                     // see above comments about double-checked locking
                     //noinspection NonThreadSafeLazyInitialization
                     factories = Collections.unmodifiableList(list);
+                    final String authClass = props.getStringProperty(AUTHORIZATION_PROVIDER);
+                    if (authClass != null) {
+                        try {
+                            Object obj = LoaderUtil.newInstanceOf(authClass);
+                            if (obj instanceof AuthorizationProvider) {
+                                authorizationProvider = (AuthorizationProvider) obj;
+                            } else {
+                                LOGGER.warn("{} is not an AuthorizationProvider, using default", obj.getClass().getName());
+                            }
+                        } catch (Exception ex) {
+                            LOGGER.warn("Unable to create {}, using default: {}", authClass, ex.getMessage());
+                        }
+                    }
+                    if (authorizationProvider == null) {
+                        authorizationProvider = new BasicAuthorizationProvider(props);
+                    }
                 }
             } finally {
                 LOCK.unlock();
@@ -180,6 +201,10 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
         return configFactory;
     }
 
+    public static AuthorizationProvider getAuthorizationProvider() {
+        return authorizationProvider;
+    }
+
     private static void addFactory(final Collection<ConfigurationFactory> list, final String factoryClass) {
         try {
             addFactory(list, Loader.loadClass(factoryClass).asSubclass(ConfigurationFactory.class));
@@ -302,16 +327,7 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
     protected ConfigurationSource getInputFromString(final String config, final ClassLoader loader) {
         try {
             final URL url = new URL(config);
-            URLConnection urlConnection = url.openConnection();
-            if (url.getProtocol().equals(HTTPS)) {
-                SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
-                if (sslConfiguration != null) {
-                    ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
-                    if (!sslConfiguration.isVerifyHostName()) {
-                        ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
-                    }
-                }
-            }
+            URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
             File file = FileUtils.fileFromUri(url.toURI());
             if (file != null) {
                 return new ConfigurationSource(urlConnection.getInputStream(), FileUtils.fileFromUri(url.toURI()));
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index d7c1808..759386f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -31,11 +31,8 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.util.Objects;
 
-import javax.net.ssl.HttpsURLConnection;
-
 import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
-import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.UrlConnectionFactory;
 import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Loader;
@@ -52,6 +49,7 @@ public class ConfigurationSource {
      */
     public static final ConfigurationSource NULL_SOURCE = new ConfigurationSource(new byte[0], null, 0);
     private static final String HTTPS = "https";
+    private static final String HTTP = "http";
 
     private final File file;
     private final URL url;
@@ -320,19 +318,10 @@ public class ConfigurationSource {
         }
         try {
             URL url = configLocation.toURL();
-            URLConnection urlConnection = url.openConnection();
-            if (url.getProtocol().equals(HTTPS)) {
-                SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
-                if (sslConfiguration != null) {
-                    ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
-                    if (!sslConfiguration.isVerifyHostName()) {
-                        ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
-                    }
-                }
-            }
+            URLConnection urlConnection = UrlConnectionFactory.createConnection(url);
             InputStream is = urlConnection.getInputStream();
             long lastModified = urlConnection.getLastModified();
-            return new ConfigurationSource(configLocation.toURL().openStream(), configLocation.toURL(), lastModified);
+            return new ConfigurationSource(is, configLocation.toURL(), lastModified);
         } catch (final MalformedURLException ex) {
             ConfigurationFactory.LOGGER.error("Invalid URL {}", configLocation.toString(), ex);
         } catch (final Exception ex) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index 8a2f189..1673c07 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -23,12 +23,11 @@ import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
-import javax.net.ssl.HttpsURLConnection;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAliases;
-import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.UrlConnectionFactory;
 import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
 import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.AbstractWatcher;
@@ -45,16 +44,9 @@ public class HttpWatcher extends AbstractWatcher {
 
     private Logger LOGGER = StatusLogger.getLogger();
 
-    private static int DEFAULT_TIMEOUT = 60000;
-    private int connectTimeoutMillis = DEFAULT_TIMEOUT;
-    private int readTimeoutMillis = DEFAULT_TIMEOUT;
     private SslConfiguration sslConfiguration;
     private URL url;
     private volatile long lastModifiedMillis;
-    private static final String JSON = "application/json";
-    private static final String XML = "application/xml";
-    private static final String PROPERTIES = "text/x-java-properties";
-    private static final String TEXT = "text/plain";
     private static final int NOT_MODIFIED = 304;
     private static final int OK = 200;
     private static final int BUF_SIZE = 1024;
@@ -104,35 +96,15 @@ public class HttpWatcher extends AbstractWatcher {
 
     private boolean refreshConfiguration() {
         try {
-            final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
-            urlConnection.setAllowUserInteraction(false);
-            urlConnection.setDoOutput(true);
-            urlConnection.setDoInput(true);
-            urlConnection.setRequestMethod("GET");
-            if (connectTimeoutMillis > 0) {
-                urlConnection.setConnectTimeout(connectTimeoutMillis);
-            }
-            if (readTimeoutMillis > 0) {
-                urlConnection.setReadTimeout(readTimeoutMillis);
-            }
-            String[] fileParts = url.getFile().split("\\.");
-            String type = fileParts[fileParts.length - 1].trim();
-            String contentType = isXml(type) ? XML : isJson(type) ? JSON : isProperties(type) ? PROPERTIES : TEXT;
-            urlConnection.setRequestProperty("Content-Type", contentType);
-            urlConnection.setIfModifiedSince(lastModifiedMillis);
-            if (url.getProtocol().equals(HTTPS) && sslConfiguration != null) {
-                ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
-                if (!sslConfiguration.isVerifyHostName()) {
-                    ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
-                }
-            }
-
+            final HttpURLConnection urlConnection = UrlConnectionFactory.createConnection(url, lastModifiedMillis,
+                sslConfiguration);
             urlConnection.connect();
 
             try {
                 int code = urlConnection.getResponseCode();
                 switch (code) {
                     case NOT_MODIFIED: {
+                        LOGGER.debug("Configuration Not Modified");
                         return false;
                     }
                     case OK: {
@@ -179,16 +151,4 @@ public class HttpWatcher extends AbstractWatcher {
         }
         return result.toByteArray();
     }
-
-    private boolean isXml(String type) {
-        return type.equalsIgnoreCase("xml");
-    }
-
-    private boolean isJson(String type) {
-        return type.equalsIgnoreCase("json") || type.equalsIgnoreCase("jsn");
-    }
-
-    private boolean isProperties(String type) {
-        return type.equalsIgnoreCase("properties");
-    }
 }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
new file mode 100644
index 0000000..7f17869
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
@@ -0,0 +1,101 @@
+/*
+ * 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.core.net;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import javax.net.ssl.HttpsURLConnection;
+
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.AuthorizationProvider;
+
+/**
+ * Constructs an HTTPURLConnection. This class should be considered to be internal
+ */
+public class UrlConnectionFactory {
+
+    private static int DEFAULT_TIMEOUT = 60000;
+    private static int connectTimeoutMillis = DEFAULT_TIMEOUT;
+    private static int readTimeoutMillis = DEFAULT_TIMEOUT;
+    private static final String JSON = "application/json";
+    private static final String XML = "application/xml";
+    private static final String PROPERTIES = "text/x-java-properties";
+    private static final String TEXT = "text/plain";
+    private static final String HTTP = "http";
+    private static final String HTTPS = "https";
+
+    public static HttpURLConnection createConnection(URL url, long lastModifiedMillis, SslConfiguration sslConfiguration)
+        throws IOException {
+        final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+        AuthorizationProvider provider = ConfigurationFactory.getAuthorizationProvider();
+        if (provider != null) {
+            provider.addAuthorization(urlConnection);
+        }
+        urlConnection.setAllowUserInteraction(false);
+        urlConnection.setDoOutput(true);
+        urlConnection.setDoInput(true);
+        urlConnection.setRequestMethod("GET");
+        if (connectTimeoutMillis > 0) {
+            urlConnection.setConnectTimeout(connectTimeoutMillis);
+        }
+        if (readTimeoutMillis > 0) {
+            urlConnection.setReadTimeout(readTimeoutMillis);
+        }
+        String[] fileParts = url.getFile().split("\\.");
+        String type = fileParts[fileParts.length - 1].trim();
+        String contentType = isXml(type) ? XML : isJson(type) ? JSON : isProperties(type) ? PROPERTIES : TEXT;
+        urlConnection.setRequestProperty("Content-Type", contentType);
+        if (lastModifiedMillis > 0) {
+            urlConnection.setIfModifiedSince(lastModifiedMillis);
+        }
+        if (url.getProtocol().equals(HTTPS) && sslConfiguration != null) {
+            ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
+            if (!sslConfiguration.isVerifyHostName()) {
+                ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+            }
+        }
+        return urlConnection;
+    }
+
+    public static URLConnection createConnection(URL url) throws IOException {
+        URLConnection urlConnection = null;
+        if (url.getProtocol().equals(HTTPS) || url.getProtocol().equals(HTTP)) {
+            urlConnection = createConnection(url, 0, SslConfigurationFactory.getSslConfiguration());
+        } else {
+            urlConnection = url.openConnection();
+        }
+        return urlConnection;
+    }
+
+
+    private static boolean isXml(String type) {
+        return type.equalsIgnoreCase("xml");
+    }
+
+    private static boolean isJson(String type) {
+        return type.equalsIgnoreCase("json") || type.equalsIgnoreCase("jsn");
+    }
+
+    private static boolean isProperties(String type) {
+        return type.equalsIgnoreCase("properties");
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java
new file mode 100644
index 0000000..27be12a
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AuthorizationProvider.java
@@ -0,0 +1,27 @@
+/*
+ * 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.core.util;
+
+import java.net.URLConnection;
+
+/**
+ * Interface to be implemented to add an Authorization header to an HTTP request.
+ */
+public interface AuthorizationProvider {
+
+    void addAuthorization(URLConnection urlConnection);
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
new file mode 100644
index 0000000..8ad23df
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
@@ -0,0 +1,65 @@
+/*
+ * 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.core.util;
+
+import java.net.URLConnection;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Base64Util;
+import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
+
+/**
+ * Provides the Basic Authorization header to a request.
+ */
+public class BasicAuthorizationProvider implements AuthorizationProvider {
+
+    public static final String CONFIG_USER_NAME = "log4j2.configurationUserName";
+    public static final String CONFIG_PASSWORD = "log4j2.configurationPassword";
+    public static final String PASSWORD_DECRYPTOR = "log4j2.passwordDecryptor";
+
+    private static Logger LOGGER = StatusLogger.getLogger();
+
+    private String authString = null;
+
+    public BasicAuthorizationProvider(PropertiesUtil props) {
+        String userName = props.getStringProperty(CONFIG_USER_NAME);
+        String password = props.getStringProperty(CONFIG_PASSWORD);
+        String decryptor = props.getStringProperty(PASSWORD_DECRYPTOR);
+        if (decryptor != null) {
+            try {
+                Object obj = LoaderUtil.newInstanceOf(decryptor);
+                if (obj instanceof PasswordDecryptor) {
+                    password = ((PasswordDecryptor) obj).decryptPassword(password);
+                }
+            } catch (Exception ex) {
+                LOGGER.warn("Unable to decrypt password.", ex);
+            }
+        }
+        if (userName != null && password != null) {
+            authString = "Basic " + Base64Util.encode(userName + ":" + password);
+        }
+    }
+
+    @Override
+    public void addAuthorization(URLConnection urlConnection) {
+        if (authString != null) {
+            urlConnection.setRequestProperty("Authorization", authString);
+        }
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/PasswordDecryptor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/PasswordDecryptor.java
new file mode 100644
index 0000000..a903027
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/PasswordDecryptor.java
@@ -0,0 +1,25 @@
+/*
+ * 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.core.util;
+
+/**
+ * Decrypt passwords.
+ */
+public interface PasswordDecryptor {
+
+    String decryptPassword(String password);
+}
diff --git a/log4j-spring-cloud-config/hs_err_pid81053.log b/log4j-spring-cloud-config/hs_err_pid81053.log
new file mode 100644
index 0000000..5f59865
--- /dev/null
+++ b/log4j-spring-cloud-config/hs_err_pid81053.log
@@ -0,0 +1,697 @@
+#
+# A fatal error has been detected by the Java Runtime Environment:
+#
+#  SIGSEGV (0xb) at pc=0x000000012a33e45f, pid=81053, tid=0x000000000000db07
+#
+# JRE version: Java(TM) SE Runtime Environment (8.0_144-b01) (build 1.8.0_144-b01)
+# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.144-b01 mixed mode bsd-amd64 compressed oops)
+# Problematic frame:
+# C  [libawt_lwawt.dylib+0x1c45f]  OGLSD_SetScratchSurface+0x49
+#
+# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
+#
+# If you would like to submit a bug report, please visit:
+#   http://bugreport.java.com/bugreport/crash.jsp
+# The crash happened outside the Java Virtual Machine in native code.
+# See problematic frame for where to report the bug.
+#
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x00007f7ff81cf000):  JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=56071, stack(0x00007000089d7000,0x0000700008ad7000)]
+
+siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000002
+
+Registers:
+RAX=0x00000000ffffffff, RBX=0x0000000000000002, RCX=0x0000000000000047, RDX=0x000000012a35f258
+RSP=0x0000700008ad6750, RBP=0x0000700008ad6770, RSI=0x00007f7ff71c3260, RDI=0x00007f7ff81cf1f8
+R8 =0x0000000000000c52, R9 =0xffffffff00000000, R10=0x00000001082be278, R11=0x00000001082c0180
+R12=0x0000000000000000, R13=0x0000700008ad6908, R14=0x00007f7ff81cf1f8, R15=0x00007f7ff81cf000
+RIP=0x000000012a33e45f, EFLAGS=0x0000000000010202, ERR=0x0000000000000004
+  TRAPNO=0x000000000000000e
+
+Top of Stack: (sp=0x0000700008ad6750)
+0x0000700008ad6750:   00007f7ff71c3260 0000000000000000
+0x0000700008ad6760:   00007f7ff81ebe10 00007f7ff81cf000
+0x0000700008ad6770:   0000700008ad67f0 000000012a35ed36
+0x0000700008ad6780:   00007f7ff641d600 0000000200000001
+0x0000700008ad6790:   00007f00f81ec298 0000000000000000
+0x0000700008ad67a0:   0000000000000000 0000000000000000
+0x0000700008ad67b0:   0000700008ad67f0 00007f7ff81ebe20
+0x0000700008ad67c0:   0000000000bdf250 00007f7ff81cf1f8
+0x0000700008ad67d0:   000000017bbc2bd8 0000000000000000
+0x0000700008ad67e0:   0000700008ad6988 00007f7ff81cf000
+0x0000700008ad67f0:   0000700008ad6840 00000001082be2ea
+0x0000700008ad6800:   00000005c021bbd8 0000000103138a00
+0x0000700008ad6810:   0000000000000064 0000000000000000
+0x0000700008ad6820:   0000000000000064 00007f7ff66ab4d8
+0x0000700008ad6830:   0000700008ad6890 0000000102f501e8
+0x0000700008ad6840:   0000700008ad6960 00000001082bfb3c
+0x0000700008ad6850:   0000000000000001 00007f7ff66abe80
+0x0000700008ad6860:   00000005c021bc00 00007f7ff81cf000
+0x0000700008ad6870:   00007f7ff81cf000 0000000106a13a00
+0x0000700008ad6880:   0000700008ad6988 00007f7ff81cf000
+0x0000700008ad6890:   0000700008ad68e0 00000001085af4e8
+0x0000700008ad68a0:   00000005c021bbd8 0000000108793266
+0x0000700008ad68b0:   0000700008ad6960 00000001082c01dc
+0x0000700008ad68c0:   ffffffffffffffff 0000000106f9cc78
+0x0000700008ad68d0:   000000010704dc28 0000000000000000
+0x0000700008ad68e0:   0000700008ad6960 00000001081122bd
+0x0000700008ad68f0:   0000700008ad6960 00000001081122bd
+0x0000700008ad6900:   00000001081122bd 00000005c021bbd8
+0x0000700008ad6910:   0000000000000001 00000005c021bc60
+0x0000700008ad6920:   0000700008ad6910 0000000106fa04a1
+0x0000700008ad6930:   0000700008ad6988 0000000106fa07f8
+0x0000700008ad6940:   0000000000000000 0000000106fa05a8 
+
+Instructions: (pc=0x000000012a33e45f)
+0x000000012a33e43f:   c0 e9 82 00 00 00 48 8b 5e 10 48 85 db 75 0e bf
+0x000000012a33e44f:   01 00 00 00 48 8d 15 67 7b 03 00 eb d6 49 89 fe
+0x000000012a33e45f:   4c 8b 3b 30 c0 e8 21 a6 02 00 49 8b 3f 49 89 c4
+0x000000012a33e46f:   48 8b 35 aa 02 06 00 30 c0 e8 51 a7 02 00 48 85 
+
+Register to memory mapping:
+
+RAX=0x00000000ffffffff is an unknown value
+RBX=0x0000000000000002 is an unknown value
+RCX=0x0000000000000047 is an unknown value
+RDX=0x000000012a35f258: Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer+0xb5c in /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt_lwawt.dylib at 0x000000012a322000
+RSP=0x0000700008ad6750 is pointing into the stack for thread: 0x00007f7ff81cf000
+RBP=0x0000700008ad6770 is pointing into the stack for thread: 0x00007f7ff81cf000
+RSI=0x00007f7ff71c3260 is an unknown value
+RDI=0x00007f7ff81cf1f8 is an unknown value
+R8 =0x0000000000000c52 is an unknown value
+R9 =0xffffffff00000000 is an unknown value
+R10=0x00000001082be278 is at entry_point+56 in (nmethod*)0x00000001082be0d0
+R11=0x00000001082c0180 is at entry_point+0 in (nmethod*)0x00000001082c0010
+R12=0x0000000000000000 is an unknown value
+R13=0x0000700008ad6908 is pointing into the stack for thread: 0x00007f7ff81cf000
+R14=0x00007f7ff81cf1f8 is an unknown value
+R15=0x00007f7ff81cf000 is a thread
+
+
+Stack: [0x00007000089d7000,0x0000700008ad7000],  sp=0x0000700008ad6750,  free space=1021k
+Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
+C  [libawt_lwawt.dylib+0x1c45f]  OGLSD_SetScratchSurface+0x49
+C  [libawt_lwawt.dylib+0x3cd36]  Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer+0x63a
+J 2700  sun.java2d.opengl.OGLRenderQueue.flushBuffer(JI)V (0 bytes) @ 0x00000001082be2ea [0x00000001082be240+0xaa]
+J 2695 C1 sun.java2d.opengl.OGLRenderQueue.flushBuffer()V (41 bytes) @ 0x00000001082bfb3c [0x00000001082bf8e0+0x25c]
+J 2694 C1 sun.java2d.opengl.OGLRenderQueue.access$100(Lsun/java2d/opengl/OGLRenderQueue;)V (5 bytes) @ 0x00000001082c01dc [0x00000001082c0180+0x5c]
+j  sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run()V+81
+v  ~StubRoutines::call_stub
+V  [libjvm.dylib+0x2ee70a]  JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x6ae
+V  [libjvm.dylib+0x2eeeae]  JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x164
+V  [libjvm.dylib+0x2ef05a]  JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*)+0x4a
+V  [libjvm.dylib+0x3497b1]  thread_entry(JavaThread*, Thread*)+0x7c
+V  [libjvm.dylib+0x56c0b3]  JavaThread::thread_main_inner()+0x9b
+V  [libjvm.dylib+0x56d7a0]  JavaThread::run()+0x1c2
+V  [libjvm.dylib+0x48baee]  java_start(Thread*)+0xf6
+C  [libsystem_pthread.dylib+0x3339]  _pthread_body+0x7e
+C  [libsystem_pthread.dylib+0x62a7]  _pthread_start+0x46
+C  [libsystem_pthread.dylib+0x2445]  thread_start+0xd
+C  0x0000000000000000
+
+Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
+J 2700  sun.java2d.opengl.OGLRenderQueue.flushBuffer(JI)V (0 bytes) @ 0x00000001082be278 [0x00000001082be240+0x38]
+J 2695 C1 sun.java2d.opengl.OGLRenderQueue.flushBuffer()V (41 bytes) @ 0x00000001082bfb3c [0x00000001082bf8e0+0x25c]
+J 2694 C1 sun.java2d.opengl.OGLRenderQueue.access$100(Lsun/java2d/opengl/OGLRenderQueue;)V (5 bytes) @ 0x00000001082c01dc [0x00000001082c0180+0x5c]
+j  sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run()V+81
+v  ~StubRoutines::call_stub
+
+---------------  P R O C E S S  ---------------
+
+Java Threads: ( => current thread )
+  0x00007f7ff8229000 JavaThread "Worker-MBeans-192.168.51.28:6336" [_thread_blocked, id=45831, stack(0x000070000853c000,0x000070000863c000)]
+  0x00007f7ff8d64800 JavaThread "SwingWorker-pool-1-thread-10" daemon [_thread_blocked, id=122371, stack(0x000070000a22b000,0x000070000a32b000)]
+  0x00007f7ff8ce4000 JavaThread "SwingWorker-pool-1-thread-9" daemon [_thread_blocked, id=122883, stack(0x000070000a128000,0x000070000a228000)]
+  0x00007f7ff9db2800 JavaThread "SwingWorker-pool-1-thread-8" daemon [_thread_blocked, id=93807, stack(0x000070000a025000,0x000070000a125000)]
+  0x00007f7ff8ce3000 JavaThread "SwingWorker-pool-1-thread-7" daemon [_thread_blocked, id=129039, stack(0x0000700009481000,0x0000700009581000)]
+  0x00007f7ff78d7000 JavaThread "Worker-Overview-192.168.51.28:6336" [_thread_blocked, id=125031, stack(0x0000700009e1f000,0x0000700009f1f000)]
+  0x00007f7ff9853800 JavaThread "SwingWorker-pool-1-thread-6" daemon [_thread_blocked, id=92419, stack(0x0000700009d1c000,0x0000700009e1c000)]
+  0x00007f7ffa84b800 JavaThread "SwingWorker-pool-1-thread-5" daemon [_thread_blocked, id=92163, stack(0x0000700009c19000,0x0000700009d19000)]
+  0x00007f7ff6d3f000 JavaThread "SwingWorker-pool-1-thread-4" daemon [_thread_blocked, id=91911, stack(0x0000700009b16000,0x0000700009c16000)]
+  0x00007f7ff6d4e000 JavaThread "SwingWorker-pool-1-thread-3" daemon [_thread_blocked, id=91651, stack(0x0000700009a13000,0x0000700009b13000)]
+  0x00007f7ff857d000 JavaThread "SwingWorker-pool-1-thread-2" daemon [_thread_blocked, id=91399, stack(0x0000700009910000,0x0000700009a10000)]
+  0x00007f7ff981d800 JavaThread "Timer-192.168.51.28:6336" daemon [_thread_blocked, id=91139, stack(0x000070000980d000,0x000070000990d000)]
+  0x00007f7ff6d4d000 JavaThread "SwingWorker-pool-1-thread-1" daemon [_thread_blocked, id=126767, stack(0x000070000970a000,0x000070000980a000)]
+  0x00007f7ff9bd4000 JavaThread "GC Daemon" daemon [_thread_blocked, id=30223, stack(0x0000700008848000,0x0000700008948000)]
+  0x00007f7ff85e3800 JavaThread "RMI RenewClean-[192.168.51.28:39200]" daemon [_thread_blocked, id=6919, stack(0x0000700008745000,0x0000700008845000)]
+  0x00007f7ff85e3000 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=9991, stack(0x0000700008642000,0x0000700008742000)]
+  0x00007f7ff7b51000 JavaThread "TimerQueue" daemon [_thread_blocked, id=66575, stack(0x000070000906c000,0x000070000916c000)]
+  0x00007f7ff905b800 JavaThread "DestroyJavaVM" [_thread_blocked, id=8963, stack(0x0000700006df4000,0x0000700006ef4000)]
+  0x00007f7ff8242000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=73731, stack(0x0000700008de3000,0x0000700008ee3000)]
+  0x00007f7ff8240000 JavaThread "Thread-1" [_thread_blocked, id=57603, stack(0x0000700008ce0000,0x0000700008de0000)]
+  0x00007f7ff8234000 JavaThread "Thread-0" [_thread_blocked, id=73999, stack(0x0000700008bdd000,0x0000700008cdd000)]
+  0x00007f7ff7a22000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=75023, stack(0x0000700008ada000,0x0000700008bda000)]
+=>0x00007f7ff81cf000 JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=56071, stack(0x00007000089d7000,0x0000700008ad7000)]
+  0x00007f7ff79c9000 JavaThread "AWT-Shutdown" [_thread_blocked, id=37419, stack(0x00007000083b6000,0x00007000084b6000)]
+  0x00007f7ff880d000 JavaThread "AppKit Thread" daemon [_thread_in_native, id=775, stack(0x00007ffeee257000,0x00007ffeeea57000)]
+  0x00007f7ff782c800 JavaThread "Service Thread" daemon [_thread_blocked, id=22019, stack(0x000070000812d000,0x000070000822d000)]
+  0x00007f7ff8801800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=15875, stack(0x000070000802a000,0x000070000812a000)]
+  0x00007f7ff782a000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=16387, stack(0x0000700007f27000,0x0000700008027000)]
+  0x00007f7ff7827800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=15363, stack(0x0000700007e24000,0x0000700007f24000)]
+  0x00007f7ff7828000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=15107, stack(0x0000700007d21000,0x0000700007e21000)]
+  0x00007f7ff7826800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=17155, stack(0x0000700007c1e000,0x0000700007d1e000)]
+  0x00007f7ff7824000 JavaThread "Finalizer" daemon [_thread_blocked, id=13827, stack(0x0000700007b1b000,0x0000700007c1b000)]
+  0x00007f7ff8000000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13315, stack(0x0000700007a18000,0x0000700007b18000)]
+
+Other Threads:
+  0x00007f7ff6807000 VMThread [stack: 0x0000700007915000,0x0000700007a15000] [id=13059]
+  0x00007f7ff782d800 WatcherThread [stack: 0x0000700008230000,0x0000700008330000] [id=22531]
+
+VM state:not at safepoint (normal execution)
+
+VM Mutex/Monitor currently owned by a thread: None
+
+Heap:
+ PSYoungGen      total 51200K, used 1788K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
+  eden space 38912K, 4% used [0x0000000715580000,0x000000071573f398,0x0000000717b80000)
+  from space 12288K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719580000)
+  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
+ ParOldGen       total 203264K, used 12973K [0x00000005c0000000, 0x00000005cc680000, 0x0000000715580000)
+  object space 203264K, 6% used [0x00000005c0000000,0x00000005c0cab7f0,0x00000005cc680000)
+ Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+
+Card table byte_map: [0x0000000103f67000,0x0000000104f68000] byte_map_base: 0x0000000101167000
+
+Marking Bits: (ParMarkBitMap*) 0x00000001034f35d0
+ Begin Bits: [0x000000011710a000, 0x000000011f10a000)
+ End Bits:   [0x000000011f10a000, 0x000000012710a000)
+
+Polling page: 0x0000000101262000
+
+CodeCache: size=245760Kb used=18337Kb max_used=18452Kb free=227422Kb
+ bounds [0x000000010810a000, 0x000000010933a000, 0x000000011710a000]
+ total_blobs=5862 nmethods=5194 adapters=578
+ compilation: enabled
+
+Compilation events (10 events):
+Event: 4290.961 Thread 0x00007f7ff8801800 nmethod 6284 0x0000000108e8de90 code [0x0000000108e8dfe0, 0x0000000108e8e0f0]
+Event: 4290.961 Thread 0x00007f7ff8801800 6285       3       sun.awt.geom.Edge::setEquivalence (6 bytes)
+Event: 4290.961 Thread 0x00007f7ff8801800 nmethod 6285 0x0000000108a05ad0 code [0x0000000108a05c20, 0x0000000108a05d70]
+Event: 4290.984 Thread 0x00007f7ff8801800 6286       1       javax.swing.table.JTableHeader::getDraggedColumn (5 bytes)
+Event: 4290.985 Thread 0x00007f7ff8801800 nmethod 6286 0x0000000109008ad0 code [0x0000000109008c20, 0x0000000109008d30]
+Event: 4290.985 Thread 0x00007f7ff8801800 6287       1       javax.swing.table.DefaultTableCellRenderer::revalidate (1 bytes)
+Event: 4290.985 Thread 0x00007f7ff8801800 nmethod 6287 0x0000000109008810 code [0x0000000109008960, 0x0000000109008a70]
+Event: 4291.010 Thread 0x00007f7ff8801800 6288       3       javax.swing.DefaultButtonModel::isSelected (15 bytes)
+Event: 4291.011 Thread 0x00007f7ff8801800 nmethod 6288 0x0000000109008490 code [0x0000000109008600, 0x00000001090087b0]
+Event: 4291.265 Thread 0x00007f7ff8801800 6289   !   3       sun.java2d.opengl.OGLSurfaceData::dispose (68 bytes)
+
+GC Heap History (10 events):
+Event: 3385.203 GC heap before
+{Heap before GC invocations=118 (full 19):
+ PSYoungGen      total 46592K, used 30924K [0x0000000715580000, 0x0000000719280000, 0x00000007c0000000)
+  eden space 30720K, 99% used [0x0000000715580000,0x000000071737b3c0,0x0000000717380000)
+  from space 15872K, 1% used [0x0000000718300000,0x0000000718338000,0x0000000719280000)
+  to   space 15872K, 0% used [0x0000000717380000,0x0000000717380000,0x0000000718300000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+Event: 3385.210 GC heap after
+Heap after GC invocations=118 (full 19):
+ PSYoungGen      total 46592K, used 2623K [0x0000000715580000, 0x0000000719500000, 0x00000007c0000000)
+  eden space 30720K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717380000)
+  from space 15872K, 16% used [0x0000000717380000,0x000000071760fe20,0x0000000718300000)
+  to   space 14848K, 0% used [0x0000000718680000,0x0000000718680000,0x0000000719500000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+}
+Event: 3385.768 GC heap before
+{Heap before GC invocations=119 (full 19):
+ PSYoungGen      total 46592K, used 31986K [0x0000000715580000, 0x0000000719500000, 0x00000007c0000000)
+  eden space 30720K, 95% used [0x0000000715580000,0x000000071722cce8,0x0000000717380000)
+  from space 15872K, 16% used [0x0000000717380000,0x000000071760fe20,0x0000000718300000)
+  to   space 14848K, 0% used [0x0000000718680000,0x0000000718680000,0x0000000719500000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+Event: 3385.772 GC heap after
+Heap after GC invocations=119 (full 19):
+ PSYoungGen      total 48128K, used 224K [0x0000000715580000, 0x0000000719380000, 0x00000007c0000000)
+  eden space 34816K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717780000)
+  from space 13312K, 1% used [0x0000000718680000,0x00000007186b8000,0x0000000719380000)
+  to   space 14336K, 0% used [0x0000000717780000,0x0000000717780000,0x0000000718580000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+}
+Event: 4286.871 GC heap before
+{Heap before GC invocations=120 (full 19):
+ PSYoungGen      total 48128K, used 29718K [0x0000000715580000, 0x0000000719380000, 0x00000007c0000000)
+  eden space 34816K, 84% used [0x0000000715580000,0x000000071724d960,0x0000000717780000)
+  from space 13312K, 1% used [0x0000000718680000,0x00000007186b8000,0x0000000719380000)
+  to   space 14336K, 0% used [0x0000000717780000,0x0000000717780000,0x0000000718580000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27102K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+Event: 4286.917 GC heap after
+Heap after GC invocations=120 (full 19):
+ PSYoungGen      total 49152K, used 988K [0x0000000715580000, 0x0000000719700000, 0x00000007c0000000)
+  eden space 34816K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717780000)
+  from space 14336K, 6% used [0x0000000717780000,0x0000000717877398,0x0000000718580000)
+  to   space 13824K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719700000)
+ ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
+ Metaspace       used 27102K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+}
+Event: 4287.396 GC heap before
+{Heap before GC invocations=121 (full 19):
+ PSYoungGen      total 49152K, used 35804K [0x0000000715580000, 0x0000000719700000, 0x00000007c0000000)
+  eden space 34816K, 100% used [0x0000000715580000,0x0000000717780000,0x0000000717780000)
+  from space 14336K, 6% used [0x0000000717780000,0x0000000717877398,0x0000000718580000)
+  to   space 13824K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719700000)
+ ParOldGen       total 190464K, used 155513K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 81% used [0x00000005c0000000,0x00000005c97de748,0x00000005cba00000)
+ Metaspace       used 27104K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+Event: 4287.401 GC heap after
+Heap after GC invocations=121 (full 19):
+ PSYoungGen      total 51200K, used 1533K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
+  eden space 38912K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717b80000)
+  from space 12288K, 12% used [0x0000000718980000,0x0000000718aff550,0x0000000719580000)
+  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
+ ParOldGen       total 190464K, used 155553K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
+  object space 190464K, 81% used [0x00000005c0000000,0x00000005c97e8748,0x00000005cba00000)
+ Metaspace       used 27104K, capacity 27892K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+}
+Event: 4291.027 GC heap before
+{Heap before GC invocations=122 (full 20):
+ PSYoungGen      total 51200K, used 40099K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
+  eden space 38912K, 99% used [0x0000000715580000,0x0000000717b29a00,0x0000000717b80000)
+  from space 12288K, 12% used [0x0000000718980000,0x0000000718aff550,0x0000000719580000)
+  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
+ ParOldGen       total 256512K, used 244235K [0x00000005c0000000, 0x00000005cfa80000, 0x0000000715580000)
+  object space 256512K, 95% used [0x00000005c0000000,0x00000005cee82f28,0x00000005cfa80000)
+ Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+Event: 4291.264 GC heap after
+Heap after GC invocations=122 (full 20):
+ PSYoungGen      total 51200K, used 0K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
+  eden space 38912K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717b80000)
+  from space 12288K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719580000)
+  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
+ ParOldGen       total 203264K, used 12973K [0x00000005c0000000, 0x00000005cc680000, 0x0000000715580000)
+  object space 203264K, 6% used [0x00000005c0000000,0x00000005c0cab7f0,0x00000005cc680000)
+ Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
+  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
+}
+
+Deoptimization events (10 events):
+Event: 1398.977 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000109279c84 method=sun.java2d.pipe.Region.getIntersectionXYXY(IIII)Lsun/java2d/pipe/Region; @ 72
+Event: 1401.232 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000001087026b4 method=java.util.HashMap$HashIterator.<init>(Ljava/util/HashMap;)V @ 45
+Event: 1428.089 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
+Event: 1466.745 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
+Event: 1509.345 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
+Event: 1510.643 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000001089c653c method=sun.java2d.pipe.Region.endRow([I)V @ 82
+Event: 3382.720 Thread 0x00007f7ff880d000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000010931e72c method=sun.awt.PostEventQueue.flush()V @ 23
+Event: 3383.030 Thread 0x00007f7ff880d000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001088a1088 method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
+Event: 4288.155 Thread 0x00007f7ff880d000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000001091f0458 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 56
+Event: 4288.157 Thread 0x00007f7ff880d000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000001091f0458 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 56
+
+Internal exceptions (10 events):
+Event: 1528.348 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5a238) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1531.336 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5b188) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1543.369 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5c0f0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1554.883 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5d020) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1562.910 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5df50) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1578.936 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c60770) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1610.963 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c616a0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1684.990 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c625d0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 1813.016 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c65f00) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+Event: 2069.046 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c66fa8) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
+
+Events (10 events):
+Event: 4287.396 Executing VM operation: ParallelGCFailedAllocation
+Event: 4287.401 Executing VM operation: ParallelGCFailedAllocation done
+Event: 4288.155 Thread 0x00007f7ff880d000 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00000001091f0458
+Event: 4288.155 Thread 0x00007f7ff880d000 DEOPT PACKING pc=0x00000001091f0458 sp=0x00007ffeeea52090
+Event: 4288.155 Thread 0x00007f7ff880d000 DEOPT UNPACKING pc=0x000000010810f229 sp=0x00007ffeeea51f98 mode 2
+Event: 4288.157 Thread 0x00007f7ff880d000 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00000001091f0458
+Event: 4288.157 Thread 0x00007f7ff880d000 DEOPT PACKING pc=0x00000001091f0458 sp=0x00007ffeeea52090
+Event: 4288.157 Thread 0x00007f7ff880d000 DEOPT UNPACKING pc=0x000000010810f229 sp=0x00007ffeeea51f98 mode 2
+Event: 4291.026 Executing VM operation: ParallelGCFailedAllocation
+Event: 4291.264 Executing VM operation: ParallelGCFailedAllocation done
+
+
+Dynamic libraries:
+0x000000001cbdb000 	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
+0x000000001cbdb000 	/System/Library/Frameworks/Security.framework/Versions/A/Security
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
+0x000000001cbdb000 	/usr/lib/libz.1.dylib
+0x000000001cbdb000 	/usr/lib/libSystem.B.dylib
+0x000000001cbdb000 	/usr/lib/libobjc.A.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
+0x000000001cbdb000 	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
+0x000000001cbdb000 	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
+0x000000001cbdb000 	/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
+0x000000001cbdb000 	/System/Library/Frameworks/Metal.framework/Versions/A/Metal
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
+0x000000001cbdb000 	/usr/lib/libenergytrace.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
+0x000000001cbdb000 	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
+0x000000001cbdb000 	/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
+0x000000001cbdb000 	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
+0x000000001cbdb000 	/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
+0x000000001cbdb000 	/usr/lib/libicucore.A.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
+0x000000001cbdb000 	/usr/lib/libauto.dylib
+0x000000001cbdb000 	/usr/lib/libxml2.2.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
+0x000000001cbdb000 	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
+0x000000001cbdb000 	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
+0x000000001cbdb000 	/usr/lib/liblangid.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
+0x000000001cbdb000 	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
+0x000000001cbdb000 	/usr/lib/libDiagnosticMessagesClient.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
+0x000000001cbdb000 	/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
+0x000000001cbdb000 	/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
+0x000000001cbdb000 	/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
+0x000000001cbdb000 	/usr/lib/libarchive.2.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
+0x000000001cbdb000 	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
+0x000000001cbdb000 	/usr/lib/libCRFSuite.dylib
+0x000000001cbdb000 	/usr/lib/libc++.1.dylib
+0x000000001cbdb000 	/usr/lib/libc++abi.dylib
+0x000000001cbdb000 	/usr/lib/system/libcache.dylib
+0x000000001cbdb000 	/usr/lib/system/libcommonCrypto.dylib
+0x000000001cbdb000 	/usr/lib/system/libcompiler_rt.dylib
+0x000000001cbdb000 	/usr/lib/system/libcopyfile.dylib
+0x000000001cbdb000 	/usr/lib/system/libcorecrypto.dylib
+0x000000001cbdb000 	/usr/lib/system/libdispatch.dylib
+0x000000001cbdb000 	/usr/lib/system/libdyld.dylib
+0x000000001cbdb000 	/usr/lib/system/libkeymgr.dylib
+0x000000001cbdb000 	/usr/lib/system/liblaunch.dylib
+0x000000001cbdb000 	/usr/lib/system/libmacho.dylib
+0x000000001cbdb000 	/usr/lib/system/libquarantine.dylib
+0x000000001cbdb000 	/usr/lib/system/libremovefile.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_asl.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_blocks.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_c.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_configuration.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_coreservices.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_darwin.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_dnssd.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_info.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_m.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_malloc.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_networkextension.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_notify.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_sandbox.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_secinit.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_kernel.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_platform.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_pthread.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_symptoms.dylib
+0x000000001cbdb000 	/usr/lib/system/libsystem_trace.dylib
+0x000000001cbdb000 	/usr/lib/system/libunwind.dylib
+0x000000001cbdb000 	/usr/lib/system/libxpc.dylib
+0x000000001cbdb000 	/usr/lib/libbsm.0.dylib
+0x000000001cbdb000 	/usr/lib/system/libkxld.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
+0x000000001cbdb000 	/usr/lib/libOpenScriptingUtil.dylib
+0x000000001cbdb000 	/usr/lib/libcoretls.dylib
+0x000000001cbdb000 	/usr/lib/libcoretls_cfhelpers.dylib
+0x000000001cbdb000 	/usr/lib/libpam.2.dylib
+0x000000001cbdb000 	/usr/lib/libsqlite3.dylib
+0x000000001cbdb000 	/usr/lib/libxar.1.dylib
+0x000000001cbdb000 	/usr/lib/libbz2.1.0.dylib
+0x000000001cbdb000 	/usr/lib/liblzma.5.dylib
+0x000000001cbdb000 	/usr/lib/libnetwork.dylib
+0x000000001cbdb000 	/usr/lib/libapple_nghttp2.dylib
+0x000000001cbdb000 	/usr/lib/libpcap.A.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
+0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
+0x000000001cbdb000 	/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
+0x000000001cbdb000 	/usr/lib/libmecabra.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
+0x000000001cbdb000 	/usr/lib/libcompression.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
+0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary
+0x000000001cbdb000 	/usr/lib/libMobileGestalt.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
+0x000000001cbdb000 	/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
+0x000000001cbdb000 	/usr/lib/libFosl_dynamic.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
+0x000000001cbdb000 	/usr/lib/libcups.2.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
+0x000000001cbdb000 	/System/Library/Frameworks/GSS.framework/Versions/A/GSS
+0x000000001cbdb000 	/usr/lib/libresolv.9.dylib
+0x000000001cbdb000 	/usr/lib/libiconv.2.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
+0x000000001cbdb000 	/usr/lib/libheimdal-asn1.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
+0x000000001cbdb000 	/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
+0x000000001cbdb000 	/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
+0x000000001cbdb000 	/usr/lib/libutil.dylib
+0x000000001cbdb000 	/usr/lib/libcharset.1.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard
+0x000000001cbdb000 	/usr/lib/libmecab.1.0.0.dylib
+0x000000001cbdb000 	/usr/lib/libgermantok.dylib
+0x000000001cbdb000 	/usr/lib/libThaiTokenizer.dylib
+0x000000001cbdb000 	/usr/lib/libChineseTokenizer.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
+0x000000001cbdb000 	/usr/lib/libcmph.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
+0x000000001cbdb000 	/usr/lib/libxslt.1.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
+0x000000001cbdb000 	/usr/lib/libate.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AuthKit.framework/Versions/A/AuthKit
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
+0x000000001cbdb000 	/System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
+0x000000001cbdb000 	/System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CorePhoneNumbers.framework/Versions/A/CorePhoneNumbers
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleIDAuthSupport.framework/Versions/A/AppleIDAuthSupport
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/KeychainCircle.framework/Versions/A/KeychainCircle
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/ROCKit.framework/Versions/A/ROCKit
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
+0x000000001cbdb000 	/System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
+0x0000000102c00000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/libjvm.dylib
+0x000000001cbdb000 	/usr/lib/libstdc++.6.dylib
+0x000000010121f000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libverify.dylib
+0x000000010122d000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libjava.dylib
+0x000000010126b000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libzip.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport
+0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/JavaNativeFoundation
+0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaVM
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
+0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
+0x000000012a1ae000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt.dylib
+0x000000012a256000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/./libmlib_image.dylib
+0x000000012a322000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt_lwawt.dylib
+0x000000012a3d9000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/./libosxapp.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
+0x000000001cbdb000 	/System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MobileAsset.framework/Versions/A/MobileAsset
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/StreamingZip.framework/Versions/A/StreamingZip
+0x000000001cbdb000 	/System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreAVCHD.framework/Versions/A/CoreAVCHD
+0x000000001cbdb000 	/System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/Mangrove.framework/Versions/A/Mangrove
+0x000000001cbdb000 	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
+0x000000001cbdb000 	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
+0x000000001cbdb000 	/usr/lib/libspindump.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
+0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/Libraries/libCGInterfaces.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
+0x000000001cbdb000 	/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOAccelMemoryInfo.framework/Versions/A/IOAccelMemoryInfo
+0x000000001cbdb000 	/System/Library/Extensions/AppleIntelKBLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsMTLDriver
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/3902/Libraries/libmetal_timestamp.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/SystemAdministration.framework/Versions/A/SystemAdministration
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppContainer.framework/Versions/A/AppContainer
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/SecCodeWrapper.framework/Versions/A/SecCodeWrapper
+0x000000001cbdb000 	/usr/lib/libsandbox.1.dylib
+0x000000001cbdb000 	/usr/lib/libMatch.1.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/DiskManagement
+0x000000001cbdb000 	/System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Versions/A/LoginUICore
+0x000000001cbdb000 	/usr/lib/libCoreStorage.dylib
+0x000000001cbdb000 	/usr/lib/libcsfde.dylib
+0x000000001cbdb000 	/usr/lib/libodfde.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
+0x000000001cbdb000 	/System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/EFILogin.framework/Versions/A/EFILogin
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/ProtectedCloudStorage.framework/Versions/A/ProtectedCloudStorage
+0x000000001cbdb000 	/usr/lib/libcurl.4.dylib
+0x000000001cbdb000 	/usr/lib/libcrypto.42.dylib
+0x000000001cbdb000 	/usr/lib/libssl.44.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
+0x000000001cbdb000 	/usr/lib/libsasl2.2.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreDaemon.framework/Versions/B/CoreDaemon
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleSRP.framework/Versions/A/AppleSRP
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/ViewBridge.framework/Versions/A/ViewBridge
+0x000000012a9b1000 	/usr/lib/libobjc-trampolines.dylib
+0x000000012d20d000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libfontmanager.dylib
+0x000000012d274000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libosxui.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
+0x000000001cbdb000 	/System/Library/Extensions/AppleIntelKBLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsGLDriver
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUSupport.framework/Versions/A/Libraries/libGPUSupportMercury.dylib
+0x000000012dd1b000 	/System/Library/Extensions/AMDRadeonX4000GLDriver.bundle/Contents/MacOS/AMDRadeonX4000GLDriver
+0x000000001cbdb000 	/System/Library/Extensions/AMDRadeonX4000GLDriver.bundle/Contents/MacOS/ATIRadeonX4000SCLib.dylib
+0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLRendererFloat.bundle/GLRendererFloat
+0x000000001cbdb000 	/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libcldcpuengine.dylib
+0x000000001cbdb000 	/usr/lib/libcrypto.35.dylib
+0x000000013470e000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libnet.dylib
+0x0000000134725000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libnio.dylib
+0x000000012b8fc000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libdcpr.dylib
+0x000000001cbdb000 	/System/Library/PrivateFrameworks/login.framework/Versions/A/login
+0x000000017ac23000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libsunec.dylib
+
+VM Arguments:
+jvm_args: -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home -Xms8m -Djconsole.showOutputViewer 
+java_command: sun.tools.jconsole.JConsole
+java_class_path (initial): /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/classes
+Launcher Type: SUN_STANDARD
+
+Environment Variables:
+JAVA_HOME=/Library/Java/JavaVirtualMachines/Java8/Contents/Home
+PATH=/Users/rgoers/.nvm/versions/node/v7.0.0/bin:/usr/local/opt/protobuf@2.5/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/PostgreSQL/11/bin:/opt/subversion/bin:/opt/ant/ant19/bin:/Users/rgoers/bin:/usr/local/git/bin:/opt/maven/maven/bin:/Library/Java/JavaVirtualMachines/Java8/Contents/Home/bin:/opt/gradle/gradle/bin:/opt/roo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin
+SHELL=/bin/bash
+DISPLAY=/private/tmp/com.apple.launchd.GVYLrXVX6R/org.macosforge.xquartz:0
+
+Signal Handlers:
+SIGSEGV: [libjvm.dylib+0x5b26e5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
+SIGBUS: [libjvm.dylib+0x5b26e5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGFPE: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGPIPE: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGXFSZ: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGILL: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGUSR1: SIG_DFL, sa_mask[0]=11011111011111100000000111000110, sa_flags=none
+SIGUSR2: [libjvm.dylib+0x488c1e], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
+SIGHUP: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGINT: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGTERM: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+SIGQUIT: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
+
+
+---------------  S Y S T E M  ---------------
+
+OS:Bsduname:Darwin 18.2.0 Darwin Kernel Version 18.2.0: Fri Oct  5 19:41:49 PDT 2018; root:xnu-4903.221.2~2/RELEASE_X86_64 x86_64
+rlimit: STACK 8192k, CORE 0k, NPROC 4256, NOFILE 10240, AS infinity
+load average:2.83 2.52 2.64
+
+CPU:total 12 (initial active 12) (6 cores per cpu, 2 threads per core) family 6 model 158 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
+
+Memory: 4k page, physical 33554432k(62404k free)
+
+/proc/meminfo:
+
+
+vm_info: Java HotSpot(TM) 64-Bit Server VM (25.144-b01) for bsd-amd64 JRE (1.8.0_144-b01), built on Jul 21 2017 22:07:42 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
+
+time: Wed Feb 13 15:21:15 2019
+elapsed time: 4291 seconds (0d 1h 11m 31s)
+
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
index c0a31f7..6ab556b 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-spring-cloud-config</artifactId>
-    <version>2.11.2-SNAPSHOT</version>
+    <version>2.12.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-spring-cloud-config-client</artifactId>
@@ -44,6 +44,10 @@
       <artifactId>spring-cloud-config-client</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-bus</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot</artifactId>
     </dependency>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
index 05b02f9..459be37 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
@@ -34,6 +34,7 @@ import org.apache.logging.log4j.core.config.ConfigurationSource;
 import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
 import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
 import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.AuthorizationProvider;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.PropertiesUtil;
@@ -104,6 +105,10 @@ public class Log4j2CloudConfigLoggingSystem extends Log4J2LoggingSystem {
 
     private ConfigurationSource getConfigurationSource(URL url) throws IOException, URISyntaxException {
         URLConnection urlConnection = url.openConnection();
+        AuthorizationProvider provider = ConfigurationFactory.getAuthorizationProvider();
+        if (provider != null) {
+            provider.addAuthorization(urlConnection);
+        }
         if (url.getProtocol().equals(HTTPS)) {
             SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
             if (sslConfiguration != null) {
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
index 29cdc92..96812d2 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
@@ -18,28 +18,32 @@ package org.apache.logging.log4j.spring.cloud.config.client;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
-import org.springframework.cloud.context.refresh.ContextRefresher;
+
+import org.springframework.cloud.bus.ConditionalOnBusEnabled;
+import org.springframework.cloud.bus.SpringCloudBusClient;
+import org.springframework.cloud.bus.event.RemoteApplicationEvent;
+import org.springframework.cloud.stream.annotation.EnableBinding;
+import org.springframework.cloud.stream.annotation.StreamListener;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 
-/**
- * Listen for events indicating the remote configuration has changed.
- */
 @Component
-@ConditionalOnClass(ContextRefresher.class)
-@ConditionalOnBean(ContextRefresher.class)
+@ConditionalOnBusEnabled
+@EnableBinding(SpringCloudBusClient.class)
 @ConditionalOnProperty(value = "spring.cloud.config.watch.enabled")
 public class Log4j2EventListener {
+    private static Logger LOGGER = LogManager.getLogger(Log4j2EventListener.class);
 
-	private static Logger LOGGER = LogManager.getLogger(Log4j2EventListener.class);
+    @EventListener(classes = RemoteApplicationEvent.class)
+    public void acceptLocal(RemoteApplicationEvent event) {
+        LOGGER.debug("Refresh application event triggered");
+        WatchEventManager.publishEvent();
+    }
 
-	@EventListener(EnvironmentChangeEvent.class)
-	public void handleEnvironmentChangeEvent(EnvironmentChangeEvent event) {
-		LOGGER.debug("Environment change event received");
-		WatchEventManager.publishEvent();
-	}
+    @StreamListener(SpringCloudBusClient.INPUT)
+    public void acceptRemote(RemoteApplicationEvent event) {
+        LOGGER.debug("Refresh application event triggered");
+        WatchEventManager.publishEvent();
+    }
 }
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
new file mode 100644
index 0000000..c774202
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
@@ -0,0 +1,16 @@
+# Alpine Linux with OpenJDK
+#FROM openjdk:8-jdk-alpine
+FROM openjdk:11-jdk-slim
+
+ARG build_version
+ENV BUILD_VERSION=${build_version}
+RUN mkdir /service
+
+ADD ./target/sampleapp.jar /service/
+WORKDIR /service
+
+EXPOSE 8080 5005
+#EXPOSE 8080
+
+CMD java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005" -jar sampleapp.jar
+#CMD java -jar sampleapp.jar
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
new file mode 100644
index 0000000..93448e3
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
@@ -0,0 +1,53 @@
+#Local Development
+###Prerequisites
+Note: This guide uses Homebrew (package manage for macOS). It is not necessary to use Homebrew, but it does
+simplify the installation process.
+* Install Homebrew: `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`
+    * If you already have Homebrew installed, make sure it is updated: `brew update`
+* Add the cask-versions tap for Homebrew: `brew tap homebrew/cask-versions`
+* Install Docker: `brew cask install docker`
+* Install docker-machine: `brew install docker-machine`
+* Set up Docker connection to nexus: https://confluence.nextiva.xyz/display/DP/Docker+connection+to+nexus
+* Find OpenJDK 11 cask `brew search java`
+    * Currently the cask for java 11 is just named 'java', but this may change in the future. You can verify by
+    running `brew cask info <caskName>` to verify the version.
+* Install OpenJDK 11 cask: `brew cask install java`
+* Set JAVA_HOME to java 11 installation directory (/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home)
+    * If you need to use and switch between multiple Java versions, consider using jEnv to simplify this process
+        http://www.jenv.be
+
+###Starting the Application
+* Start local postgres image `./docker/up.sh`
+* Compile and start local application image `./docker/restartApp.sh`
+    * Alternatively: Run FulfillmentApplication.java as a Spring Boot application using java -jar target/fulfillment-service.jar.
+* Local swagger URL is available at http://localhost:8080/swagger-ui.html
+
+# Java client
+* Using the fulfillment-service-client is recommended when integrating Java applications with this service.
+###Using the client
+* Add the latest version of fulfillment-service-client as a dependency to your application.
+* Import the OrderSubmissionServiceClient class into your application configuration.
+* Specify fulfillment-service.url as a property
+
+# Database setup
+Docker will create a container for postgres - a local version of Postgresql does not need to be installed.
+Before starting the application the tables in Postgres must be created. Until this is automatced login to pgAdmin
+using fulfillment_app/fulfillment_app as the credentialsand run the script in 
+fulfillment-service-web/resources/postgres/schema.sql.
+
+# Environment properties
+* This applications uses Kubernetes Config Maps to configure properties for an environment. The properties
+configured in application.yml will be used unless overridden at https://git.nextiva.xyz/projects/REL/repos/k8s-platform/browse
+
+# Swagger
+* Dev: https://fulfillment-service.dev.nextiva.io/swagger-ui.ml
+* Rc: https://fulfillment-service.qa.nextiva.io/swagger-ui.html
+* Prod: https://fulfillment-service.prod.nextiva.io/swagger-ui.html
+
+#Automated Testing
+<!---
+* Unit tests can be run using `mvn test -Dgroups=UnitTest`
+* Integration tests (do not require Fulfillment Service but do require connection to third parties) 
+can be run using `mvn test -Dgroups=IntegrationTest`
+-->
+* Functional tests (those that require Fulfillment Service running) can be run using `mvn -P integration-tests verify`
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
new file mode 100755
index 0000000..61e1d4d
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
@@ -0,0 +1,23 @@
+version: "3"
+services:
+  rabbitmq:
+    image: rabbitmq:3-management-alpine
+    expose:
+      - "5672"
+      - "15672"
+    ports:
+      - "5672:5672"
+      - "15672:15672"
+    volumes:
+      - ./init/rabbit/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro
+      - ./init/rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro
+    networks:
+      sample_app:
+        aliases:
+          - rabbitmq
+
+networks:
+  sample_app:
+
+volumes:
+  pgdata:
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/down.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/down.sh
new file mode 100755
index 0000000..79ff27e
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/down.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+echo Stopping containers and removing containers, networks, volumes, and images created by up.
+DIR=`dirname "$0"`
+docker-compose --file ${DIR}/docker-compose.yml down --rmi local -v
+docker-compose --file ${DIR}/docker-compose.yml rm --force -v
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/definitions.json b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/definitions.json
new file mode 100644
index 0000000..835f10e
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/definitions.json
@@ -0,0 +1,36 @@
+{
+  "rabbit_version": "3.6.14",
+  "users": [
+    {
+      "name": "guest",
+      "password_hash": "8NWJazmxFqF0nohjVsE6rRP9wvwzEq/fpUel2in5Y3YAE3KZ",
+      "hashing_algorithm": "rabbit_password_hashing_sha256",
+      "tags": "administrator"
+    }
+  ],
+  "vhosts": [
+    {
+      "name": "/"
+    }
+  ],
+  "permissions": [
+    {
+      "user": "guest",
+      "vhost": "/",
+      "configure": ".*",
+      "write": ".*",
+      "read": ".*"
+    }
+  ],
+  "parameters": [],
+  "global_parameters": [
+    {
+      "name": "cluster_name",
+      "value": "rabbit@c85301775966"
+    }
+  ],
+  "policies": [],
+  "queues": [],
+  "exchanges": [],
+  "bindings": []
+}
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/rabbitmq.config b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/rabbitmq.config
new file mode 100644
index 0000000..b55f508
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/rabbit/rabbitmq.config
@@ -0,0 +1,14 @@
+[
+  {
+    rabbit,
+      [
+        { loopback_users, [] }
+      ]
+  },
+  {
+    rabbitmq_management,
+      [
+        { load_definitions, "/etc/rabbitmq/definitions.json" }
+      ]
+  }
+].
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/logs.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/logs.sh
new file mode 100755
index 0000000..8cf865d
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/logs.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+DIR=`dirname "$0"`
+# dump existing logs and start tailing them
+# https://docs.docker.com/compose/reference/logs
+docker-compose --file ${DIR}/../docker/docker-compose.yml logs --follow --tail=all
+
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
new file mode 100755
index 0000000..10a1fc9
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+imageName=sampleapp
+containerName=app-container
+networkName=docker_sampleapp
+debug_port=5005
+debug_expose="-p $debug_port:$debug_port"
+exposed_ports="-p 8080:10010 $debug_expose"
+
+mvn clean package -DskipTests=true
+
+docker build -t $imageName -f Dockerfile  .
+
+echo Delete old container...
+docker rm -f $containerName
+
+echo Run new container...
+docker run  -e "SERVICE_PARAMS=--spring.config.location=classpath:/,classpath:/application-local-docker.yml" \
+    --network=$networkName -d $exposed_ports --name $containerName $imageName
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stop.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stop.sh
new file mode 100755
index 0000000..b7f83c6
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stop.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+echo Stopping running containers without removing them.
+
+DIR=`dirname "$0"`
+docker-compose --file ${DIR}/../docker/docker-compose.yml stop
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stopApp.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stopApp.sh
new file mode 100755
index 0000000..471d6e1
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/stopApp.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+containerName=app-container
+docker rm -f $containerName
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/up.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/up.sh
new file mode 100755
index 0000000..6f6602b
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/up.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+echo "Building, (re)creating, starting, and attaching to containers for a service."
+
+DIR=`dirname "$0"`
+docker-compose --file ${DIR}/docker-compose.yml up --detach --build
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
new file mode 100644
index 0000000..639a091
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.logging.log4j.samples</groupId>
+    <artifactId>log4j-spring-cloud-config-samples</artifactId>
+    <version>2.12.0-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <artifactId>sample-app</artifactId>
+  <packaging>jar</packaging>
+
+  <name>Spring Cloud Config Sample Application</name>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <!--<manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>-->
+  </properties>
+
+  <dependencies>
+    <!-- Spring Boot dependencies -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-jsr310</artifactId>
+      <version>${jackson2Version}</version>
+    </dependency>
+    <!-- Spring Cloud dependencies -->
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+    </dependency>
+    
+    <!-- Spring Tests -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-tomcat</artifactId>
+    </dependency>
+
+    <!-- log dependencies -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-log4j2</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-spring-cloud-config-client</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>javax.servlet-api</artifactId>
+      <version>3.1.0</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <finalName>sampleapp</finalName>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-toolchains-plugin</artifactId>
+        <version>1.1</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>toolchain</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <toolchains>
+            <jdk>
+              <version>[8, )</version>
+            </jdk>
+          </toolchains>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>default-compile</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>default-test-compile</id>
+            <phase>test-compile</phase>
+            <goals>
+              <goal>testCompile</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+          <proc>none</proc>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.18.1</version>
+        <executions>
+          <execution>
+            <id>default-test</id>
+            <goals>
+              <goal>test</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <includes>
+            <include>**/Test*.java</include>
+            <include>**/*Test.java</include>
+            <include>**/IT*.java</include>
+            <include>**/*IT.java</include>
+          </includes>
+          <excludes>
+            <exclude>**/*FuncTest.java</exclude>
+          </excludes>
+          <forkCount>1</forkCount>
+          <systemPropertyVariables>
+            <environment>${environment}</environment>
+            <site>${site}</site>
+          </systemPropertyVariables>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>default-jar</id>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+            <configuration>
+              <archive>
+                <manifestFile>${manifestfile}</manifestFile>
+                <manifestEntries>
+                  <Specification-Title>${project.name}</Specification-Title>
+                  <Specification-Version>${project.version}</Specification-Version>
+                  <Specification-Vendor>${project.organization.name}</Specification-Vendor>
+                  <Implementation-Title>${project.name}</Implementation-Title>
+                  <Implementation-Version>${project.version}</Implementation-Version>
+                  <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
+                  <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                  <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
+                  <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
+                  <Multi-Release>true</Multi-Release>
+                </manifestEntries>
+              </archive>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <version>${spring-boot.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+
+  </profiles>
+</project>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/SampleApplication.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/SampleApplication.java
new file mode 100644
index 0000000..a1ac420
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/SampleApplication.java
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2019 Nextiva, Inc. to Present.
+ * All rights reserved.
+ */
+package org.apache.logging.log4j.spring.cloud.config.sample;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+@SpringBootApplication
+public class SampleApplication extends SpringBootServletInitializer {
+    public static void main(String[] args) {
+            SpringApplication.run(SampleApplication.class, args);
+    }
+
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/GlobalExceptionHandler.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/GlobalExceptionHandler.java
new file mode 100644
index 0000000..8efa0a8
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/GlobalExceptionHandler.java
@@ -0,0 +1,36 @@
+/*
+ * 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.spring.cloud.config.sample.config;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+
+
+@ControllerAdvice
+public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {
+
+    private static final Logger LOGGER = LogManager.getLogger(GlobalExceptionHandler.class);
+
+
+    private ResponseEntity<Object> getResponseEntity(Object responseMessage, HttpStatus httpStatus) {
+        return new ResponseEntity<>(responseMessage, httpStatus);
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/WebMvcConfig.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/WebMvcConfig.java
new file mode 100644
index 0000000..1576f88
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/config/WebMvcConfig.java
@@ -0,0 +1,39 @@
+/*
+ * 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.spring.cloud.config.sample.config;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.spring.cloud.config.sample.utils.spring.SampleResponseErrorHandler;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+@Configuration
+public class WebMvcConfig extends WebMvcConfigurerAdapter {
+    private Logger LOGGER = LogManager.getLogger(WebMvcConfig.class);
+
+    @Bean
+    public RestTemplate restTemplate() {
+        RestTemplate restTemplate = new RestTemplate();
+        restTemplate.setErrorHandler(new SampleResponseErrorHandler());
+        return restTemplate;
+    }
+
+
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
new file mode 100644
index 0000000..ceeda38
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
@@ -0,0 +1,38 @@
+/*
+ * 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.spring.cloud.config.sample.controller;
+
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/sample")
+public class SampleController {
+
+    private static final Logger LOGGER = LogManager.getLogger(SampleController.class);
+
+    @GetMapping
+    public ResponseEntity<String> get() {
+        LOGGER.info("Hello, World");
+        return ResponseEntity.ok("Hello, World");
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/utils/spring/SampleResponseErrorHandler.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/utils/spring/SampleResponseErrorHandler.java
new file mode 100644
index 0000000..77b4d1f
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/utils/spring/SampleResponseErrorHandler.java
@@ -0,0 +1,36 @@
+/*
+ * 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.spring.cloud.config.sample.utils.spring;
+
+import java.io.IOException;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.web.client.ResponseErrorHandler;
+
+/**
+ * Custom http client error handler which doesn't throw exception in case http code is not 2xx.
+ */
+public class SampleResponseErrorHandler implements org.springframework.web.client.ResponseErrorHandler {
+    @Override
+    public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException {
+        return false;
+    }
+
+    @Override
+    public void handleError(ClientHttpResponse clientHttpResponse) throws IOException {
+
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/META-INF/MANIFEST.MF b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e69de29
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/application.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/application.yml
new file mode 100644
index 0000000..71ca238
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/application.yml
@@ -0,0 +1,30 @@
+server:
+  port: 4567
+  servlet:
+    context-path: /sample
+
+security:
+  basic:
+    enabled: false
+
+management:
+  security:
+    enabled: false
+
+spring:
+  application:
+    name: sampleapp
+
+  cloud:
+    bus:
+      trace:
+        enabled: true
+    config:
+      watch:
+        enabled: true
+
+  rabbitmq:
+    addresses: rabbit
+    port: 5672
+    username: guest
+    password: guest
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..3ea82d1
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
@@ -0,0 +1,5 @@
+#Spring Cloud (Hystrix) config goes here.
+hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 30000
+logging:
+  config: http://host.docker.internal:8888/ConfigService/resource/samppleapp/default/master/log4j2.xml
+
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
new file mode 100644
index 0000000..c76fb7a
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
@@ -0,0 +1,3 @@
+log4j.configurationFile=http://host.docker.internal:8888/ConfigService/resource/sampleapp/default/master/log4j2.xml
+log4j2.configurationUserName=guest
+log4j2.configurationPassword=guest
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt
new file mode 100644
index 0000000..22fdad5
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt
@@ -0,0 +1,135 @@
+[INFO] Scanning for projects...
+[INFO]                                                                         
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Log4j Sample Configuration Service 2.1.2.RELEASE
+[INFO] ------------------------------------------------------------------------
+Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
+Downloading: http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
+Downloading: http://repository.nextiva.xyz:8081/nexus/content/repositories/apache-snapshots/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
+


Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-spring-cloud-config/2.12.0-SNAPSHOT/maven-metadata.xml
+
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j/2.12.0-SNAPSHOT/maven-metadata.xml
+
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-api/2.12.0-SNAPSHOT/maven-metadata.xml
+
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-core/2.12.0-SNAPSHOT/maven-metadata.xml
+
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-slf4j-impl/2.12.0-SNAPSHOT/maven-metadata.xml
+
[INFO] 
+[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ log4j-spring-cloud-config-sample-server ---
+[INFO] org.apache.logging.log4j.samples:log4j-spring-cloud-config-sample-server:jar:2.1.2.RELEASE
+[INFO] +- org.springframework.boot:spring-boot-starter-log4j2:jar:2.1.2.RELEASE:compile
+[INFO] |  +- org.apache.logging.log4j:log4j-jul:jar:2.11.1:compile
+[INFO] |  \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
+[INFO] +- org.springframework.cloud:spring-cloud-starter-config:jar:2.1.0.RELEASE:compile
+[INFO] |  +- org.springframework.cloud:spring-cloud-starter:jar:2.1.0.RELEASE:compile
+[INFO] |  |  +- org.springframework.cloud:spring-cloud-context:jar:2.1.0.RELEASE:compile
+[INFO] |  |  \- org.springframework.cloud:spring-cloud-commons:jar:2.1.0.RELEASE:compile
+[INFO] |  +- org.springframework.cloud:spring-cloud-config-client:jar:2.1.0.RELEASE:compile
+[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.1.2.RELEASE:compile
+[INFO] |  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
+[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.9.8:compile
+[INFO] |     \- com.fasterxml.jackson.core:jackson-core:jar:2.9.8:compile
+[INFO] +- org.springframework.cloud:spring-cloud-config-server:jar:2.1.0.RELEASE:compile
+[INFO] |  +- org.springframework.security:spring-security-crypto:jar:5.1.3.RELEASE:compile
+[INFO] |  +- org.springframework.security:spring-security-rsa:jar:1.0.7.RELEASE:compile
+[INFO] |  |  \- org.bouncycastle:bcpkix-jdk15on:jar:1.60:compile
+[INFO] |  |     \- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile
+[INFO] |  +- org.eclipse.jgit:org.eclipse.jgit:jar:5.1.3.201810200350-r:compile
+[INFO] |  |  +- com.jcraft:jsch:jar:0.1.54:compile
+[INFO] |  |  +- com.jcraft:jzlib:jar:1.1.1:compile
+[INFO] |  |  \- com.googlecode.javaewah:JavaEWAH:jar:1.1.6:compile
+[INFO] |  +- org.eclipse.jgit:org.eclipse.jgit.http.apache:jar:5.1.3.201810200350-r:compile
+[INFO] |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.6:compile
+[INFO] |  |  |  \- commons-codec:commons-codec:jar:1.11:compile
+[INFO] |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.10:compile
+[INFO] |  \- org.yaml:snakeyaml:jar:1.23:compile
+[INFO] +- org.springframework.cloud:spring-cloud-config-monitor:jar:2.1.0.RELEASE:compile
+[INFO] |  \- org.springframework.cloud:spring-cloud-bus:jar:2.1.0.RELEASE:compile
+[INFO] |     +- org.springframework.cloud:spring-cloud-stream:jar:2.1.0.RELEASE:compile
+[INFO] |     |  +- org.springframework.boot:spring-boot-starter-validation:jar:2.1.2.RELEASE:compile
+[INFO] |     |  +- org.springframework:spring-messaging:jar:5.1.4.RELEASE:compile
+[INFO] |     |  +- org.springframework.integration:spring-integration-jmx:jar:5.1.2.RELEASE:compile
+[INFO] |     |  +- org.springframework:spring-tuple:jar:1.0.0.RELEASE:compile
+[INFO] |     |  |  \- com.esotericsoftware:kryo-shaded:jar:3.0.3:compile
+[INFO] |     |  |     \- com.esotericsoftware:minlog:jar:1.3.0:compile
+[INFO] |     |  +- org.springframework.integration:spring-integration-tuple:jar:1.0.0.RELEASE:compile
+[INFO] |     |  +- org.springframework.retry:spring-retry:jar:1.2.3.RELEASE:compile
+[INFO] |     |  \- org.springframework.cloud:spring-cloud-function-context:jar:2.0.0.RELEASE:compile
+[INFO] |     |     \- org.springframework.cloud:spring-cloud-function-core:jar:2.0.0.RELEASE:compile
+[INFO] |     \- org.springframework.integration:spring-integration-core:jar:5.1.2.RELEASE:compile
+[INFO] |        +- org.springframework:spring-tx:jar:5.1.4.RELEASE:compile
+[INFO] |        \- io.projectreactor:reactor-core:jar:3.2.5.RELEASE:compile
+[INFO] |           \- org.reactivestreams:reactive-streams:jar:1.0.2:compile
+[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.1.2.RELEASE:compile
+[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.1.2.RELEASE:compile
+[INFO] |  |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile
+[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.1.2.RELEASE:compile
+[INFO] |  |  +- org.springframework.boot:spring-boot-actuator:jar:2.1.2.RELEASE:compile
+[INFO] |  |  +- org.springframework:spring-context:jar:5.1.4.RELEASE:compile
+[INFO] |  |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.8:compile
+[INFO] |  \- io.micrometer:micrometer-core:jar:1.1.2:compile
+[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile
+[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:compile
+[INFO] +- org.springframework.cloud:spring-cloud-starter-bus-amqp:jar:2.1.0.RELEASE:compile
+[INFO] |  \- org.springframework.cloud:spring-cloud-starter-stream-rabbit:jar:2.1.0.RELEASE:compile
+[INFO] |     \- org.springframework.cloud:spring-cloud-stream-binder-rabbit:jar:2.1.0.RELEASE:compile
+[INFO] |        +- org.springframework.cloud:spring-cloud-stream-binder-rabbit-core:jar:2.1.0.RELEASE:compile
+[INFO] |        |  \- com.rabbitmq:http-client:jar:2.1.0.RELEASE:compile
+[INFO] |        +- org.springframework.boot:spring-boot-starter-amqp:jar:2.1.2.RELEASE:compile
+[INFO] |        |  \- org.springframework.amqp:spring-rabbit:jar:2.1.3.RELEASE:compile
+[INFO] |        |     +- org.springframework.amqp:spring-amqp:jar:2.1.3.RELEASE:compile
+[INFO] |        |     \- com.rabbitmq:amqp-client:jar:5.4.3:compile
+[INFO] |        \- org.springframework.integration:spring-integration-amqp:jar:5.1.2.RELEASE:compile
+[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.1.2.RELEASE:compile
+[INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:2.1.2.RELEASE:compile
+[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.8:compile
+[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.9.8:compile
+[INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.1.2.RELEASE:compile
+[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.14:compile
+[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.14:compile
+[INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.14:compile
+[INFO] |  +- org.hibernate.validator:hibernate-validator:jar:6.0.14.Final:compile
+[INFO] |  |  +- javax.validation:validation-api:jar:2.0.1.Final:compile
+[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile
+[INFO] |  |  \- com.fasterxml:classmate:jar:1.4.0:compile
+[INFO] |  +- org.springframework:spring-web:jar:5.1.4.RELEASE:compile
+[INFO] |  |  \- org.springframework:spring-beans:jar:5.1.4.RELEASE:compile
+[INFO] |  \- org.springframework:spring-webmvc:jar:5.1.4.RELEASE:compile
+[INFO] |     \- org.springframework:spring-expression:jar:5.1.4.RELEASE:compile
+[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.1.2.RELEASE:compile
+[INFO] |  +- org.springframework:spring-aop:jar:5.1.4.RELEASE:compile
+[INFO] |  +- org.springframework.security:spring-security-config:jar:5.1.3.RELEASE:compile
+[INFO] |  |  \- org.springframework.security:spring-security-core:jar:5.1.3.RELEASE:compile
+[INFO] |  \- org.springframework.security:spring-security-web:jar:5.1.3.RELEASE:compile
+[INFO] +- org.apache.logging.log4j:log4j-spring-cloud-config-server:jar:2.12.0-SNAPSHOT:compile
+[INFO] |  +- org.springframework.boot:spring-boot:jar:2.1.2.RELEASE:compile
+[INFO] |  \- commons-logging:commons-logging:jar:1.2:compile
+[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.12.0-SNAPSHOT:compile
+[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.12.0-SNAPSHOT:compile
+[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.0-SNAPSHOT:compile
+[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
+[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:2.1.2.RELEASE:test
+[INFO]    +- org.springframework.boot:spring-boot-test:jar:2.1.2.RELEASE:test
+[INFO]    +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.2.RELEASE:test
+[INFO]    +- com.jayway.jsonpath:json-path:jar:2.4.0:test
+[INFO]    |  \- net.minidev:json-smart:jar:2.3:test
+[INFO]    |     \- net.minidev:accessors-smart:jar:1.2:test
+[INFO]    |        \- org.ow2.asm:asm:jar:5.0.4:test
+[INFO]    +- junit:junit:jar:4.12:test
+[INFO]    +- org.assertj:assertj-core:jar:3.11.1:test
+[INFO]    +- org.mockito:mockito-core:jar:2.23.4:test
+[INFO]    |  +- net.bytebuddy:byte-buddy:jar:1.9.7:test
+[INFO]    |  +- net.bytebuddy:byte-buddy-agent:jar:1.9.7:test
+[INFO]    |  \- org.objenesis:objenesis:jar:2.6:compile
+[INFO]    +- org.hamcrest:hamcrest-core:jar:1.3:test
+[INFO]    +- org.hamcrest:hamcrest-library:jar:1.3:test
+[INFO]    +- org.skyscreamer:jsonassert:jar:1.5.0:test
+[INFO]    |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
+[INFO]    +- org.springframework:spring-core:jar:5.1.4.RELEASE:compile
+[INFO]    |  \- org.springframework:spring-jcl:jar:5.1.4.RELEASE:compile
+[INFO]    +- org.springframework:spring-test:jar:5.1.4.RELEASE:test
+[INFO]    \- org.xmlunit:xmlunit-core:jar:2.6.2:test
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 4.180 s
+[INFO] Finished at: 2019-03-02T14:15:03-07:00
+[INFO] Final Memory: 39M/981M
+[INFO] ------------------------------------------------------------------------
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
new file mode 100644
index 0000000..8fdadeb
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.logging.log4j.samples</groupId>
+  <artifactId>log4j-spring-cloud-config-sample-server</artifactId>
+  <packaging>jar</packaging>
+
+  <name>Log4j Sample Configuration Service</name>
+  <description>Sample Cloud Config Server</description>
+
+  <parent>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-parent</artifactId>
+    <version>2.1.2.RELEASE</version>
+    <relativePath/> <!-- lookup parent from repository -->
+  </parent>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <java.version>1.8</java.version>
+    <spring-cloud-config.version>2.1.0.RELEASE</spring-cloud-config.version>
+    <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
+    <log4j.version>2.12.0-SNAPSHOT</log4j.version>
+
+
+    <!-- paths -->
+    <sonar.dependencyCheck.reportPath>${project.build.directory}/dependency-check-report.xml
+    </sonar.dependencyCheck.reportPath>
+
+    <!-- maven plugin versions -->
+    <maven.checkstyle.version>3.0.0</maven.checkstyle.version>
+    <maven.findbugs.version>3.0.5</maven.findbugs.version>
+    <maven.google.code.findbugs.version>3.0.2</maven.google.code.findbugs.version>
+    <maven.google.code.findbugs.findbugs.version>3.0.1</maven.google.code.findbugs.findbugs.version>
+    <maven.jacoco.version>0.8.1</maven.jacoco.version>
+    <maven.pmd.version>3.9.0</maven.pmd.version>
+
+    <!-- maven plugin config -->
+    <pmd.failurePriority>2</pmd.failurePriority>
+
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-dependencies</artifactId>
+        <version>${spring-cloud.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <!-- log dependencies -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-log4j2</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-starter-config</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-config-server</artifactId>
+      <version>${spring-cloud-config.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-config-monitor</artifactId>
+      <version>${spring-cloud-config.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-logging</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-security</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-spring-cloud-config-server</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <!-- here the phase you need -->
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${basedir}/target/config-repo</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>src/main/config-repo</directory>
+                  <filtering>true</filtering>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <version>${maven.jacoco.version}</version>
+        <configuration>
+          <excludes>
+            <exclude>com/oracle/brm/**/*.class</exclude>
+            <exclude>org/w3/**/*.class</exclude>
+            <exclude>org/xmlsoap/**/*.class</exclude>
+            <exclude>oracle/security/pki/*.class</exclude>
+          </excludes>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>prepare-agent</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>report</id>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>report</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <repositories>
+    <repository>
+      <id>spring-snapshots</id>
+      <name>Spring Snapshots</name>
+      <url>https://repo.spring.io/snapshot</url>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+    <repository>
+      <id>spring-milestones</id>
+      <name>Spring Milestones</name>
+      <url>https://repo.spring.io/libs-milestone</url>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+
+</project>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/readme.txt b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/readme.txt
new file mode 100644
index 0000000..e69de29
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
new file mode 100644
index 0000000..badf122
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Configuration status="DEBUG" monitorInterval="0">
+  <properties>
+    <property name="LOG_DIR">\${sys:user.dir}/logs/sample-app</property>
+  </properties>
+  <Appenders>
+
+    <RollingFile name="log4j" fileName="${LOG_DIR}/log4j.txt" filePattern="${LOG_DIR}/archive/log4j.txt.%d{yyyyMMdd_HH}-%i">
+      <PatternLayout pattern="%d [%t] %-5p %C{1.}.%M:%L - %m%n"/>
+      <Policies>
+        <SizeBasedTriggeringPolicy size="30 KB"/>
+      </Policies>
+    </RollingFile>
+
+  </Appenders>
+  <Loggers>
+    <Root level="DEBUG">
+      <AppenderRef ref="log4j"/>
+    </Root>
+  </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplication.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplication.java
new file mode 100644
index 0000000..7fdbb99
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplication.java
@@ -0,0 +1,29 @@
+/*
+ * 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.spring.cloud.config.service;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.config.server.EnableConfigServer;
+
+@EnableConfigServer
+@SpringBootApplication
+public class ConfigServiceApplication {
+	public static void main(String[] args) {
+		SpringApplication.run(ConfigServiceApplication.class, args);
+	}
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/config/SecurityConfiguration.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/config/SecurityConfiguration.java
new file mode 100644
index 0000000..1abf6d7
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/service/config/SecurityConfiguration.java
@@ -0,0 +1,37 @@
+/*
+ * 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.spring.cloud.config.service.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+
+/**
+ *
+ */
+@Configuration
+@EnableWebSecurity
+public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
+    @Override
+    public void configure(WebSecurity web) throws Exception {
+        web.ignoring().antMatchers("/health")
+            .antMatchers("/metrics")
+            .antMatchers("/info");
+        getHttp().csrf().disable();
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/application.yaml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/application.yaml
new file mode 100644
index 0000000..b559127
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/application.yaml
@@ -0,0 +1,38 @@
+spring:
+  cloud:
+    bus:
+      enabled: true
+    config:
+      server:
+#        git:
+#          uri:
+#          searchPaths: "{application},{application}/{profile}"
+        native:
+          searchLocations: file:///${user.dir}/config-repo,file:///${user.dir}/config-repo/{application},file:///${user.dir}/config-repo/{application}/{profile}
+
+  security:
+    user:
+      name: guest
+      password: guest
+
+  rabbitmq:
+    addresses: localhost
+    port: 5672
+    username: guest
+    password: guest
+
+  profiles:
+    active: native
+
+server:
+    port:                                                 8888
+
+    servlet:
+     context-path:                                       /ConfigService
+
+management:
+    endpoints:
+        web:
+            base-path: /
+            exposure:
+                include:                                  health, info, refresh
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..ff66652
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<Configuration status="ERROR" name="ConfigService">
+  <Appenders>
+    <Console name="STDOUT">
+      <PatternLayout pattern="%d %-5level [%t][%logger]%notEmpty{[%markerSimpleName]} %msg%n%xThrowable" />
+    </Console>
+  </Appenders>
+  <Loggers>
+    <Root level="debug">
+      <AppenderRef ref="STDOUT" />
+    </Root>
+  </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/test/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplicationTest.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/test/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplicationTest.java
new file mode 100644
index 0000000..011366f
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/test/java/org/apache/logging/log4j/spring/cloud/config/service/ConfigServiceApplicationTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.spring.cloud.config.service;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ConfigServiceApplicationTest {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
similarity index 64%
copy from log4j-spring-cloud-config/pom.xml
copy to log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
index 37282c9..21dedd6 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
@@ -19,57 +19,43 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
-    <artifactId>log4j</artifactId>
-    <version>2.11.2-SNAPSHOT</version>
+    <artifactId>log4j-spring-cloud-config</artifactId>
+    <version>2.12.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
-  <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j-spring-cloud-config</artifactId>
+  <groupId>org.apache.logging.log4j.samples</groupId>
+  <artifactId>log4j-spring-cloud-config-samples</artifactId>
   <packaging>pom</packaging>
-  <name>Apache Log4j Spring Cloud Config Support</name>
+  <name>Apache Log4j Spring Cloud Config Samples</name>
   <url>http://maven.apache.org</url>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <revapi.skip>true</revapi.skip>
-    <spring-cloud-config.version>2.0.3.BUILD-SNAPSHOT</spring-cloud-config.version>
-    <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
-    <spring.version>5.0.5.RELEASE</spring.version>
   </properties>
   <dependencyManagement>
     <dependencies>
       <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-config-dependencies</artifactId>
-        <version>${spring-cloud-config.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot</artifactId>
-        <version>${spring-boot.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-beans</artifactId>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>${spring.version}</version>
+        <artifactId>spring-core</artifactId>
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
-        <artifactId>spring-context-support</artifactId>
-        <version>${spring.version}</version>
+        <artifactId>spring-webmvc</artifactId>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>${spring.version}</version>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-ws-core</artifactId>
+        <version>2.1.4.RELEASE</version>
       </dependency>
       <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-webmvc</artifactId>
-        <version>${spring.version}</version>
+        <groupId>javax.servlet</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>2.5</version>
+        <scope>provided</scope>
       </dependency>
       <dependency>
         <groupId>junit</groupId>
@@ -80,11 +66,20 @@
     </dependencies>
   </dependencyManagement>
   <modules>
-    <module>log4j-spring-cloud-config-server</module>
-    <module>log4j-spring-cloud-config-client</module>
+    <module>log4j-spring-cloud-config-sample-server</module>
+    <module>log4j-spring-cloud-config-sample-application</module>
   </modules>
   <build>
     <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${site.plugin.version}</version>
+        <configuration>
+          <skip>true</skip>
+          <skipDeploy>true</skipDeploy>
+        </configuration>
+      </plugin>
       <!-- Include the standard NOTICE and LICENSE -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -100,6 +95,14 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-deploy-plugin</artifactId>
+        <version>${deploy.plugin.version}</version>
+        <configuration>
+          <skip>true</skip>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt
new file mode 100644
index 0000000..797f3af
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt
@@ -0,0 +1,7048 @@
+[INFO] Scanning for projects...
+[INFO]                                                                         
+[INFO] ------------------------------------------------------------------------
+[INFO] Building Apache Log4j Spring Cloud Config Server Support 2.12.0-SNAPSHOT
+[INFO] ------------------------------------------------------------------------
+[INFO] 
+[INFO] --- maven-help-plugin:3.1.0:effective-pom (default-cli) @ log4j-spring-cloud-config-server ---
+[INFO] 
+Effective POMs, after inheritance, interpolation, and profiles are applied:
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!-- Generated by Maven Help Plugin on 2019-03-01T16:18:01-07:00            -->
+<!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!-- Effective POM for project                                              -->
+<!-- 'org.apache.logging.log4j:log4j-spring-cloud-config-server:jar:2.12.0-SNAPSHOT' -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-spring-cloud-config</artifactId>
+    <version>2.12.0-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <groupId>org.apache.logging.log4j</groupId>
+  <artifactId>log4j-spring-cloud-config-server</artifactId>
+  <version>2.12.0-SNAPSHOT</version>
+  <name>Apache Log4j Spring Cloud Config Server Support</name>
+  <description />
+  <url>http://maven.apache.org/log4j-spring-cloud-config-server</url>
+  <inceptionYear>1999</inceptionYear>
+  <organization>
+    <name>The Apache Software Foundation</name>
+    <url>https://www.apache.org/</url>
+  </organization>
+  <licenses>
+    <license>
+      <name>Apache License, Version 2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <developers>
+    <developer>
+      <id>rgoers</id>
+      <name>Ralph Goers</name>
+      <email>rgoers@apache.org</email>
+      <organization>Nextiva</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Phoenix</timezone>
+    </developer>
+    <developer>
+      <id>ggregory</id>
+      <name>Gary Gregory</name>
+      <email>ggregory@apache.org</email>
+      <organization>Rocket Software</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Denver</timezone>
+    </developer>
+    <developer>
+      <id>sdeboy</id>
+      <name>Scott Deboy</name>
+      <email>sdeboy@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Los_Angeles</timezone>
+    </developer>
+    <developer>
+      <id>rpopma</id>
+      <name>Remko Popma</name>
+      <email>rpopma@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>Asia/Tokyo</timezone>
+      <properties>
+        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
+      </properties>
+    </developer>
+    <developer>
+      <id>nickwilliams</id>
+      <name>Nick Williams</name>
+      <email>nickwilliams@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Chicago</timezone>
+    </developer>
+    <developer>
+      <id>mattsicker</id>
+      <name>Matt Sicker</name>
+      <email>mattsicker@apache.org</email>
+      <organization>CloudBees</organization>
+      <roles>
+        <role>PMC Chair</role>
+      </roles>
+      <timezone>America/Chicago</timezone>
+    </developer>
+    <developer>
+      <id>bbrouwer</id>
+      <name>Bruce Brouwer</name>
+      <email>bruce.brouwer@gmail.com</email>
+      <roles>
+        <role>Committer</role>
+      </roles>
+      <timezone>America/Detroit</timezone>
+    </developer>
+    <developer>
+      <id>mikes</id>
+      <name>Mikael Ståldal</name>
+      <email>mikes@apache.org</email>
+      <organization>Spotify</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>Europe/Stockholm</timezone>
+    </developer>
+    <developer>
+      <id>ckozak</id>
+      <name>Carter Kozak</name>
+      <email>ckozak@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/New York</timezone>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Murad Ersoy</name>
+      <email>muradersoy@gmail.com</email>
+      <url>https://www.behance.net/muradersoy</url>
+      <roles>
+        <role>Illustrator and Designer</role>
+        <role>created the new Log4j 2 logo.</role>
+      </roles>
+      <timezone>Europe/Istanbul</timezone>
+      <properties>
+        <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
+      </properties>
+    </contributor>
+  </contributors>
+  <mailingLists>
+    <mailingList>
+      <name>log4j-user</name>
+      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
+      <post>log4j-user@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
+        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>dev</name>
+      <subscribe>dev-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
+      <post>dev@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
+        <otherArchive>http://marc.info/?l=dev</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
+      </otherArchives>
+    </mailingList>
+  </mailingLists>
+  <scm>
+    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</connection>
+    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+    <tag>log4j-2.11.2</tag>
+    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</url>
+  </scm>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
+  </issueManagement>
+  <ciManagement>
+    <system>Jenkins</system>
+    <url>https://builds.apache.org/job/Log4j%202.x/</url>
+  </ciManagement>
+  <distributionManagement>
+    <repository>
+      <id>apache.releases.https</id>
+      <name>Apache Release Distribution Repository</name>
+      <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
+    </repository>
+    <snapshotRepository>
+      <id>apache.snapshots.https</id>
+      <name>Apache Development Snapshot Repository</name>
+      <url>https://repository.apache.org/content/repositories/snapshots</url>
+    </snapshotRepository>
+    <site>
+      <id>www.example.com</id>
+      <url>scp://www.example.com/www/docs/project/log4j-spring-cloud-config/log4j-spring-cloud-config-server/</url>
+    </site>
+    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
+  </distributionManagement>
+  <properties>
+    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
+    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
+    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
+    <activemq.version>5.14.5</activemq.version>
+    <argLine>-Xms256m -Xmx1024m</argLine>
+    <arguments />
+    <assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
+    <changes.plugin.version>2.12.1</changes.plugin.version>
+    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
+    <clirr.plugin.version>2.8</clirr.plugin.version>
+    <cobertura.plugin.version>2.7</cobertura.plugin.version>
+    <commonsLoggingVersion>1.2</commonsLoggingVersion>
+    <compiler.plugin.version>3.8.0</compiler.plugin.version>
+    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion>
+    <deploy.plugin.version>2.8.2</deploy.plugin.version>
+    <disruptorVersion>3.4.2</disruptorVersion>
+    <distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
+    <distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
+    <docLabel>Log4j Spring Cloud Config Server Documentation</docLabel>
+    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
+    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
+    <flumeVersion>1.7.0</flumeVersion>
+    <gpg.useagent>true</gpg.useagent>
+    <jackson1Version>1.9.13</jackson1Version>
+    <jackson2Version>2.9.7</jackson2Version>
+    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
+    <javaTargetVersion>1.7</javaTargetVersion>
+    <javadoc.opts>-Xdoclint:none</javadoc.opts>
+    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
+    <javax.persistence>2.1.1</javax.persistence>
+    <jctoolsVersion>1.2.1</jctoolsVersion>
+    <jxr.plugin.version>2.5</jxr.plugin.version>
+    <log4j.version>2.11.2-SNAPSHOT</log4j.version>
+    <log4jParentDir>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/..</log4jParentDir>
+    <logbackVersion>1.2.3</logbackVersion>
+    <manifestfile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestfile>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+    <minSeverity>info</minSeverity>
+    <mockitoVersion>2.23.4</mockitoVersion>
+    <module.name>org.apache.logging.log4j.spring.cloud.config.controller</module.name>
+    <mongodb2.version>2.14.3</mongodb2.version>
+    <mongodb3.version>3.9.0</mongodb3.version>
+    <organization.logo>https://www.apache.org/images/asf_logo_wide.gif</organization.logo>
+    <osgi.api.version>4.3.1</osgi.api.version>
+    <pdf.plugin.version>1.2</pdf.plugin.version>
+    <pmd.plugin.version>3.10.0</pmd.plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <projectDir>/log4j-spring-cloud-config-server</projectDir>
+    <rat.plugin.version>0.12</rat.plugin.version>
+    <release.plugin.version>2.5.3</release.plugin.version>
+    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
+    <revapi.plugin.version>0.10.5</revapi.plugin.version>
+    <revapi.skip>true</revapi.skip>
+    <scm.plugin.version>1.9.5</scm.plugin.version>
+    <site.plugin.version>3.4</site.plugin.version>
+    <slf4jVersion>1.7.25</slf4jVersion>
+    <sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
+    <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
+    <spring-cloud-bus.version>2.1.0.RELEASE</spring-cloud-bus.version>
+    <spring-cloud-config.version>2.0.2.RELEASE</spring-cloud-config.version>
+    <springVersion>5.0.12.RELEASE</springVersion>
+    <surefire.plugin.version>2.21.0</surefire.plugin.version>
+    <surefire.version>2.22.0</surefire.version>
+    <velocity.plugin.version>1.5</velocity.plugin.version>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-ext</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <version>1.2.3</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <version>1.2.3</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>org.eclipse.osgi</artifactId>
+        <version>3.12.1.v20170821-1548</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.framework</artifactId>
+        <version>5.6.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-core</artifactId>
+        <version>3.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-codec</groupId>
+        <artifactId>commons-codec</artifactId>
+        <version>1.11</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>3.7</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>1.2.3</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>1.2.3</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-java9</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core-java9</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j18-impl</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jcl</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-1.2-api</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-flume-ng</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-iostreams</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jul</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-taglib</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-web</artifactId>
+        <version>2.12.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sleepycat</groupId>
+        <artifactId>je</artifactId>
+        <version>5.0.73</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>4.3.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.fusesource.jansi</groupId>
+        <artifactId>jansi</artifactId>
+        <version>1.17.1</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>1.7.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>jackson-core-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-core</artifactId>
+        <version>1.7.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>slf4j-log4j12</artifactId>
+            <groupId>org.slf4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j</artifactId>
+            <groupId>log4j</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-embedded-agent</artifactId>
+        <version>1.7.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>slf4j-log4j12</artifactId>
+            <groupId>org.slf4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j</artifactId>
+            <groupId>log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-core-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-node</artifactId>
+        <version>1.7.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>slf4j-log4j12</artifactId>
+            <groupId>org.slf4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j</artifactId>
+            <groupId>log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-core-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-file-channel</artifactId>
+        <version>1.7.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>slf4j-log4j12</artifactId>
+            <groupId>org.slf4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j</artifactId>
+            <groupId>log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>servlet-api</artifactId>
+            <groupId>org.mortbay.jetty</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>servlet-api-2.5</artifactId>
+            <groupId>org.mortbay.jetty</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>junit</artifactId>
+            <groupId>junit</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-core</artifactId>
+        <version>1.2.1</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>jackson-core-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <groupId>org.codehaus.jackson</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>servlet-api</artifactId>
+            <groupId>org.mortbay.jetty</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>junit</artifactId>
+            <groupId>junit</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-core-asl</artifactId>
+        <version>1.9.13</version>
+        <scope>runtime</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-mapper-asl</artifactId>
+        <version>1.9.13</version>
+        <scope>runtime</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-core</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-databind</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-annotations</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-yaml</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-xml</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-jaxb-annotations</artifactId>
+        <version>2.9.7</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.mail</groupId>
+        <artifactId>javax.mail</artifactId>
+        <version>1.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.spec.javax.jms</groupId>
+        <artifactId>jboss-jms-api_1.1_spec</artifactId>
+        <version>1.0.1.Final</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-broker</artifactId>
+        <version>5.14.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-clients</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.zeromq</groupId>
+        <artifactId>jeromq</artifactId>
+        <version>0.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>2.5</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.lmax</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>3.4.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.conversantmedia</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>1.2.10</version>
+        <classifier>jdk7</classifier>
+      </dependency>
+      <dependency>
+        <groupId>org.jctools</groupId>
+        <artifactId>jctools-core</artifactId>
+        <version>1.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-all</artifactId>
+        <version>1.3</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>3.1.0</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>2.23.4</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-aop</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-beans</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-core</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-expression</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-oxm</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-test</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-web</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webmvc</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hsqldb</groupId>
+        <artifactId>hsqldb</artifactId>
+        <version>2.3.5</version>
+      </dependency>
+      <dependency>
+        <groupId>com.h2database</groupId>
+        <artifactId>h2</artifactId>
+        <version>1.4.197</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.jpa</artifactId>
+        <version>2.6.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>javax.persistence</artifactId>
+        <version>2.1.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongo-java-driver</artifactId>
+        <version>2.14.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver</artifactId>
+        <version>3.9.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>bson</artifactId>
+        <version>3.9.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.lightcouch</groupId>
+        <artifactId>lightcouch</artifactId>
+        <version>0.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.datastax.cassandra</groupId>
+        <artifactId>cassandra-driver-core</artifactId>
+        <version>3.1.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.liquibase</groupId>
+        <artifactId>liquibase-core</artifactId>
+        <version>3.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>net.javacrumbs.json-unit</groupId>
+        <artifactId>json-unit</artifactId>
+        <version>1.31.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-core</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-matchers</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.6</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.github.tomakehurst</groupId>
+        <artifactId>wiremock</artifactId>
+        <version>2.19.0</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-compress</artifactId>
+        <version>1.18</version>
+      </dependency>
+      <dependency>
+        <groupId>org.tukaani</groupId>
+        <artifactId>xz</artifactId>
+        <version>1.8</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-csv</artifactId>
+        <version>1.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.code.java-allocation-instrumenter</groupId>
+        <artifactId>java-allocation-instrumenter</artifactId>
+        <version>3.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hdrhistogram</groupId>
+        <artifactId>HdrHistogram</artifactId>
+        <version>2.1.9</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache-extras.beanshell</groupId>
+        <artifactId>bsh</artifactId>
+        <version>2.0b6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-jsr223</artifactId>
+        <version>2.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-dateutil</artifactId>
+        <version>2.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>de.flapdoodle.embed</groupId>
+        <artifactId>de.flapdoodle.embed.mongo</artifactId>
+        <version>2.1.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-aspects</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context-indexer</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context-support</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-instrument</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-jcl</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-jdbc</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-jms</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-messaging</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-orm</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-tx</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webflux</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-websocket</artifactId>
+        <version>5.0.12.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-test</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-test-autoconfigure</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-actuator</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-actuator-autoconfigure</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-autoconfigure</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-autoconfigure-processor</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-configuration-metadata</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-configuration-processor</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-devtools</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-loader</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-loader-tools</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-properties-migrator</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-activemq</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-actuator</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-amqp</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-aop</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-artemis</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-batch</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-cache</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-cloud-connectors</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-cassandra</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-cassandra-reactive</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-couchbase</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-couchbase-reactive</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-jdbc</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-jpa</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-ldap</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-mongodb</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-redis</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-neo4j</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-rest</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-data-solr</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-freemarker</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-groovy-templates</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-hateoas</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-integration</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jdbc</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jersey</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jetty</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jooq</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-json</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jta-atomikos</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-jta-bitronix</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-log4j2</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-logging</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-mail</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-mustache</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-oauth2-client</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-reactor-netty</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-quartz</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-security</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-test</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-tomcat</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-undertow</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-validation</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-web</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-webflux</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-websocket</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-web-services</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>antlr</groupId>
+        <artifactId>antlr</artifactId>
+        <version>2.7.7</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-access</artifactId>
+        <version>1.2.3</version>
+      </dependency>
+      <dependency>
+        <groupId>com.atomikos</groupId>
+        <artifactId>transactions-jdbc</artifactId>
+        <version>4.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.atomikos</groupId>
+        <artifactId>transactions-jms</artifactId>
+        <version>4.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.atomikos</groupId>
+        <artifactId>transactions-jta</artifactId>
+        <version>4.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.couchbase.client</groupId>
+        <artifactId>java-client</artifactId>
+        <version>2.7.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.couchbase.client</groupId>
+        <artifactId>couchbase-spring-cache</artifactId>
+        <version>2.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.datastax.cassandra</groupId>
+        <artifactId>cassandra-driver-mapping</artifactId>
+        <version>3.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml</groupId>
+        <artifactId>classmate</artifactId>
+        <version>1.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.ben-manes.caffeine</groupId>
+        <artifactId>caffeine</artifactId>
+        <version>2.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.ben-manes.caffeine</groupId>
+        <artifactId>guava</artifactId>
+        <version>2.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.ben-manes.caffeine</groupId>
+        <artifactId>jcache</artifactId>
+        <version>2.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.ben-manes.caffeine</groupId>
+        <artifactId>simulator</artifactId>
+        <version>2.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>com.github.mxab.thymeleaf.extras</groupId>
+        <artifactId>thymeleaf-extras-data-attribute</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.appengine</groupId>
+        <artifactId>appengine-api-1.0-sdk</artifactId>
+        <version>1.9.68</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+        <version>2.8.5</version>
+      </dependency>
+      <dependency>
+        <groupId>com.hazelcast</groupId>
+        <artifactId>hazelcast</artifactId>
+        <version>3.11</version>
+      </dependency>
+      <dependency>
+        <groupId>com.hazelcast</groupId>
+        <artifactId>hazelcast-client</artifactId>
+        <version>3.11</version>
+      </dependency>
+      <dependency>
+        <groupId>com.hazelcast</groupId>
+        <artifactId>hazelcast-hibernate52</artifactId>
+        <version>1.2.3</version>
+      </dependency>
+      <dependency>
+        <groupId>com.hazelcast</groupId>
+        <artifactId>hazelcast-spring</artifactId>
+        <version>3.11</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jayway.jsonpath</groupId>
+        <artifactId>json-path</artifactId>
+        <version>2.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jayway.jsonpath</groupId>
+        <artifactId>json-path-assert</artifactId>
+        <version>2.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.microsoft.sqlserver</groupId>
+        <artifactId>mssql-jdbc</artifactId>
+        <version>6.4.0.jre8</version>
+      </dependency>
+      <dependency>
+        <groupId>com.querydsl</groupId>
+        <artifactId>querydsl-apt</artifactId>
+        <version>4.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.querydsl</groupId>
+        <artifactId>querydsl-collections</artifactId>
+        <version>4.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.querydsl</groupId>
+        <artifactId>querydsl-core</artifactId>
+        <version>4.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.querydsl</groupId>
+        <artifactId>querydsl-jpa</artifactId>
+        <version>4.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>com.querydsl</groupId>
+        <artifactId>querydsl-mongodb</artifactId>
+        <version>4.2.1</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>mongo-java-driver</artifactId>
+            <groupId>org.mongodb</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>com.rabbitmq</groupId>
+        <artifactId>amqp-client</artifactId>
+        <version>5.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>com.samskivert</groupId>
+        <artifactId>jmustache</artifactId>
+        <version>1.14</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sendgrid</groupId>
+        <artifactId>sendgrid-java</artifactId>
+        <version>4.3.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.xml.messaging.saaj</groupId>
+        <artifactId>saaj-impl</artifactId>
+        <version>1.5.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.timgroup</groupId>
+        <artifactId>java-statsd-client</artifactId>
+        <version>3.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>com.unboundid</groupId>
+        <artifactId>unboundid-ldapsdk</artifactId>
+        <version>4.0.9</version>
+      </dependency>
+      <dependency>
+        <groupId>com.zaxxer</groupId>
+        <artifactId>HikariCP</artifactId>
+        <version>3.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-pool</groupId>
+        <artifactId>commons-pool</artifactId>
+        <version>1.6</version>
+      </dependency>
+      <dependency>
+        <groupId>dom4j</groupId>
+        <artifactId>dom4j</artifactId>
+        <version>1.6.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-annotation</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-core</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-ehcache</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-graphite</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-healthchecks</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-httpasyncclient</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jdbi</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jersey</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jersey2</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jetty8</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jetty9</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jetty9-legacy</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jmx</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-json</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-jvm</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-log4j</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-log4j2</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-logback</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-servlet</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.dropwizard.metrics</groupId>
+        <artifactId>metrics-servlets</artifactId>
+        <version>4.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>io.lettuce</groupId>
+        <artifactId>lettuce-core</artifactId>
+        <version>5.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-core</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-jersey2</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-appoptics</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-atlas</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-azure-monitor</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-cloudwatch</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-datadog</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-dynatrace</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-elastic</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-ganglia</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-graphite</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-humio</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-influx</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-jmx</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-kairos</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-new-relic</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-prometheus</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-signalfx</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-statsd</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-registry-wavefront</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.micrometer</groupId>
+        <artifactId>micrometer-test</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-tcnative-boringssl-static</artifactId>
+        <version>2.0.20.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.prometheus</groupId>
+        <artifactId>simpleclient_pushgateway</artifactId>
+        <version>0.5.0</version>
+      </dependency>
+      <dependency>
+        <groupId>io.reactivex</groupId>
+        <artifactId>rxjava</artifactId>
+        <version>1.3.8</version>
+      </dependency>
+      <dependency>
+        <groupId>io.reactivex</groupId>
+        <artifactId>rxjava-reactive-streams</artifactId>
+        <version>1.2.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.reactivex.rxjava2</groupId>
+        <artifactId>rxjava</artifactId>
+        <version>2.2.4</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>json-path</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>json-schema-validator</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>rest-assured</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>scala-support</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>spring-mock-mvc</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.rest-assured</groupId>
+        <artifactId>xml-path</artifactId>
+        <version>3.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.searchbox</groupId>
+        <artifactId>jest</artifactId>
+        <version>6.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>io.undertow</groupId>
+        <artifactId>undertow-core</artifactId>
+        <version>2.0.16.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.undertow</groupId>
+        <artifactId>undertow-servlet</artifactId>
+        <version>2.0.16.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.undertow</groupId>
+        <artifactId>undertow-websockets-jsr</artifactId>
+        <version>2.0.16.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.activation</groupId>
+        <artifactId>javax.activation-api</artifactId>
+        <version>1.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.annotation</groupId>
+        <artifactId>javax.annotation-api</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.cache</groupId>
+        <artifactId>cache-api</artifactId>
+        <version>1.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.jms</groupId>
+        <artifactId>javax.jms-api</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.json</groupId>
+        <artifactId>javax.json-api</artifactId>
+        <version>1.1.4</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.json.bind</groupId>
+        <artifactId>javax.json.bind-api</artifactId>
+        <version>1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.mail</groupId>
+        <artifactId>javax.mail-api</artifactId>
+        <version>1.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.money</groupId>
+        <artifactId>money-api</artifactId>
+        <version>1.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.persistence</groupId>
+        <artifactId>javax.persistence-api</artifactId>
+        <version>2.2</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>javax.servlet-api</artifactId>
+        <version>4.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>jstl</artifactId>
+        <version>1.2</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.transaction</groupId>
+        <artifactId>javax.transaction-api</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.validation</groupId>
+        <artifactId>validation-api</artifactId>
+        <version>2.0.1.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.websocket</groupId>
+        <artifactId>javax.websocket-api</artifactId>
+        <version>1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.xml.bind</groupId>
+        <artifactId>jaxb-api</artifactId>
+        <version>2.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.xml.ws</groupId>
+        <artifactId>jaxws-api</artifactId>
+        <version>2.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>jaxen</groupId>
+        <artifactId>jaxen</artifactId>
+        <version>1.1.6</version>
+      </dependency>
+      <dependency>
+        <groupId>joda-time</groupId>
+        <artifactId>joda-time</artifactId>
+        <version>2.10.1</version>
+      </dependency>
+      <dependency>
+        <groupId>mysql</groupId>
+        <artifactId>mysql-connector-java</artifactId>
+        <version>8.0.13</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>protobuf-java</artifactId>
+            <groupId>com.google.protobuf</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>net.bytebuddy</groupId>
+        <artifactId>byte-buddy</artifactId>
+        <version>1.9.5</version>
+      </dependency>
+      <dependency>
+        <groupId>net.bytebuddy</groupId>
+        <artifactId>byte-buddy-agent</artifactId>
+        <version>1.9.5</version>
+      </dependency>
+      <dependency>
+        <groupId>net.java.dev.jna</groupId>
+        <artifactId>jna</artifactId>
+        <version>4.5.2</version>
+      </dependency>
+      <dependency>
+        <groupId>net.java.dev.jna</groupId>
+        <artifactId>jna-platform</artifactId>
+        <version>4.5.2</version>
+      </dependency>
+      <dependency>
+        <groupId>net.sf.ehcache</groupId>
+        <artifactId>ehcache</artifactId>
+        <version>2.10.6</version>
+      </dependency>
+      <dependency>
+        <groupId>net.sourceforge.htmlunit</groupId>
+        <artifactId>htmlunit</artifactId>
+        <version>2.33</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>net.sourceforge.jtds</groupId>
+        <artifactId>jtds</artifactId>
+        <version>1.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>net.sourceforge.nekohtml</groupId>
+        <artifactId>nekohtml</artifactId>
+        <version>1.9.22</version>
+      </dependency>
+      <dependency>
+        <groupId>nz.net.ultraq.thymeleaf</groupId>
+        <artifactId>thymeleaf-layout-dialect</artifactId>
+        <version>2.3.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-amqp</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-blueprint</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-camel</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-client</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-console</artifactId>
+        <version>5.15.8</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-http</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-jaas</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-jdbc-store</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-jms-pool</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-kahadb-store</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-karaf</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-leveldb-store</artifactId>
+        <version>5.15.8</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-log4j-appender</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-mqtt</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-openwire-generator</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-openwire-legacy</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-osgi</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-partition</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-pool</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-ra</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-run</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-runtime-config</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-shiro</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-spring</artifactId>
+        <version>5.15.8</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-stomp</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-web</artifactId>
+        <version>5.15.8</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-amqp-protocol</artifactId>
+        <version>2.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-commons</artifactId>
+        <version>2.6.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-core-client</artifactId>
+        <version>2.6.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>geronimo-json_1.0_spec</artifactId>
+            <groupId>org.apache.geronimo.specs</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-jms-client</artifactId>
+        <version>2.6.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>geronimo-json_1.0_spec</artifactId>
+            <groupId>org.apache.geronimo.specs</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-jms-server</artifactId>
+        <version>2.6.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>geronimo-json_1.0_spec</artifactId>
+            <groupId>org.apache.geronimo.specs</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-journal</artifactId>
+        <version>2.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-native</artifactId>
+        <version>2.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-selector</artifactId>
+        <version>2.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-server</artifactId>
+        <version>2.6.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>geronimo-json_1.0_spec</artifactId>
+            <groupId>org.apache.geronimo.specs</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-service-extensions</artifactId>
+        <version>2.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-dbcp2</artifactId>
+        <version>2.5.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-pool2</artifactId>
+        <version>2.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.derby</groupId>
+        <artifactId>derby</artifactId>
+        <version>10.14.2.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpasyncclient</artifactId>
+        <version>4.1.4</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>fluent-hc</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient</artifactId>
+        <version>4.5.6</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient-cache</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient-osgi</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient-win</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpcore</artifactId>
+        <version>4.4.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpcore-nio</artifactId>
+        <version>4.4.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpmime</artifactId>
+        <version>4.5.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-core</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-jaxrs</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-jsonb</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-jsonb-extras</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-jsonschema</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-mapper</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.johnzon</groupId>
+        <artifactId>johnzon-websocket</artifactId>
+        <version>1.1.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>connect-api</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>connect-file</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>connect-json</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>connect-runtime</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>connect-transforms</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-log4j-appender</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-streams</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-tools</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka_2.11</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka_2.12</artifactId>
+        <version>2.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-to-slf4j</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-analysis-extras</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-analytics</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-cell</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-clustering</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-core</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-dataimporthandler</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-dataimporthandler-extras</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-langid</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-ltr</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-solrj</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-test-framework</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-uima</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.solr</groupId>
+        <artifactId>solr-velocity</artifactId>
+        <version>7.4.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat</groupId>
+        <artifactId>tomcat-catalina-jmx-remote</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat</groupId>
+        <artifactId>tomcat-annotations-api</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat</groupId>
+        <artifactId>tomcat-jdbc</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat</groupId>
+        <artifactId>tomcat-jsp-api</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat.embed</groupId>
+        <artifactId>tomcat-embed-core</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat.embed</groupId>
+        <artifactId>tomcat-embed-el</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat.embed</groupId>
+        <artifactId>tomcat-embed-jasper</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tomcat.embed</groupId>
+        <artifactId>tomcat-embed-websocket</artifactId>
+        <version>9.0.13</version>
+      </dependency>
+      <dependency>
+        <groupId>org.aspectj</groupId>
+        <artifactId>aspectjrt</artifactId>
+        <version>1.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.aspectj</groupId>
+        <artifactId>aspectjtools</artifactId>
+        <version>1.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.aspectj</groupId>
+        <artifactId>aspectjweaver</artifactId>
+        <version>1.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.assertj</groupId>
+        <artifactId>assertj-core</artifactId>
+        <version>3.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.btm</groupId>
+        <artifactId>btm</artifactId>
+        <version>2.1.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-ant</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-bsf</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-console</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-docgenerator</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-groovydoc</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-groovysh</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-jmx</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-json</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-nio</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-servlet</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-sql</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-swing</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-templates</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-test</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-testng</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-xml</artifactId>
+        <version>2.5.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.janino</groupId>
+        <artifactId>janino</artifactId>
+        <version>3.0.11</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-reactive-httpclient</artifactId>
+        <version>1.0.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.orbit</groupId>
+        <artifactId>javax.servlet.jsp</artifactId>
+        <version>2.2.0.v201112011158</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ehcache</groupId>
+        <artifactId>ehcache</artifactId>
+        <version>3.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ehcache</groupId>
+        <artifactId>ehcache-clustered</artifactId>
+        <version>3.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.ehcache</groupId>
+        <artifactId>ehcache-transactions</artifactId>
+        <version>3.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch</groupId>
+        <artifactId>elasticsearch</artifactId>
+        <version>6.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch.client</groupId>
+        <artifactId>transport</artifactId>
+        <version>6.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch.distribution.integ-test-zip</groupId>
+        <artifactId>elasticsearch</artifactId>
+        <version>6.4.3</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch.plugin</groupId>
+        <artifactId>transport-netty4-client</artifactId>
+        <version>6.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch.client</groupId>
+        <artifactId>elasticsearch-rest-client</artifactId>
+        <version>6.4.3</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.elasticsearch.client</groupId>
+        <artifactId>elasticsearch-rest-high-level-client</artifactId>
+        <version>6.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.firebirdsql.jdbc</groupId>
+        <artifactId>jaybird-jdk17</artifactId>
+        <version>3.0.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.firebirdsql.jdbc</groupId>
+        <artifactId>jaybird-jdk18</artifactId>
+        <version>3.0.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.flywaydb</groupId>
+        <artifactId>flyway-core</artifactId>
+        <version>5.2.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.freemarker</groupId>
+        <artifactId>freemarker</artifactId>
+        <version>2.3.28</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish</groupId>
+        <artifactId>javax.el</artifactId>
+        <version>3.0.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jaxb</groupId>
+        <artifactId>jaxb-runtime</artifactId>
+        <version>2.3.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-core</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-library</artifactId>
+        <version>1.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-c3p0</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-core</artifactId>
+        <version>5.3.7.Final</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>xml-apis</artifactId>
+            <groupId>xml-apis</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-ehcache</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-entitymanager</artifactId>
+        <version>5.3.7.Final</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>xml-apis</artifactId>
+            <groupId>xml-apis</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-envers</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-hikaricp</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-java8</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-jcache</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-jpamodelgen</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-proxool</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-spatial</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate</groupId>
+        <artifactId>hibernate-testing</artifactId>
+        <version>5.3.7.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate.validator</groupId>
+        <artifactId>hibernate-validator</artifactId>
+        <version>6.0.13.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hibernate.validator</groupId>
+        <artifactId>hibernate-validator-annotation-processor</artifactId>
+        <version>6.0.13.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-jdbc</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-jpa</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-leveldb</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-remote</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-rest</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cachestore-rocksdb</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cdi-common</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cdi-embedded</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cdi-remote</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-client-hotrod</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-cloud</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-clustered-counter</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-clustered-lock</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-commons</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-core</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-directory-provider</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-hibernate-cache-v53</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-jcache</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-jcache-commons</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-jcache-remote</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-lucene-directory</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-objectfilter</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-osgi</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-persistence-cli</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-persistence-soft-index</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-query</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-query-dsl</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-remote-query-client</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-remote-query-server</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-scripting</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-server-core</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-server-hotrod</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-server-memcached</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-server-router</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-spring4-common</artifactId>
+        <version>9.4.3.Final</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-core</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-slf4j-impl</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-jcl</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-spring4-embedded</artifactId>
+        <version>9.4.3.Final</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-core</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-slf4j-impl</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>log4j-jcl</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-spring4-remote</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-tasks</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-tasks-api</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-tools</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-tree</artifactId>
+        <version>9.4.3.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.influxdb</groupId>
+        <artifactId>influxdb-java</artifactId>
+        <version>2.14</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss</groupId>
+        <artifactId>jboss-transaction-spi</artifactId>
+        <version>7.6.0.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging</artifactId>
+        <version>3.3.2.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jdom</groupId>
+        <artifactId>jdom2</artifactId>
+        <version>2.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-reflect</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-runtime</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-jdk7</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-jdk8</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-jre7</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-jre8</artifactId>
+        <version>1.2.71</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jolokia</groupId>
+        <artifactId>jolokia-core</artifactId>
+        <version>1.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jooq</groupId>
+        <artifactId>jooq</artifactId>
+        <version>3.11.7</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jooq</groupId>
+        <artifactId>jooq-meta</artifactId>
+        <version>3.11.7</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jooq</groupId>
+        <artifactId>jooq-codegen</artifactId>
+        <version>3.11.7</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jvnet.mimepull</groupId>
+        <artifactId>mimepull</artifactId>
+        <version>1.9.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mariadb.jdbc</groupId>
+        <artifactId>mariadb-java-client</artifactId>
+        <version>2.3.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.messaginghub</groupId>
+        <artifactId>pooled-jms</artifactId>
+        <version>1.0.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-inline</artifactId>
+        <version>2.23.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-junit-jupiter</artifactId>
+        <version>2.23.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver-async</artifactId>
+        <version>3.8.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver-core</artifactId>
+        <version>3.8.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver-reactivestreams</artifactId>
+        <version>1.9.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mortbay.jasper</groupId>
+        <artifactId>apache-el</artifactId>
+        <version>8.5.33.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.neo4j</groupId>
+        <artifactId>neo4j-ogm-api</artifactId>
+        <version>3.1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.neo4j</groupId>
+        <artifactId>neo4j-ogm-bolt-driver</artifactId>
+        <version>3.1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.neo4j</groupId>
+        <artifactId>neo4j-ogm-core</artifactId>
+        <version>3.1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.neo4j</groupId>
+        <artifactId>neo4j-ogm-embedded-driver</artifactId>
+        <version>3.1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.neo4j</groupId>
+        <artifactId>neo4j-ogm-http-driver</artifactId>
+        <version>3.1.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.postgresql</groupId>
+        <artifactId>postgresql</artifactId>
+        <version>42.2.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.projectlombok</groupId>
+        <artifactId>lombok</artifactId>
+        <version>1.18.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.quartz-scheduler</groupId>
+        <artifactId>quartz</artifactId>
+        <version>2.3.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>c3p0</artifactId>
+            <groupId>com.mchange</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>HikariCP-java6</artifactId>
+            <groupId>com.zaxxer</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.quartz-scheduler</groupId>
+        <artifactId>quartz-jobs</artifactId>
+        <version>2.3.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.reactivestreams</groupId>
+        <artifactId>reactive-streams</artifactId>
+        <version>1.0.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>htmlunit-driver</artifactId>
+        <version>2.33.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-api</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-chrome-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-edge-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-firefox-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-ie-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-java</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-opera-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-remote-driver</artifactId>
+        <version>3.14.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-safari-driver</artifactId>
+        <version>3.14.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.seleniumhq.selenium</groupId>
+        <artifactId>selenium-support</artifactId>
+        <version>3.14.0</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.skyscreamer</groupId>
+        <artifactId>jsonassert</artifactId>
+        <version>1.5.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jcl-over-slf4j</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jul-to-slf4j</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>log4j-over-slf4j</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-jcl</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-jdk14</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-log4j12</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-nop</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-simple</artifactId>
+        <version>1.7.25</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.amqp</groupId>
+        <artifactId>spring-amqp</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.amqp</groupId>
+        <artifactId>spring-rabbit</artifactId>
+        <version>2.1.2.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>http-client</artifactId>
+            <groupId>com.rabbitmq</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.amqp</groupId>
+        <artifactId>spring-rabbit-junit</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.amqp</groupId>
+        <artifactId>spring-rabbit-test</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.batch</groupId>
+        <artifactId>spring-batch-core</artifactId>
+        <version>4.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.batch</groupId>
+        <artifactId>spring-batch-infrastructure</artifactId>
+        <version>4.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.batch</groupId>
+        <artifactId>spring-batch-integration</artifactId>
+        <version>4.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.batch</groupId>
+        <artifactId>spring-batch-test</artifactId>
+        <version>4.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
+        <version>2.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-connectors-core</artifactId>
+        <version>2.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-heroku-connector</artifactId>
+        <version>2.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-localconfig-connector</artifactId>
+        <version>2.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-spring-service-connector</artifactId>
+        <version>2.0.4.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>log4j</artifactId>
+            <groupId>log4j</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.hateoas</groupId>
+        <artifactId>spring-hateoas</artifactId>
+        <version>0.25.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-http</artifactId>
+        <version>5.1.1.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+          <exclusion>
+            <artifactId>commons-logging-api</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.kafka</groupId>
+        <artifactId>spring-kafka</artifactId>
+        <version>2.2.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.kafka</groupId>
+        <artifactId>spring-kafka-test</artifactId>
+        <version>2.2.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-core</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-core-tiger</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-ldif-batch</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-ldif-core</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-odm</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ldap</groupId>
+        <artifactId>spring-ldap-test</artifactId>
+        <version>2.3.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.plugin</groupId>
+        <artifactId>spring-plugin-core</artifactId>
+        <version>1.2.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.plugin</groupId>
+        <artifactId>spring-plugin-metadata</artifactId>
+        <version>1.2.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.restdocs</groupId>
+        <artifactId>spring-restdocs-asciidoctor</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.restdocs</groupId>
+        <artifactId>spring-restdocs-core</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.restdocs</groupId>
+        <artifactId>spring-restdocs-mockmvc</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.restdocs</groupId>
+        <artifactId>spring-restdocs-restassured</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.restdocs</groupId>
+        <artifactId>spring-restdocs-webtestclient</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.retry</groupId>
+        <artifactId>spring-retry</artifactId>
+        <version>1.2.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-ws-core</artifactId>
+        <version>3.0.4.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-ws-security</artifactId>
+        <version>3.0.4.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-ws-support</artifactId>
+        <version>3.0.4.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-ws-test</artifactId>
+        <version>3.0.4.RELEASE</version>
+        <exclusions>
+          <exclusion>
+            <artifactId>commons-logging</artifactId>
+            <groupId>commons-logging</groupId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.ws</groupId>
+        <artifactId>spring-xml</artifactId>
+        <version>3.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.synchronoss.cloud</groupId>
+        <artifactId>nio-multipart-parser</artifactId>
+        <version>1.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>org.thymeleaf</groupId>
+        <artifactId>thymeleaf</artifactId>
+        <version>3.0.11.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.thymeleaf</groupId>
+        <artifactId>thymeleaf-spring5</artifactId>
+        <version>3.0.11.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.thymeleaf.extras</groupId>
+        <artifactId>thymeleaf-extras-java8time</artifactId>
+        <version>3.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.thymeleaf.extras</groupId>
+        <artifactId>thymeleaf-extras-springsecurity5</artifactId>
+        <version>3.0.4.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.webjars</groupId>
+        <artifactId>hal-browser</artifactId>
+        <version>3325375</version>
+      </dependency>
+      <dependency>
+        <groupId>org.webjars</groupId>
+        <artifactId>webjars-locator-core</artifactId>
+        <version>0.35</version>
+      </dependency>
+      <dependency>
+        <groupId>org.xerial</groupId>
+        <artifactId>sqlite-jdbc</artifactId>
+        <version>3.25.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-legacy</artifactId>
+        <version>2.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.yaml</groupId>
+        <artifactId>snakeyaml</artifactId>
+        <version>1.23</version>
+      </dependency>
+      <dependency>
+        <groupId>redis.clients</groupId>
+        <artifactId>jedis</artifactId>
+        <version>2.9.0</version>
+      </dependency>
+      <dependency>
+        <groupId>wsdl4j</groupId>
+        <artifactId>wsdl4j</artifactId>
+        <version>1.6.3</version>
+      </dependency>
+      <dependency>
+        <groupId>xml-apis</groupId>
+        <artifactId>xml-apis</artifactId>
+        <version>1.4.01</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-avro</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-cbor</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-csv</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-ion</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-properties</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-protobuf</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-smile</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-guava</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-hibernate3</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-hibernate4</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-hibernate5</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-hppc</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-jaxrs</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-joda</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-jdk8</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-json-org</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-jsr310</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-jsr353</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.datatype</groupId>
+        <artifactId>jackson-datatype-pcollections</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-base</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-cbor-provider</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-json-provider</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-smile-provider</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-xml-provider</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jaxrs</groupId>
+        <artifactId>jackson-jaxrs-yaml-provider</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jr</groupId>
+        <artifactId>jackson-jr-all</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jr</groupId>
+        <artifactId>jackson-jr-objects</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jr</groupId>
+        <artifactId>jackson-jr-retrofit2</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.jr</groupId>
+        <artifactId>jackson-jr-stree</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-afterburner</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-guice</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-jsonSchema</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-kotlin</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-mrbean</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-osgi</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-parameter-names</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-paranamer</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-scala_2.10</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-scala_2.11</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-scala_2.12</artifactId>
+        <version>2.9.7</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-buffer</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-dns</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-haproxy</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-http</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-http2</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-memcache</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-mqtt</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-redis</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-smtp</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-socks</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-stomp</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-xml</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-common</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-dev-tools</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-handler</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-handler-proxy</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-resolver</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-resolver-dns</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-rxtx</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-sctp</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-udt</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-example</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-all</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-unix-common</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-unix-common</artifactId>
+        <version>4.1.31.Final</version>
+        <classifier>linux-x86_64</classifier>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-unix-common</artifactId>
+        <version>4.1.31.Final</version>
+        <classifier>osx-x86_64</classifier>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-epoll</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-epoll</artifactId>
+        <version>4.1.31.Final</version>
+        <classifier>linux-x86_64</classifier>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-kqueue</artifactId>
+        <version>4.1.31.Final</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-kqueue</artifactId>
+        <version>4.1.31.Final</version>
+        <classifier>osx-x86_64</classifier>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor</groupId>
+        <artifactId>reactor-core</artifactId>
+        <version>3.2.3.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor</groupId>
+        <artifactId>reactor-test</artifactId>
+        <version>3.2.3.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor.addons</groupId>
+        <artifactId>reactor-extra</artifactId>
+        <version>3.2.0.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor.addons</groupId>
+        <artifactId>reactor-adapter</artifactId>
+        <version>3.2.0.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor.addons</groupId>
+        <artifactId>reactor-logback</artifactId>
+        <version>3.2.0.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor.netty</groupId>
+        <artifactId>reactor-netty</artifactId>
+        <version>0.8.3.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>io.projectreactor.kafka</groupId>
+        <artifactId>reactor-kafka</artifactId>
+        <version>1.1.0.RELEASE</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jmx-gui</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-couchdb</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-mongodb2</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-mongodb3</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-cassandra</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jpa</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-liquibase</artifactId>
+        <version>2.11.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>apache-jsp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>apache-jstl</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-java-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-java-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-openjdk8-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-openjdk8-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-conscrypt-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-conscrypt-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-alpn-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-annotations</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-ant</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.cdi</groupId>
+        <artifactId>cdi-core</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.cdi</groupId>
+        <artifactId>cdi-servlet</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-continuation</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-deploy</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-distribution</artifactId>
+        <version>9.4.12.v20180830</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-distribution</artifactId>
+        <version>9.4.12.v20180830</version>
+        <type>tar.gz</type>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.fcgi</groupId>
+        <artifactId>fcgi-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.fcgi</groupId>
+        <artifactId>fcgi-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.gcloud</groupId>
+        <artifactId>jetty-gcloud-session-manager</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-home</artifactId>
+        <version>9.4.12.v20180830</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-home</artifactId>
+        <version>9.4.12.v20180830</version>
+        <type>tar.gz</type>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-http</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.http2</groupId>
+        <artifactId>http2-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.http2</groupId>
+        <artifactId>http2-common</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.http2</groupId>
+        <artifactId>http2-hpack</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.http2</groupId>
+        <artifactId>http2-http-client-transport</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.http2</groupId>
+        <artifactId>http2-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-http-spi</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-infinispan</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-hazelcast</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-io</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-jaas</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-jaspi</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-jmx</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-jndi</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.memcached</groupId>
+        <artifactId>jetty-memcached-sessions</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-nosql</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.osgi</groupId>
+        <artifactId>jetty-osgi-boot</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.osgi</groupId>
+        <artifactId>jetty-osgi-boot-jsp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.osgi</groupId>
+        <artifactId>jetty-osgi-boot-warurl</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.osgi</groupId>
+        <artifactId>jetty-httpservice</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-plus</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-proxy</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-quickstart</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-rewrite</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-security</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-servlet</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-servlets</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-spring</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-unixsocket</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-util</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-util-ajax</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-webapp</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>javax-websocket-client-impl</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>javax-websocket-server-impl</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>websocket-api</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>websocket-client</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>websocket-common</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>websocket-server</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.websocket</groupId>
+        <artifactId>websocket-servlet</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty</groupId>
+        <artifactId>jetty-xml</artifactId>
+        <version>9.4.12.v20180830</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.core</groupId>
+        <artifactId>jersey-common</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.core</groupId>
+        <artifactId>jersey-client</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.core</groupId>
+        <artifactId>jersey-server</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.bundles</groupId>
+        <artifactId>jaxrs-ri</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.connectors</groupId>
+        <artifactId>jersey-apache-connector</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.connectors</groupId>
+        <artifactId>jersey-grizzly-connector</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.connectors</groupId>
+        <artifactId>jersey-jetty-connector</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.connectors</groupId>
+        <artifactId>jersey-jdk-connector</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.connectors</groupId>
+        <artifactId>jersey-netty-connector</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-jetty-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-grizzly2-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-grizzly2-servlet</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-jetty-servlet</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-jdk-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-netty-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-servlet</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-servlet-core</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers</groupId>
+        <artifactId>jersey-container-simple-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.containers.glassfish</groupId>
+        <artifactId>jersey-gf-ejb</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-bean-validation</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-entity-filtering</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-metainf-services</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-mvc</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-mvc-bean-validation</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-mvc-freemarker</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-mvc-jsp</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-mvc-mustache</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-proxy-client</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-servlet-portability</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-spring4</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-declarative-linking</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext</groupId>
+        <artifactId>jersey-wadl-doclet</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-weld2-se</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-cdi1x</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-cdi1x-transaction</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-cdi1x-validation</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-cdi1x-servlet</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.cdi</groupId>
+        <artifactId>jersey-cdi1x-ban-custom-hk2-binding</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.rx</groupId>
+        <artifactId>jersey-rx-client-guava</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.rx</groupId>
+        <artifactId>jersey-rx-client-rxjava</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.ext.rx</groupId>
+        <artifactId>jersey-rx-client-rxjava2</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-jaxb</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-json-jackson</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-json-jackson1</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-json-jettison</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-json-processing</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-json-binding</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-kryo</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-moxy</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-multipart</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.media</groupId>
+        <artifactId>jersey-media-sse</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.security</groupId>
+        <artifactId>oauth1-client</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.security</groupId>
+        <artifactId>oauth1-server</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.security</groupId>
+        <artifactId>oauth1-signature</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.security</groupId>
+        <artifactId>oauth2-client</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.inject</groupId>
+        <artifactId>jersey-hk2</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.inject</groupId>
+        <artifactId>jersey-cdi2-se</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework</groupId>
+        <artifactId>jersey-test-framework-core</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-bundle</artifactId>
+        <version>2.27</version>
+        <type>pom</type>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-external</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-inmemory</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-jdk-http</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-simple</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+        <artifactId>jersey-test-framework-provider-jetty</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.glassfish.jersey.test-framework</groupId>
+        <artifactId>jersey-test-framework-util</artifactId>
+        <version>2.27</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.jupiter</groupId>
+        <artifactId>junit-jupiter-api</artifactId>
+        <version>5.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.jupiter</groupId>
+        <artifactId>junit-jupiter-engine</artifactId>
+        <version>5.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.jupiter</groupId>
+        <artifactId>junit-jupiter-migrationsupport</artifactId>
+        <version>5.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.jupiter</groupId>
+        <artifactId>junit-jupiter-params</artifactId>
+        <version>5.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-commons</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-console</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-engine</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-launcher</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-runner</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-suite-api</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.platform</groupId>
+        <artifactId>junit-platform-surefire-provider</artifactId>
+        <version>1.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.junit.vintage</groupId>
+        <artifactId>junit-vintage-engine</artifactId>
+        <version>5.3.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-cassandra</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-commons</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-couchbase</artifactId>
+        <version>3.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-elasticsearch</artifactId>
+        <version>3.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-gemfire</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-geode</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-jdbc</artifactId>
+        <version>1.0.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-jpa</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-mongodb</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-mongodb-cross-store</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-neo4j</artifactId>
+        <version>5.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-redis</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-rest-webmvc</artifactId>
+        <version>3.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-rest-core</artifactId>
+        <version>3.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-rest-hal-browser</artifactId>
+        <version>3.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-solr</artifactId>
+        <version>4.0.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-keyvalue</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-envers</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-ldap</artifactId>
+        <version>2.1.3.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-amqp</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-core</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-event</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-feed</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-file</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-ftp</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-gemfire</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-groovy</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-ip</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-jdbc</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-jms</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-jmx</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-jpa</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-mail</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-mongodb</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-mqtt</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-redis</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-rmi</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-scripting</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-security</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-sftp</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-stomp</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-stream</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-syslog</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-test</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-test-support</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-webflux</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-websocket</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-ws</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-xml</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-xmpp</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.integration</groupId>
+        <artifactId>spring-integration-zookeeper</artifactId>
+        <version>5.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-acl</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-aspects</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-cas</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-config</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-core</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-crypto</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-data</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-ldap</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-messaging</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-oauth2-client</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-oauth2-core</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-oauth2-jose</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-oauth2-resource-server</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-openid</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-remoting</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-taglibs</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-test</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.security</groupId>
+        <artifactId>spring-security-web</artifactId>
+        <version>5.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-data-gemfire</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-jdbc</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-data-geode</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-hazelcast</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-data-mongodb</artifactId>
+        <version>2.1.1.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-core</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.session</groupId>
+        <artifactId>spring-session-data-redis</artifactId>
+        <version>2.1.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-starter-config</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-config-client</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-config-server</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-config-monitor</artifactId>
+        <version>2.0.2.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jgit</groupId>
+        <artifactId>org.eclipse.jgit</artifactId>
+        <version>4.11.0.201803080745-r</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jgit</groupId>
+        <artifactId>org.eclipse.jgit.junit.http</artifactId>
+        <version>4.11.0.201803080745-r</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.jgit</groupId>
+        <artifactId>org.eclipse.jgit.http.apache</artifactId>
+        <version>4.11.0.201803080745-r</version>
+      </dependency>
+      <dependency>
+        <groupId>com.jcraft</groupId>
+        <artifactId>jsch</artifactId>
+        <version>0.1.54</version>
+      </dependency>
+      <dependency>
+        <groupId>org.tmatesoft.svnkit</groupId>
+        <artifactId>svnkit</artifactId>
+        <version>1.8.12</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+        <version>2.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-starter-bus-kafka</artifactId>
+        <version>2.1.0.RELEASE</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-bus</artifactId>
+        <version>2.1.0.RELEASE</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.12</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-config-server</artifactId>
+      <version>2.0.2.RELEASE</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+      <version>2.1.1.RELEASE</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+      <version>5.0.12.RELEASE</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-webmvc</artifactId>
+      <version>5.0.12.RELEASE</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-all</artifactId>
+      <version>1.3</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.2</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <version>2.12.0-SNAPSHOT</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>2.12.0-SNAPSHOT</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>2.12.0-SNAPSHOT</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <repositories>
+    <repository>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>central</id>
+      <name>nextiva-public</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/groups/public</url>
+    </repository>
+    <repository>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>thirdparty</id>
+      <name>ThirdParty</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/thirdparty</url>
+    </repository>
+    <repository>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>apache.snapshots.https</id>
+      <name>apache-snapshots</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/apache-snapshots/</url>
+    </repository>
+    <repository>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>releases</id>
+      <name>nextiva-releases</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/releases</url>
+    </repository>
+    <repository>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>snapshots</id>
+      <name>snapshots</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots</url>
+    </repository>
+    <repository>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <id>apache.snapshots</id>
+      <name>Apache Snapshot Repository</name>
+      <url>https://repository.apache.org/snapshots</url>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+      <id>central</id>
+      <name>nextiva-public</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/groups/public</url>
+    </pluginRepository>
+    <pluginRepository>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+      <id>snapshots</id>
+      <name>nextiva-snapshots</name>
+      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots</url>
+    </pluginRepository>
+    <pluginRepository>
+      <id>apache</id>
+      <url>https://repository.apache.org/content/repositories/releases/</url>
+    </pluginRepository>
+  </pluginRepositories>
+  <build>
+    <sourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java</sourceDirectory>
+    <scriptSourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/scripts</scriptSourceDirectory>
+    <testSourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/test/java</testSourceDirectory>
+    <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes</outputDirectory>
+    <testOutputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/test-classes</testOutputDirectory>
+    <resources>
+      <resource>
+        <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/resources</directory>
+      </resource>
+    </resources>
+    <testResources>
+      <testResource>
+        <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/test/resources</directory>
+      </testResource>
+    </testResources>
+    <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target</directory>
+    <finalName>log4j-spring-cloud-config-server-2.12.0-SNAPSHOT</finalName>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-antrun-plugin</artifactId>
+          <version>1.8</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-jxr-plugin</artifactId>
+          <version>2.5</version>
+        </plugin>
+        <plugin>
+          <groupId>org.eluder.coveralls</groupId>
+          <artifactId>coveralls-maven-plugin</artifactId>
+          <version>4.3.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>0.8.1</version>
+          <executions>
+            <execution>
+              <id>prepare-agent</id>
+              <goals>
+                <goal>prepare-agent</goal>
+              </goals>
+            </execution>
+            <execution>
+              <id>default-report</id>
+              <phase>prepare-package</phase>
+              <goals>
+                <goal>report</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-pmd-plugin</artifactId>
+          <version>3.10.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.8.0</version>
+          <configuration>
+            <source>1.7</source>
+            <target>1.7</target>
+            <showDeprecation>true</showDeprecation>
+            <showWarnings>true</showWarnings>
+            <encoding>UTF-8</encoding>
+            <fork>true</fork>
+            <meminitial>256</meminitial>
+            <maxmem>1024</maxmem>
+            <compilerArguments>
+              <Xmaxwarns>10000</Xmaxwarns>
+              <Xlint />
+            </compilerArguments>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-dependency-plugin</artifactId>
+          <version>3.1.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>2.8.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-docck-plugin</artifactId>
+          <version>1.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-ear-plugin</artifactId>
+          <version>3.0.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-enforcer-plugin</artifactId>
+          <version>1.4.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-failsafe-plugin</artifactId>
+          <version>2.21.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-gpg-plugin</artifactId>
+          <version>1.6</version>
+          <configuration>
+            <gpgArguments>
+              <arg>--digest-algo=SHA512</arg>
+            </gpgArguments>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-help-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.5.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-invoker-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.1.0</version>
+          <executions>
+            <execution>
+              <id>default-jar</id>
+              <goals>
+                <goal>jar</goal>
+              </goals>
+              <configuration>
+                <archive>
+                  <manifestFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestFile>
+                  <manifestEntries>
+                    <Specification-Title>Apache Log4j Spring Cloud Config Server Support</Specification-Title>
+                    <Specification-Version>2.12.0-SNAPSHOT</Specification-Version>
+                    <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
+                    <Implementation-Title>Apache Log4j Spring Cloud Config Server Support</Implementation-Title>
+                    <Implementation-Version>2.12.0-SNAPSHOT</Implementation-Version>
+                    <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
+                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                    <X-Compile-Source-JDK>1.7</X-Compile-Source-JDK>
+                    <X-Compile-Target-JDK>1.7</X-Compile-Target-JDK>
+                    <Automatic-Module-Name>org.apache.logging.log4j.spring.cloud.config.controller</Automatic-Module-Name>
+                  </manifestEntries>
+                  <manifest>
+                    <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                  </manifest>
+                </archive>
+              </configuration>
+            </execution>
+          </executions>
+          <configuration>
+            <archive>
+              <manifest>
+                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+              </manifest>
+            </archive>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-checkstyle-plugin</artifactId>
+          <version>3.0.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>3.0.1</version>
+          <configuration>
+            <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+            <doclint>none</doclint>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-plugin-plugin</artifactId>
+          <version>3.5.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-project-info-reports-plugin</artifactId>
+          <version>3.0.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>3.5.0</version>
+          <extensions>true</extensions>
+          <executions>
+            <execution>
+              <phase>process-classes</phase>
+              <goals>
+                <goal>manifest</goal>
+              </goals>
+            </execution>
+          </executions>
+          <inherited>true</inherited>
+        </plugin>
+        <plugin>
+          <artifactId>maven-changes-plugin</artifactId>
+          <version>2.12.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.5.3</version>
+          <configuration>
+            <useReleaseProfile>false</useReleaseProfile>
+            <goals>deploy</goals>
+            <arguments>-Papache-release</arguments>
+            <waitBeforeTagging>10</waitBeforeTagging>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-remote-resources-plugin</artifactId>
+          <version>1.5</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-scm-plugin</artifactId>
+          <version>1.9.5</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-scm-publish-plugin</artifactId>
+          <version>3.0.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>3.7.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-source-plugin</artifactId>
+          <version>3.0.1</version>
+          <executions>
+            <execution>
+              <id>attach-sources</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>jar-no-fork</goal>
+                <goal>test-jar-no-fork</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.21.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-surefire-report-plugin</artifactId>
+          <version>2.22.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-war-plugin</artifactId>
+          <version>3.2.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-shade-plugin</artifactId>
+          <version>3.1.1</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <version>0.12</version>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>clirr-maven-plugin</artifactId>
+          <version>2.8</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <version>1.5</version>
+        <executions>
+          <execution>
+            <id>process-resource-bundles</id>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <resourceBundles>
+                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+              </resourceBundles>
+            </configuration>
+          </execution>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>false</skip>
+              <resourceBundles />
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>1.4.1</version>
+        <executions>
+          <execution>
+            <id>enforce-maven-version</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireMavenVersion>
+                  <version>3.0.5</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.0.0</version>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>default-clean</id>
+            <phase>clean</phase>
+            <goals>
+              <goal>clean</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.0.2</version>
+        <executions>
+          <execution>
+            <id>default-testResources</id>
+            <phase>process-test-resources</phase>
+            <goals>
+              <goal>testResources</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>default-resources</id>
+            <phase>process-resources</phase>
+            <goals>
+              <goal>resources</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>copy-sitecss</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site/resources</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.21.0</version>
+        <executions>
+          <execution>
+            <id>default-test</id>
+            <phase>test</phase>
+            <goals>
+              <goal>test</goal>
+            </goals>
+            <configuration>
+              <systemPropertyVariables>
+                <java.awt.headless>true</java.awt.headless>
+              </systemPropertyVariables>
+              <forkCount>1</forkCount>
+              <reuseForks>false</reuseForks>
+              <excludes>
+                <exclude>${log4j.skip.test1}</exclude>
+                <exclude>${log4j.skip.test2}</exclude>
+              </excludes>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <excludes>
+            <exclude>${log4j.skip.test1}</exclude>
+            <exclude>${log4j.skip.test2}</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.21.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>integration-test</goal>
+              <goal>verify</goal>
+            </goals>
+            <configuration>
+              <systemPropertyVariables>
+                <java.awt.headless>true</java.awt.headless>
+              </systemPropertyVariables>
+              <argLine>-Xms256m -Xmx1024m</argLine>
+              <forkCount>1</forkCount>
+              <reuseForks>false</reuseForks>
+              <encoding>UTF-8</encoding>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <argLine>-Xms256m -Xmx1024m</argLine>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>3.4</version>
+        <executions>
+          <execution>
+            <id>default-site</id>
+            <phase>site</phase>
+            <goals>
+              <goal>site</goal>
+            </goals>
+            <configuration>
+              <locales>en</locales>
+              <moduleExcludes>
+                <xdoc>navigation.xml,changes.xml</xdoc>
+              </moduleExcludes>
+              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
+              <template>site.vm</template>
+              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+              <reportPlugins>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-changes-plugin</artifactId>
+                  <version>2.12.1</version>
+                  <configuration>
+                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                    <useJql>true</useJql>
+                    <statusIds>Resolved, Closed</statusIds>
+                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                        <useJql>true</useJql>
+                        <statusIds>Resolved, Closed</statusIds>
+                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                      </configuration>
+                      <reports>
+                        <report>changes-report</report>
+                        <report>changes-report</report>
+                        <report>jira-report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-project-info-reports-plugin</artifactId>
+                  <version>2.9</version>
+                  <configuration>
+                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                    <scmTag>log4j-2.11.2</scmTag>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                        <scmTag>log4j-2.11.2</scmTag>
+                      </configuration>
+                      <reports>
+                        <report>index</report>
+                        <report>dependencies</report>
+                        <report>dependency-info</report>
+                        <report>dependency-convergence</report>
+                        <report>dependency-management</report>
+                        <report>project-team</report>
+                        <report>mailing-list</report>
+                        <report>issue-tracking</report>
+                        <report>license</report>
+                        <report>scm</report>
+                        <report>summary</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-surefire-report-plugin</artifactId>
+                  <version>2.21.0</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>integration-tests</id>
+                      <reports>
+                        <report>failsafe-report-only</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.rat</groupId>
+                  <artifactId>apache-rat-plugin</artifactId>
+                  <version>0.12</version>
+                  <configuration>
+                    <excludes>
+                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                      <exclude>.idea/**/*</exclude>
+                      <exclude>src/test/resources/**/*</exclude>
+                      <exclude>src/ide/**</exclude>
+                      <exclude>**/*.asc</exclude>
+                      <exclude>src/site/resources/js/jquery.js</exclude>
+                      <exclude>src/site/resources/js/jquery.min.js</exclude>
+                      <exclude>log4j-distribution/target/**/*</exclude>
+                      <exclude>log4j-distribution/.project</exclude>
+                      <exclude>log4j-distribution/.settings/**</exclude>
+                      <exclude>velocity.log</exclude>
+                      <exclude>felix-cache/**</exclude>
+                      <exclude>RELEASE-NOTES.txt</exclude>
+                      <exclude>**/revapi.json</exclude>
+                    </excludes>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.revapi</groupId>
+                  <artifactId>revapi-maven-plugin</artifactId>
+                  <version>0.10.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <reports>
+                        <report>report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-checkstyle-plugin</artifactId>
+                  <version>3.0.0</version>
+                  <configuration>
+                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
+                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
+                    <enableRulesSummary>false</enableRulesSummary>
+                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
+                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-javadoc-plugin</artifactId>
+                  <version>3.0.1</version>
+                  <configuration>
+                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                    <detectOfflineLinks>false</detectOfflineLinks>
+                    <linksource>true</linksource>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <configuration>
+                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                        <detectOfflineLinks>false</detectOfflineLinks>
+                        <linksource>true</linksource>
+                      </configuration>
+                      <reports>
+                        <report>javadoc</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>findbugs-maven-plugin</artifactId>
+                  <version>3.0.5</version>
+                  <configuration>
+                    <fork>true</fork>
+                    <jvmArgs>-Duser.language=en</jvmArgs>
+                    <threshold>Normal</threshold>
+                    <effort>Default</effort>
+                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-jxr-plugin</artifactId>
+                  <version>2.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <reports>
+                        <report>jxr</report>
+                      </reports>
+                    </reportSet>
+                    <reportSet>
+                      <id>aggregate</id>
+                      <reports>
+                        <report>aggregate</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-pmd-plugin</artifactId>
+                  <version>3.10.0</version>
+                  <configuration>
+                    <targetJdk>1.7</targetJdk>
+                  </configuration>
+                </reportPlugin>
+              </reportPlugins>
+            </configuration>
+          </execution>
+          <execution>
+            <id>default-deploy</id>
+            <phase>site-deploy</phase>
+            <goals>
+              <goal>deploy</goal>
+            </goals>
+            <configuration>
+              <locales>en</locales>
+              <moduleExcludes>
+                <xdoc>navigation.xml,changes.xml</xdoc>
+              </moduleExcludes>
+              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
+              <template>site.vm</template>
+              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+              <reportPlugins>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-changes-plugin</artifactId>
+                  <version>2.12.1</version>
+                  <configuration>
+                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                    <useJql>true</useJql>
+                    <statusIds>Resolved, Closed</statusIds>
+                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                        <useJql>true</useJql>
+                        <statusIds>Resolved, Closed</statusIds>
+                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                      </configuration>
+                      <reports>
+                        <report>changes-report</report>
+                        <report>changes-report</report>
+                        <report>jira-report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-project-info-reports-plugin</artifactId>
+                  <version>2.9</version>
+                  <configuration>
+                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                    <scmTag>log4j-2.11.2</scmTag>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                        <scmTag>log4j-2.11.2</scmTag>
+                      </configuration>
+                      <reports>
+                        <report>index</report>
+                        <report>dependencies</report>
+                        <report>dependency-info</report>
+                        <report>dependency-convergence</report>
+                        <report>dependency-management</report>
+                        <report>project-team</report>
+                        <report>mailing-list</report>
+                        <report>issue-tracking</report>
+                        <report>license</report>
+                        <report>scm</report>
+                        <report>summary</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-surefire-report-plugin</artifactId>
+                  <version>2.21.0</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>integration-tests</id>
+                      <reports>
+                        <report>failsafe-report-only</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.rat</groupId>
+                  <artifactId>apache-rat-plugin</artifactId>
+                  <version>0.12</version>
+                  <configuration>
+                    <excludes>
+                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                      <exclude>.idea/**/*</exclude>
+                      <exclude>src/test/resources/**/*</exclude>
+                      <exclude>src/ide/**</exclude>
+                      <exclude>**/*.asc</exclude>
+                      <exclude>src/site/resources/js/jquery.js</exclude>
+                      <exclude>src/site/resources/js/jquery.min.js</exclude>
+                      <exclude>log4j-distribution/target/**/*</exclude>
+                      <exclude>log4j-distribution/.project</exclude>
+                      <exclude>log4j-distribution/.settings/**</exclude>
+                      <exclude>velocity.log</exclude>
+                      <exclude>felix-cache/**</exclude>
+                      <exclude>RELEASE-NOTES.txt</exclude>
+                      <exclude>**/revapi.json</exclude>
+                    </excludes>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.revapi</groupId>
+                  <artifactId>revapi-maven-plugin</artifactId>
+                  <version>0.10.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <reports>
+                        <report>report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-checkstyle-plugin</artifactId>
+                  <version>3.0.0</version>
+                  <configuration>
+                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
+                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
+                    <enableRulesSummary>false</enableRulesSummary>
+                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
+                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-javadoc-plugin</artifactId>
+                  <version>3.0.1</version>
+                  <configuration>
+                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                    <detectOfflineLinks>false</detectOfflineLinks>
+                    <linksource>true</linksource>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <configuration>
+                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                        <detectOfflineLinks>false</detectOfflineLinks>
+                        <linksource>true</linksource>
+                      </configuration>
+                      <reports>
+                        <report>javadoc</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>findbugs-maven-plugin</artifactId>
+                  <version>3.0.5</version>
+                  <configuration>
+                    <fork>true</fork>
+                    <jvmArgs>-Duser.language=en</jvmArgs>
+                    <threshold>Normal</threshold>
+                    <effort>Default</effort>
+                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-jxr-plugin</artifactId>
+                  <version>2.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <reports>
+                        <report>jxr</report>
+                      </reports>
+                    </reportSet>
+                    <reportSet>
+                      <id>aggregate</id>
+                      <reports>
+                        <report>aggregate</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-pmd-plugin</artifactId>
+                  <version>3.10.0</version>
+                  <configuration>
+                    <targetJdk>1.7</targetJdk>
+                  </configuration>
+                </reportPlugin>
+              </reportPlugins>
+            </configuration>
+          </execution>
+          <execution>
+            <id>attach-descriptor</id>
+            <goals>
+              <goal>attach-descriptor</goal>
+            </goals>
+            <configuration>
+              <locales>en</locales>
+              <moduleExcludes>
+                <xdoc>navigation.xml,changes.xml</xdoc>
+              </moduleExcludes>
+              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
+              <template>site.vm</template>
+              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+              <reportPlugins>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-changes-plugin</artifactId>
+                  <version>2.12.1</version>
+                  <configuration>
+                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                    <useJql>true</useJql>
+                    <statusIds>Resolved, Closed</statusIds>
+                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                        <useJql>true</useJql>
+                        <statusIds>Resolved, Closed</statusIds>
+                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                      </configuration>
+                      <reports>
+                        <report>changes-report</report>
+                        <report>changes-report</report>
+                        <report>jira-report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-project-info-reports-plugin</artifactId>
+                  <version>2.9</version>
+                  <configuration>
+                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                    <scmTag>log4j-2.11.2</scmTag>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <configuration>
+                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                        <scmTag>log4j-2.11.2</scmTag>
+                      </configuration>
+                      <reports>
+                        <report>index</report>
+                        <report>dependencies</report>
+                        <report>dependency-info</report>
+                        <report>dependency-convergence</report>
+                        <report>dependency-management</report>
+                        <report>project-team</report>
+                        <report>mailing-list</report>
+                        <report>issue-tracking</report>
+                        <report>license</report>
+                        <report>scm</report>
+                        <report>summary</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-surefire-report-plugin</artifactId>
+                  <version>2.21.0</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>integration-tests</id>
+                      <reports>
+                        <report>failsafe-report-only</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.rat</groupId>
+                  <artifactId>apache-rat-plugin</artifactId>
+                  <version>0.12</version>
+                  <configuration>
+                    <excludes>
+                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                      <exclude>.idea/**/*</exclude>
+                      <exclude>src/test/resources/**/*</exclude>
+                      <exclude>src/ide/**</exclude>
+                      <exclude>**/*.asc</exclude>
+                      <exclude>src/site/resources/js/jquery.js</exclude>
+                      <exclude>src/site/resources/js/jquery.min.js</exclude>
+                      <exclude>log4j-distribution/target/**/*</exclude>
+                      <exclude>log4j-distribution/.project</exclude>
+                      <exclude>log4j-distribution/.settings/**</exclude>
+                      <exclude>velocity.log</exclude>
+                      <exclude>felix-cache/**</exclude>
+                      <exclude>RELEASE-NOTES.txt</exclude>
+                      <exclude>**/revapi.json</exclude>
+                    </excludes>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.revapi</groupId>
+                  <artifactId>revapi-maven-plugin</artifactId>
+                  <version>0.10.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>default</id>
+                      <reports>
+                        <report>report</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-checkstyle-plugin</artifactId>
+                  <version>3.0.0</version>
+                  <configuration>
+                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
+                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
+                    <enableRulesSummary>false</enableRulesSummary>
+                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
+                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-javadoc-plugin</artifactId>
+                  <version>3.0.1</version>
+                  <configuration>
+                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                    <detectOfflineLinks>false</detectOfflineLinks>
+                    <linksource>true</linksource>
+                  </configuration>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <configuration>
+                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                        <detectOfflineLinks>false</detectOfflineLinks>
+                        <linksource>true</linksource>
+                      </configuration>
+                      <reports>
+                        <report>javadoc</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.codehaus.mojo</groupId>
+                  <artifactId>findbugs-maven-plugin</artifactId>
+                  <version>3.0.5</version>
+                  <configuration>
+                    <fork>true</fork>
+                    <jvmArgs>-Duser.language=en</jvmArgs>
+                    <threshold>Normal</threshold>
+                    <effort>Default</effort>
+                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
+                  </configuration>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-jxr-plugin</artifactId>
+                  <version>2.5</version>
+                  <reportSets>
+                    <reportSet>
+                      <id>non-aggregate</id>
+                      <reports>
+                        <report>jxr</report>
+                      </reports>
+                    </reportSet>
+                    <reportSet>
+                      <id>aggregate</id>
+                      <reports>
+                        <report>aggregate</report>
+                      </reports>
+                    </reportSet>
+                  </reportSets>
+                </reportPlugin>
+                <reportPlugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-pmd-plugin</artifactId>
+                  <version>3.10.0</version>
+                  <configuration>
+                    <targetJdk>1.7</targetJdk>
+                  </configuration>
+                </reportPlugin>
+              </reportPlugins>
+            </configuration>
+          </execution>
+        </executions>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity</artifactId>
+            <version>1.5</version>
+            <scope>compile</scope>
+          </dependency>
+          <dependency>
+            <groupId>org.apache.maven.wagon</groupId>
+            <artifactId>wagon-ssh</artifactId>
+            <version>3.1.0</version>
+            <scope>compile</scope>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <locales>en</locales>
+          <moduleExcludes>
+            <xdoc>navigation.xml,changes.xml</xdoc>
+          </moduleExcludes>
+          <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
+          <template>site.vm</template>
+          <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+          <reportPlugins>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-changes-plugin</artifactId>
+              <version>2.12.1</version>
+              <configuration>
+                <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                <useJql>true</useJql>
+                <statusIds>Resolved, Closed</statusIds>
+                <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+              </configuration>
+              <reportSets>
+                <reportSet>
+                  <id>default</id>
+                  <configuration>
+                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+                    <useJql>true</useJql>
+                    <statusIds>Resolved, Closed</statusIds>
+                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+                  </configuration>
+                  <reports>
+                    <report>changes-report</report>
+                    <report>changes-report</report>
+                    <report>jira-report</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-project-info-reports-plugin</artifactId>
+              <version>2.9</version>
+              <configuration>
+                <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                <scmTag>log4j-2.11.2</scmTag>
+              </configuration>
+              <reportSets>
+                <reportSet>
+                  <id>default</id>
+                  <configuration>
+                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+                    <scmTag>log4j-2.11.2</scmTag>
+                  </configuration>
+                  <reports>
+                    <report>index</report>
+                    <report>dependencies</report>
+                    <report>dependency-info</report>
+                    <report>dependency-convergence</report>
+                    <report>dependency-management</report>
+                    <report>project-team</report>
+                    <report>mailing-list</report>
+                    <report>issue-tracking</report>
+                    <report>license</report>
+                    <report>scm</report>
+                    <report>summary</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-surefire-report-plugin</artifactId>
+              <version>2.21.0</version>
+              <reportSets>
+                <reportSet>
+                  <id>integration-tests</id>
+                  <reports>
+                    <report>failsafe-report-only</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.rat</groupId>
+              <artifactId>apache-rat-plugin</artifactId>
+              <version>0.12</version>
+              <configuration>
+                <excludes>
+                  <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                  <exclude>.idea/**/*</exclude>
+                  <exclude>src/test/resources/**/*</exclude>
+                  <exclude>src/ide/**</exclude>
+                  <exclude>**/*.asc</exclude>
+                  <exclude>src/site/resources/js/jquery.js</exclude>
+                  <exclude>src/site/resources/js/jquery.min.js</exclude>
+                  <exclude>log4j-distribution/target/**/*</exclude>
+                  <exclude>log4j-distribution/.project</exclude>
+                  <exclude>log4j-distribution/.settings/**</exclude>
+                  <exclude>velocity.log</exclude>
+                  <exclude>felix-cache/**</exclude>
+                  <exclude>RELEASE-NOTES.txt</exclude>
+                  <exclude>**/revapi.json</exclude>
+                </excludes>
+              </configuration>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.revapi</groupId>
+              <artifactId>revapi-maven-plugin</artifactId>
+              <version>0.10.5</version>
+              <reportSets>
+                <reportSet>
+                  <id>default</id>
+                  <reports>
+                    <report>report</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-checkstyle-plugin</artifactId>
+              <version>3.0.0</version>
+              <configuration>
+                <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
+                <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
+                <enableRulesSummary>false</enableRulesSummary>
+                <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
+                <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
+              </configuration>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-javadoc-plugin</artifactId>
+              <version>3.0.1</version>
+              <configuration>
+                <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                <detectOfflineLinks>false</detectOfflineLinks>
+                <linksource>true</linksource>
+              </configuration>
+              <reportSets>
+                <reportSet>
+                  <id>non-aggregate</id>
+                  <configuration>
+                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+                    <detectOfflineLinks>false</detectOfflineLinks>
+                    <linksource>true</linksource>
+                  </configuration>
+                  <reports>
+                    <report>javadoc</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.codehaus.mojo</groupId>
+              <artifactId>findbugs-maven-plugin</artifactId>
+              <version>3.0.5</version>
+              <configuration>
+                <fork>true</fork>
+                <jvmArgs>-Duser.language=en</jvmArgs>
+                <threshold>Normal</threshold>
+                <effort>Default</effort>
+                <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
+              </configuration>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-jxr-plugin</artifactId>
+              <version>2.5</version>
+              <reportSets>
+                <reportSet>
+                  <id>non-aggregate</id>
+                  <reports>
+                    <report>jxr</report>
+                  </reports>
+                </reportSet>
+                <reportSet>
+                  <id>aggregate</id>
+                  <reports>
+                    <report>aggregate</report>
+                  </reports>
+                </reportSet>
+              </reportSets>
+            </reportPlugin>
+            <reportPlugin>
+              <groupId>org.apache.maven.plugins</groupId>
+              <artifactId>maven-pmd-plugin</artifactId>
+              <version>3.10.0</version>
+              <configuration>
+                <targetJdk>1.7</targetJdk>
+              </configuration>
+            </reportPlugin>
+          </reportPlugins>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-pdf-plugin</artifactId>
+        <version>1.2</version>
+        <executions>
+          <execution>
+            <id>pdf</id>
+            <phase>site</phase>
+            <goals>
+              <goal>pdf</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>3.0.1</version>
+        <executions>
+          <execution>
+            <id>attach-sources</id>
+            <phase>verify</phase>
+            <goals>
+              <goal>jar-no-fork</goal>
+              <goal>test-jar-no-fork</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>0.12</version>
+        <configuration>
+          <excludes>
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <exclude>src/ide/**</exclude>
+            <exclude>**/*.asc</exclude>
+            <exclude>src/site/resources/js/jquery.js</exclude>
+            <exclude>src/site/resources/js/jquery.min.js</exclude>
+            <exclude>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.md</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-doap-plugin</artifactId>
+        <version>1.2</version>
+        <executions>
+          <execution>
+            <id>site</id>
+            <phase>site</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+            <configuration>
+              <doapOptions>
+                <programmingLanguage>Java</programmingLanguage>
+                <category>library</category>
+              </doapOptions>
+              <asfExtOptions>
+                <charter>The Apache Logging Services Project creates and maintains open-source software related to the logging of
+              application behavior and released at no charge to the public.</charter>
+                <pmc>https://logging.apache.org</pmc>
+              </asfExtOptions>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <doapOptions>
+            <programmingLanguage>Java</programmingLanguage>
+            <category>library</category>
+          </doapOptions>
+          <asfExtOptions>
+            <charter>The Apache Logging Services Project creates and maintains open-source software related to the logging of
+              application behavior and released at no charge to the public.</charter>
+            <pmc>https://logging.apache.org</pmc>
+          </asfExtOptions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.revapi</groupId>
+        <artifactId>revapi-maven-plugin</artifactId>
+        <version>0.10.5</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <configuration>
+              <checkDependencies>false</checkDependencies>
+              <skip>true</skip>
+              <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
+              <analysisConfigurationFiles>
+                <path>revapi.json</path>
+              </analysisConfigurationFiles>
+              <analysisConfiguration>[
+  {
+     "extension": "revapi.java",
+     "configuration": {
+       "missing-classes": {
+         "behavior": "report",
+         "ignoreMissingAnnotations": false
+       },
+       "reportUsesFor": [
+          "java.missing.newClass",
+          "java.class.nonPublicPartOfAPI"
+       ],
+       "filter": {
+         "classes": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         },
+         "packages": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         }
+       }
+     }
+  }
+]</analysisConfiguration>
+            </configuration>
+          </execution>
+        </executions>
+        <dependencies>
+          <dependency>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-java</artifactId>
+            <version>0.18.2</version>
+            <scope>compile</scope>
+          </dependency>
+        </dependencies>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>3.5.0</version>
+        <extensions>true</extensions>
+        <executions>
+          <execution>
+            <phase>process-classes</phase>
+            <goals>
+              <goal>manifest</goal>
+            </goals>
+            <configuration>
+              <instructions>
+                <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
+              </instructions>
+            </configuration>
+          </execution>
+        </executions>
+        <inherited>true</inherited>
+        <configuration>
+          <instructions>
+            <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>3.1.0</version>
+        <executions>
+          <execution>
+            <id>default-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+            <configuration>
+              <archive>
+                <manifestFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestFile>
+                <manifestEntries>
+                  <Specification-Title>Apache Log4j Spring Cloud Config Server Support</Specification-Title>
+                  <Specification-Version>2.12.0-SNAPSHOT</Specification-Version>
+                  <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
+                  <Implementation-Title>Apache Log4j Spring Cloud Config Server Support</Implementation-Title>
+                  <Implementation-Version>2.12.0-SNAPSHOT</Implementation-Version>
+                  <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
+                  <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                  <X-Compile-Source-JDK>1.7</X-Compile-Source-JDK>
+                  <X-Compile-Target-JDK>1.7</X-Compile-Target-JDK>
+                  <Automatic-Module-Name>org.apache.logging.log4j.spring.cloud.config.controller</Automatic-Module-Name>
+                </manifestEntries>
+                <manifest>
+                  <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                  <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                </manifest>
+              </archive>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <archive>
+            <manifest>
+              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+            </manifest>
+          </archive>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.8.0</version>
+        <executions>
+          <execution>
+            <id>default-compile</id>
+            <phase>compile</phase>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+            <configuration>
+              <source>1.7</source>
+              <target>1.7</target>
+              <showDeprecation>true</showDeprecation>
+              <showWarnings>true</showWarnings>
+              <encoding>UTF-8</encoding>
+              <fork>true</fork>
+              <meminitial>256</meminitial>
+              <maxmem>1024</maxmem>
+              <compilerArguments>
+                <Xmaxwarns>10000</Xmaxwarns>
+                <Xlint />
+              </compilerArguments>
+            </configuration>
+          </execution>
+          <execution>
+            <id>default-testCompile</id>
+            <phase>test-compile</phase>
+            <goals>
+              <goal>testCompile</goal>
+            </goals>
+            <configuration>
+              <source>1.7</source>
+              <target>1.7</target>
+              <showDeprecation>true</showDeprecation>
+              <showWarnings>true</showWarnings>
+              <encoding>UTF-8</encoding>
+              <fork>true</fork>
+              <meminitial>256</meminitial>
+              <maxmem>1024</maxmem>
+              <compilerArguments>
+                <Xmaxwarns>10000</Xmaxwarns>
+                <Xlint />
+              </compilerArguments>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <source>1.7</source>
+          <target>1.7</target>
+          <showDeprecation>true</showDeprecation>
+          <showWarnings>true</showWarnings>
+          <encoding>UTF-8</encoding>
+          <fork>true</fork>
+          <meminitial>256</meminitial>
+          <maxmem>1024</maxmem>
+          <compilerArguments>
+            <Xmaxwarns>10000</Xmaxwarns>
+            <Xlint />
+          </compilerArguments>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-install-plugin</artifactId>
+        <version>2.5.2</version>
+        <executions>
+          <execution>
+            <id>default-install</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <artifactId>maven-deploy-plugin</artifactId>
+        <version>2.8.2</version>
+        <executions>
+          <execution>
+            <id>default-deploy</id>
+            <phase>deploy</phase>
+            <goals>
+              <goal>deploy</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
+    <plugins>
+      <plugin>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>2.12.1</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+              <report>changes-report</report>
+              <report>jira-report</report>
+            </reports>
+            <configuration>
+              <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+              <useJql>true</useJql>
+              <statusIds>Resolved, Closed</statusIds>
+              <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+            </configuration>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+          <useJql>true</useJql>
+          <statusIds>Resolved, Closed</statusIds>
+          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.9</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>index</report>
+              <report>dependencies</report>
+              <report>dependency-info</report>
+              <report>dependency-convergence</report>
+              <report>dependency-management</report>
+              <report>project-team</report>
+              <report>mailing-list</report>
+              <report>issue-tracking</report>
+              <report>license</report>
+              <report>scm</report>
+              <report>summary</report>
+            </reports>
+            <configuration>
+              <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+              <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+              <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+              <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+              <scmTag>log4j-2.11.2</scmTag>
+            </configuration>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
+          <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
+          <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
+          <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
+          <scmTag>log4j-2.11.2</scmTag>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+        <version>2.21.0</version>
+        <reportSets>
+          <reportSet>
+            <id>integration-tests</id>
+            <reports>
+              <report>failsafe-report-only</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>0.12</version>
+        <configuration>
+          <excludes>
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <exclude>src/ide/**</exclude>
+            <exclude>**/*.asc</exclude>
+            <exclude>src/site/resources/js/jquery.js</exclude>
+            <exclude>src/site/resources/js/jquery.min.js</exclude>
+            <exclude>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.txt</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.revapi</groupId>
+        <artifactId>revapi-maven-plugin</artifactId>
+        <version>0.10.5</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>3.0.0</version>
+        <configuration>
+          <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
+          <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
+          <enableRulesSummary>false</enableRulesSummary>
+          <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
+          <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>3.0.1</version>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>javadoc</report>
+            </reports>
+            <configuration>
+              <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+              <detectOfflineLinks>false</detectOfflineLinks>
+              <linksource>true</linksource>
+            </configuration>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
+          <detectOfflineLinks>false</detectOfflineLinks>
+          <linksource>true</linksource>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <version>3.0.5</version>
+        <configuration>
+          <fork>true</fork>
+          <jvmArgs>-Duser.language=en</jvmArgs>
+          <threshold>Normal</threshold>
+          <effort>Default</effort>
+          <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-jxr-plugin</artifactId>
+        <version>2.5</version>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>jxr</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <id>aggregate</id>
+            <reports>
+              <report>aggregate</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <artifactId>maven-pmd-plugin</artifactId>
+        <version>3.10.0</version>
+        <configuration>
+          <targetJdk>1.7</targetJdk>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
+
+
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 3.315 s
+[INFO] Finished at: 2019-03-01T16:18:01-07:00
+[INFO] Final Memory: 26M/981M
+[INFO] ------------------------------------------------------------------------
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
index 6a31ce6..eaf6767 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-spring-cloud-config</artifactId>
-    <version>2.11.2-SNAPSHOT</version>
+    <version>2.12.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <artifactId>log4j-spring-cloud-config-server</artifactId>
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index 37282c9..fa64d72 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
-    <version>2.11.2-SNAPSHOT</version>
+    <version>2.12.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
   <groupId>org.apache.logging.log4j</groupId>
@@ -31,16 +31,16 @@
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <revapi.skip>true</revapi.skip>
-    <spring-cloud-config.version>2.0.3.BUILD-SNAPSHOT</spring-cloud-config.version>
... 56 lines suppressed ...


[logging-log4j2] 03/12: LOG4J2-2266 - Load PropertySources from any accessible ClassLoader and handle any exceptions

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 23ec2ac7a480854591c794c966edd046b5bba952
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Wed Jan 30 19:53:53 2019 -0700

    LOG4J2-2266 - Load PropertySources from any accessible ClassLoader and handle any exceptions
---
 src/changes/changes.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9eba815..c6688b4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set sw=2: -->
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with


[logging-log4j2] 12/12: LOG4J2-913 - Remove unneeded imports. General cleanup

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit a6004c91c834ff488324b0c6bd19017bc2fc70fd
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Sat May 4 22:13:44 2019 -0700

    LOG4J2-913 - Remove unneeded imports. General cleanup
---
 .../log4j/core/config/ConfigurationFactory.java    |  1 -
 .../log4j/core/config/ConfigurationSource.java     |  1 -
 .../config/builder/impl/BuiltConfiguration.java    |  5 ----
 .../config/composite/CompositeConfiguration.java   |  4 ----
 .../log4j/core/config/json/JsonConfiguration.java  |  5 ----
 .../log4j/core/config/xml/XmlConfiguration.java    |  5 ----
 .../core/net/ssl/SslConfigurationFactory.java      | 26 ++++++++++----------
 .../log4j/flume/appender/FlumeAvroManager.java     |  2 --
 .../src/site/markdown/index.md                     | 26 ++++++++++----------
 .../README.md                                      |  7 ++++--
 src/site/markdown/manual/cloud.md                  |  6 ++++-
 src/site/xdoc/manual/configuration.xml.vm          | 28 +++++++++++-----------
 12 files changed, 50 insertions(+), 66 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index 4a68a63..c0f2b23 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -40,7 +40,6 @@ import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.lookup.Interpolator;
 import org.apache.logging.log4j.core.lookup.StrSubstitutor;
 import org.apache.logging.log4j.core.net.UrlConnectionFactory;
-import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.AuthorizationProvider;
 import org.apache.logging.log4j.core.util.BasicAuthorizationProvider;
 import org.apache.logging.log4j.core.util.FileUtils;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 759386f..e3d70b3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -33,7 +33,6 @@ import java.util.Objects;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.net.UrlConnectionFactory;
-import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.Source;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
index 741859c..e45151a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
@@ -24,7 +24,6 @@ import java.util.List;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.builder.api.Component;
@@ -32,11 +31,7 @@ import org.apache.logging.log4j.core.config.plugins.util.PluginManager;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
-import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Patterns;
-import org.apache.logging.log4j.core.util.Source;
-import org.apache.logging.log4j.core.util.Watcher;
-import org.apache.logging.log4j.core.util.WatcherFactory;
 
 /**
  * This is the general version of the Configuration created by the Builder. It may be extended to
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
index 2267639..c4324d0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.core.config.composite;
 
-import java.io.File;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
 import java.util.ArrayList;
@@ -29,18 +28,15 @@ import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
-import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.Patterns;
 import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.WatchManager;
 import org.apache.logging.log4j.core.util.Watcher;
-import org.apache.logging.log4j.core.util.WatcherFactory;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
index c9d7162..c41a032 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
@@ -33,18 +33,13 @@ import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
-import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Patterns;
-import org.apache.logging.log4j.core.util.Source;
-import org.apache.logging.log4j.core.util.Watcher;
-import org.apache.logging.log4j.core.util.WatcherFactory;
 
 /**
  * Creates a Node hierarchy from a JSON file.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
index 0e5fa98..6a6c116 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
@@ -37,20 +37,15 @@ import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
 import org.apache.logging.log4j.core.util.Closer;
-import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.Patterns;
-import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.Throwables;
-import org.apache.logging.log4j.core.util.Watcher;
-import org.apache.logging.log4j.core.util.WatcherFactory;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
index d0a517d..f658ca5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
@@ -28,19 +28,19 @@ public class SslConfigurationFactory {
     private static final Logger LOGGER = StatusLogger.getLogger();
     private static SslConfiguration sslConfiguration = null;
 
-    private static final String trustStorelocation = "log4j2.trustStore.location";
-    private static final String trustStorePassword = "log4j2.trustStore.password";
-    private static final String trustStorePasswordFile = "log4j2.trustStore.passwordFile";
-    private static final String trustStorePasswordEnvVar = "log4j2.trustStore.passwordEnvironmentVariable";
-    private static final String trustStoreKeyStoreType = "log4j2.trustStore.keyStoreType";
-    private static final String trustStoreKeyManagerFactoryAlgorithm = "log4j2.trustStore.keyManagerFactoryAlgorithm";
-    private static final String keyStoreLocation = "log4j2.keyStore.location";
-    private static final String keyStorePassword = "log4j2.keyStore.password";
-    private static final String keyStorePasswordFile = "log4j2.keyStore.passwordFile";
-    private static final String keyStorePasswordEnvVar = "log4j2.keyStore.passwordEnvironmentVariable";
-    private static final String keyStoreType = "log4j2.keyStore.type";
-    private static final String keyStoreKeyManagerFactoryAlgorithm = "log4j2.keyStore.keyManagerFactoryAlgorithm";
-    private static final String verifyHostName = "log4j2.ssl.verifyHostName";
+    private static final String trustStorelocation = "log4j2.trustStoreLocation";
+    private static final String trustStorePassword = "log4j2.trustStorePassword";
+    private static final String trustStorePasswordFile = "log4j2.trustStorePasswordFile";
+    private static final String trustStorePasswordEnvVar = "log4j2.trustStorePasswordEnvironmentVariable";
+    private static final String trustStoreKeyStoreType = "log4j2.trustStoreKeyStoreType";
+    private static final String trustStoreKeyManagerFactoryAlgorithm = "log4j2.trustStoreKeyManagerFactoryAlgorithm";
+    private static final String keyStoreLocation = "log4j2.keyStoreLocation";
+    private static final String keyStorePassword = "log4j2.keyStorePassword";
+    private static final String keyStorePasswordFile = "log4j2.keyStorePasswordFile";
+    private static final String keyStorePasswordEnvVar = "log4j2.keyStorePasswordEnvironmentVariable";
+    private static final String keyStoreType = "log4j2.keyStoreType";
+    private static final String keyStoreKeyManagerFactoryAlgorithm = "log4j2.keyStoreKeyManagerFactoryAlgorithm";
+    private static final String verifyHostName = "log4j2.sslVerifyHostName";
 
     static {
         PropertiesUtil props = PropertiesUtil.getProperties();
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
index d1767e5..a5ef5d5 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.flume.appender;
 
-import java.util.List;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
@@ -25,7 +24,6 @@ import org.apache.flume.api.RpcClient;
 import org.apache.flume.api.RpcClientFactory;
 import org.apache.logging.log4j.core.appender.AppenderLoggingException;
 import org.apache.logging.log4j.core.appender.ManagerFactory;
-import org.apache.logging.log4j.util.Timer;
 
 /**
  * Manager for FlumeAvroAppenders.
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
index a65bd01..bd6dd19 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
@@ -61,19 +61,19 @@ TLS can be enabled by adding the following system properties or defining them in
 
 | Property      | Optional or Default Value | Description   |
 | ------------- |-------|:-------------| 
-| log4j2.trustStore.location  | Optional | The location of the trust store. If not provided the default trust store will be used.| 
-| log4j2.trustStore.password  | Optional | Password needed to access the trust store. |
-| log4j2.trustStore.passwordFile | Optinoal | The location of a file that contains the password for the trust store. |
-| log4j2.trustStore.passwordEnvironmentVariable | Optional | The name of the environment variable that contains the trust store password. |
-| log4j2.trustStore.keyStoreType | Required if keystore location provided | The type of key store.  |
-| log4j2.trustStore.keyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm. |
-| log4j2.keyStore.location | Optional | The location of the key store. If not provided the default key store will be used.|
-| log4j2.keyStore.password | Optional | Password needed to access the key store. | 
-| log4j2.keyStore.passwordFile | Optional | The location of a file that contains the password for the key store. |
-| log4j2.keyStore.passwordEnvironmentVariable | Optional | The name of the environment variable that contains the key store password.|
-| log4j2.keyStore.type | Required if trust store location provided. | The type of key store. |
-| log4j2.keyStore.keyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm.  |
-| log4j2.ssl.verifyHostName | false | true or false |
+| log4j2.trustStoreLocation  | Optional | The location of the trust store. If not provided the default trust store will be used.| 
+| log4j2.trustStorePassword  | Optional | Password needed to access the trust store. |
+| log4j2.trustStorePasswordFile | Optinoal | The location of a file that contains the password for the trust store. |
+| log4j2.trustStorePasswordEnvironmentVariable | Optional | The name of the environment variable that contains the trust store password. |
+| log4j2.trustStoreKeyStoreType | Required if keystore location provided | The type of key store.  |
+| log4j2.trustStoreKeyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm. |
+| log4j2.keyStoreLocation | Optional | The location of the key store. If not provided the default key store will be used.|
+| log4j2.keyStorePassword | Optional | Password needed to access the key store. | 
+| log4j2.keyStorePasswordFile | Optional | The location of a file that contains the password for the key store. |
+| log4j2.keyStorePasswordEnvironmentVariable | Optional | The name of the environment variable that contains the key store password.|
+| log4j2.keyStoreType | Required if trust store location provided. | The type of key store. |
+| log4j2.keyStoreKeyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm.  |
+| log4j2.sslVerifyHostName | false | true or false |
 
 
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
index 3251015..ebe0617 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
@@ -4,7 +4,8 @@ This application uses Spring Boot and reads the logging configuration from the c
 project. The log4j2.xml file is located in the config-repo directory in that project.
 
 This sample packages the application in a docker container that is packaged with rabbit-mq (to allow dynamic updates
-from Spring Cloud Config), fluent-bit (to test as a log forwarder), and Apache Flume (to test as a log forwarder).
+from Spring Cloud Config), fluent-bit (to test as a log forwarder), Apache Flume (to test as a log forwarder), and
+Apache Kafka also as a log forwarder. It also installs Socat, a proxy to allow access to the Docker REST API.
 ###Prerequisites
 Note: This guide assumes you already have docker installed. If you do not you may either use homebrew to install
 it or follow the instructions at https://docs.docker.com/docker-for-mac/install/.
@@ -29,5 +30,7 @@ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-
 
 ###Viewing the logs
 
-Accessing the log files varies depending on the appending being used.     
+Accessing the log files varies depending on the appending being used. When logging to the console "docker logs" may 
+be used. As configured, Flume will write to files in /var/log/flume, fluent-bit to the standard output of its container.
+Kafka output may be viewed using a tool like [Kafka Tool](http://www.kafkatool.com/).      
  
diff --git a/src/site/markdown/manual/cloud.md b/src/site/markdown/manual/cloud.md
index 53d78e2..fdde0f8 100644
--- a/src/site/markdown/manual/cloud.md
+++ b/src/site/markdown/manual/cloud.md
@@ -27,6 +27,10 @@ in Java applications include:
 
 1. Java stack traces are multi-line log messages. The standard docker log driver cannot handle these properly. See 
 [Docker Issue #22920](https://github.com/moby/moby/issues/22920) which was closed with the message "Don't Care".
+Solutions for this are to:
+    a. Use a docker log driver that does support multi-line log message,
+    b. Use a logging format that does not produce multi-line messages,
+    c. Log from Log4j directly to a logging forwarder or aggregator and bypass the docker logging driver.
 1. When logging to stdout in Docker, log events pass through Java's standard output handling which is then directed 
 to the operating system so that the output can be piped into a file. The overhead of all this is measurably slower
 than just writing directly to a file as can be seen by the performance results below where logging 
@@ -213,7 +217,7 @@ Log4j Docker Lookup to add the container information to each log event.
 as the Kafka Appender with syncSend set to true that only return control after the downstream agent 
 acknowledges receipt of the event. Beware that using an Appender that writes each event individually should 
 be kept to a minimum since it is much slower than sending buffered events. 
-1. Logging to files within the container is discouraged. Doing so reuires that a volume be declared in 
+1. Logging to files within the container is discouraged. Doing so requires that a volume be declared in 
 the Docker configuration and that the file be tailed by a log forwarder. However, it performs 
 better than logging to the standard output stream. If logging via TCP is not an option and
 proper multiline handling is required then consider this option.
\ No newline at end of file
diff --git a/src/site/xdoc/manual/configuration.xml.vm b/src/site/xdoc/manual/configuration.xml.vm
index e0291d7..0c7f60d 100644
--- a/src/site/xdoc/manual/configuration.xml.vm
+++ b/src/site/xdoc/manual/configuration.xml.vm
@@ -2387,79 +2387,79 @@ public class AwesomeTest {
           This is equivalent to defining all message patterns using <tt>%m{nolookups}</tt>.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.location "/>log4j2.trustStore.location</td>
+    <td><a name="log4j2.trustStoreLocation "/>log4j2.trustStoreLocation</td>
     <td>LOG4J_TRUST_STORE_LOCATION</td>
     <td></td>
     <td>The location of the trust store. If not provided the default trust store will be used.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.password"/>log4j2.trustStore.password</td>
+    <td><a name="log4j2.trustStorePassword"/>log4j2.trustStorePassword</td>
     <td>LOG4J_TRUST_STORE_PASSWORD</td>
     <td></td>
     <td>Password needed to access the trust store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.passwordFile"/>log4j2.trustStore.passwordFile</td>
+    <td><a name="log4j2.trustStorePasswordFile"/>log4j2.trustStorePasswordFile</td>
     <td>LOG4J_TRUST_STORE_PASSWORD_FILE</td>
     <td></td>
     <td>The location of a file that contains the password for the trust store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.passwordEnvironmentVariable"/>log4j2.trustStore.passwordEnvironmentVariable</td>
+    <td><a name="log4j2.trustStorePasswordEnvironmentVariable"/>log4j2.trustStorePasswordEnvironmentVariable</td>
     <td>LOG4J_TRUST_STORE_PASSWORD_ENVIRONMENT_VARIABLE</td>
     <td></td>
     <td>The name of the environment variable that contains the trust store password.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.type"/>log4j2.trustStore.type</td>
+    <td><a name="log4j2.trustStoreType"/>log4j2.trustStoreType</td>
     <td>LOG4J_TRUST_STORE_TYPE</td>
     <td></td>
     <td>The type of key store used for the trust store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.trustStore.keyManagerFactoryAlgorithm"/>log4j2.trustStore.keyManagerFactoryAlgorithm</td>
+    <td><a name="log4j2.trustStoreKeyManagerFactoryAlgorithm"/>log4j2.trustStoreKeyManagerFactoryAlgorithm</td>
     <td>LOG4J_TRUST_STORE_KEY_MANAGER_FACTORY_ALGORITHM</td>
     <td></td>
     <td>Java cryptographic algorithm.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.location "/>log4j2.keyStore.location </td>
+    <td><a name="log4j2.keyStoreLocation "/>log4j2.keyStoreLocation </td>
     <td>LOG4J_KEY_STORE_LOCATION</td>
     <td></td>
     <td>The location of the key store. If not provided the default key store will be used.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.password"/>log4j2.keyStore.password</td>
+    <td><a name="log4j2.keyStorePassword"/>log4j2.keyStorePassword</td>
     <td>LOG4J_KEY_STORE_PASSWORD</td>
     <td></td>
     <td>Password needed to access the key store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.passwordFile"/>log4j2.keyStore.passwordFile</td>
+    <td><a name="log4j2.keyStorePasswordFile"/>log4j2.keyStorePasswordFile</td>
     <td>LOG4J_KEY_STORE_PASSWORD_FILE</td>
     <td></td>
     <td>The location of a file that contains the password for the key store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.passwordEnvironmentVariable"/>log4j2.keyStore.passwordEnvironmentVariable</td>
+    <td><a name="log4j2.keyStorePasswordEnvironmentVariable"/>log4j2.keyStorePasswordEnvironmentVariable</td>
     <td>LOG4J_KEY_STORE_PASSWORD_ENVIRONMENT_VARIABLE</td>
     <td></td>
     <td>The name of the environment variable that contains the key store password.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.type"/>log4j2.keyStore.type</td>
+    <td><a name="log4j2.keyStoreType"/>log4j2.keyStoreType</td>
     <td>LOG4J_KEY_STORE_TYPE</td>
-    <td></td>
+    <td></td>t
     <td>The type of key store.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.keyStore.keyManagerFactoryAlgorithm"/>log4j2.keyStore.keyManagerFactoryAlgorithm</td>
+    <td><a name="log4j2.keyStoreKeyManagerFactoryAlgorithm"/>log4j2.keyStoreKeyManagerFactoryAlgorithm</td>
     <td>LOG4J_KEY_STORE_KEY_MANAGER_FACTORY_ALGORITHM</td>
     <td></td>
     <td>Java cryptographic algorithm.</td>
   </tr>
   <tr>
-    <td><a name="log4j2.ssl.verifyHostName"/>log4j2.ssl.verifyHostName</td>
+    <td><a name="log4j2.sslVerifyHostName"/>log4j2.sslVerifyHostName</td>
     <td></td>
     <td>false</td>
     <td>true or false if the host name should be verified</td>


[logging-log4j2] 02/12: LOG4J2-1906 - Delay file name resolution closer to when the stream is opened

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit ea4101a9975d654c6729eb50724ae9908467b888
Author: rgoers <ra...@dslextreme.com>
AuthorDate: Tue Jan 29 06:25:10 2019 -0700

    LOG4J2-1906 - Delay file name resolution closer to when the stream is opened
---
 log4j-core/revapi.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/log4j-core/revapi.json b/log4j-core/revapi.json
index 3c12553..01c0e69 100644
--- a/log4j-core/revapi.json
+++ b/log4j-core/revapi.json
@@ -379,4 +379,4 @@
       }
     ]
   }
-]
+]
\ No newline at end of file


[logging-log4j2] 04/12: Prepare for release

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 927322afbc21d7167122060975a8e0229c2fffad
Author: rgoers <ra...@dslextreme.com>
AuthorDate: Sun Feb 3 11:53:34 2019 -0700

    Prepare for release
---
 src/changes/changes.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c6688b4..b4796c3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -29,6 +29,7 @@
          - "update" - Change
          - "remove" - Removed
     -->
+    
     <release version="2.12.0" date="2019-MM-DD" description="GA Release 2.12.0">
       <action issue="LOG4J2-2586" dev="rgoers" type="add">
         TCP Appender should support a host name resolving to multiple IP addresses.


[logging-log4j2] 11/12: More documentation fixes

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit a54d243f543e9484c109acf1cfb887bd7e229306
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Thu Apr 4 21:37:14 2019 -0700

    More documentation fixes
---
 log4j-docker/src/site/markdown/index.md.vm         |  3 +-
 .../src/site/markdown/index.md                     |  2 +-
 .../docker/docker-compose.yml                      |  1 +
 .../src/main/config-repo/log4j2.xml                | 10 +++----
 src/site/markdown/manual/cloud.md                  | 33 +++++++++++++---------
 5 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/log4j-docker/src/site/markdown/index.md.vm b/log4j-docker/src/site/markdown/index.md.vm
index 42ee2cc..e717fb9 100644
--- a/log4j-docker/src/site/markdown/index.md.vm
+++ b/log4j-docker/src/site/markdown/index.md.vm
@@ -28,7 +28,8 @@ $h2 Accessing Docker
 The Log4j Docker support requires access to the Docker REST intrerface. In practical terms this means the
 application either needs access to unix:///var/run/docker.sock through a volume mount (not recommended),
 bind Docker to another host/port or unix socket. or use a proxy application to provide access. The
-Log4j Spring Cload sample application uses a socat proxy to access Docker.
+[Log4j Spring Cloud sample application](https://github.com/apache/logging-log4j2/tree/master/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application)
+uses a socat proxy to access Docker.
 
 $h2 Lookup Attributes
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
index 5530859..a65bd01 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
@@ -18,7 +18,7 @@
 
 # Log4j Spring Cloud Configuration
 
-This module allows logging configuration files managed in be dynamically updated when new versions are available in
+This module allows logging configuration files to be dynamically updated when new versions are available in
 Spring Cloud Configuration. 
 
 ## Overview
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
index 76a0d09..0d76f52 100755
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
@@ -41,6 +41,7 @@ services:
       - "24224:24224"
     volumes:
       - ./init/fluent-bit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
+      - ./target/logs:/var/logs
     networks:
       sample_network:
         aliases:
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
index 1e5eea6..84b9673 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
@@ -3,7 +3,7 @@
 <Configuration status="DEBUG" monitorInterval="0">
   <Appenders>
     <Console name="console" target="SYSTEM_OUT">
-      <JsonLayout properties="true" compact="true" eventEol="true">
+      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
       </JsonLayout>
     </Console>
     <Flume name="flume" ignoreExceptions="false" type="Embedded" compress="false">
@@ -24,7 +24,7 @@
     </Flume>
     <Flume name="avro" ignoreExceptions="false" batchSize="1" compress="false">
       <Agent host="flume" port="5050"/>
-      <JsonLayout properties="true" compact="true" eventEol="true">
+      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
         <KeyValuePair key="containerId" value="\${docker:containerId}"/>
         <KeyValuePair key="containerName" value="\${docker:containerName}"/>
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
@@ -50,7 +50,7 @@
       <Property name="bootstrap.servers">host.docker.internal:9092</Property>
     </Kafka>
     <Socket name="fluent-bit" host="fluent-bit" port="24221">
-      <JsonLayout properties="true" compact="true" eventEol="true">
+      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
         <KeyValuePair key="containerId" value="\${docker:containerId}"/>
         <KeyValuePair key="containerName" value="\${docker:containerName}"/>
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
@@ -58,7 +58,7 @@
     </Socket>
     <RollingFile name="RollingFile" fileName="/var/log/sampleapp/app.log"
                  filePattern="/var/log/sampleapp/archive/app.log.%i">
-      <JsonLayout properties="true" compact="true" eventEol="true">
+      <JsonLayout properties="true" compact="true" eventEol="true" stackTraceAsString="true">
         <KeyValuePair key="containerId" value="\${docker:containerId}"/>
         <KeyValuePair key="containerName" value="\${docker:containerName}"/>
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
@@ -91,7 +91,7 @@
       <AppenderRef ref="console"/>
     </Logger>
     <Root level="DEBUG">
-      <AppenderRef ref="Kafka"/>
+      <AppenderRef ref="console"/>
     </Root>
   </Loggers>
 </Configuration>
\ No newline at end of file
diff --git a/src/site/markdown/manual/cloud.md b/src/site/markdown/manual/cloud.md
index 71a1125..53d78e2 100644
--- a/src/site/markdown/manual/cloud.md
+++ b/src/site/markdown/manual/cloud.md
@@ -20,7 +20,7 @@
 
 ## The Twelve-Factor Application
 
-The Logging Guidelines for [The Twelve-Factor App](https://12factor.net/logs) state the all logs should be routed 
+The Logging Guidelines for [The Twelve-Factor App](https://12factor.net/logs) state that all logs should be routed 
 unbuffered to stdout. Since this is the least common denominator it is guaranteed to work for all applications. Howeever,
 as with any set of general guidelines, choosing the least common denominator approach comes at a cost. Some of the costs
 in Java applications include:
@@ -42,7 +42,7 @@ only when it has placed the event in durable storage, such as what Apache Flume
 
 All the solutions discussed on this page are predicated with the idea that log files cannot permanently
 reside on the file system and that all log events should be routed to one or more log analysis tools that will 
-be used for reporting and alreting. There are many ways to forward and collect events to be sent to the 
+be used for reporting and alerting. There are many ways to forward and collect events to be sent to the 
 log analysis tools. 
 
 Note that any approach that bypasses Docker's logging drivers requires Log4j's 
@@ -94,11 +94,15 @@ host and port be configured on a SocketAppender with an appropriate layout.
 ### Sending Directly to a Log Aggregator via TCP
 
 Similar to sending logs to a forwarder, logs can also be sent to a cluster of aggregators. However,
-setting this up is not as simple. Since, to be highly available, a cluster of aggregators must be used.
+setting this up is not as simple since, to be highly available, a cluster of aggregators must be used.
 However, the SocketAppender currently can only be configured with a single host and port. To allow 
 for failover if the primary aggregator fails the SocketAppender must be enclosed in a 
 [FailoverAppender](appenders.html#FailoverAppender),
-which would also have the secondary aggregator configured.  
+which would also have the secondary aggregator configured. Another option is to have the SocketAppender 
+point to a highly available proxy that can forward to the Log Aggregator.
+
+If the log aggregator used is Apache Flume or Apache Kafka (or similar) the Appenders for these support 
+being configured with a list of hosts and ports so high availability is not an issue. 
 
 ![Aggregator](../images/LoggerAggregator.png "Application Logging to an Aggregator via TCP")
 
@@ -114,7 +118,7 @@ all log events for a specific user or customer to temporarily be logged
 Also, in a micro-services, clustered environment it is quite likely that these changes will need to be propagated
 to multiple servers at the same time. Trying to achieve this via REST calls could be difficult.
   
-Log4j supports dynamic reconfiguration. since the first release Log4j has supported reconfiguration through a file.
+Since its first release Log4j has supported reconfiguration through a file.
 Beginning with Log4j 2.12.0 Log4j also supports accessing the configuration via HTTP(S) and monitoring the file 
 for changes by using the HTTP "If-Modified-Since" header. A patch has also been integrated into Spring Cloud Config
 starting with versions 2.0.3 and 2.1.1 for it to honor the If-Modified-Since header. In addition, the 
@@ -129,7 +133,7 @@ While the standard Spring Boot REST endpoints to update logging will still work
 REST endpoints will be lost if Log4j reconfigures itself do to changes in the logging configuration file.
 
 Further information regarding integration of the log4j-spring-cloud-config-client can be found at 
-[Log4j Spring Cloud Config Client](../log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html)
+[Log4j Spring Cloud Config Client](../log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html).
 
 ## Integration with Docker
 
@@ -140,13 +144,16 @@ provides similar functionality via the [Docker Loookup](lookups.html#DockerLooku
 Log4j's Docker support may also be found at [Log4j-Docker](../log4j-docker/index.html). 
 
 ## Appender Performance
-The numbers in the table below represent how much time was required for the application to call logger.debug
-100,000 times. These numbers only include the time taken to deliver to the specifcly noted endpoint and
-many not include the actual time required before they are availble for viewing. All measurements were
-performed on a MacBook Pro with a 2.9GHz Intel Core I9 processor with 6 physical and 12 logical cores, 
-32GB of 2400 MHz DDR4 RAM, and 1TB of Apple SSD storage. The VM used by Docker was managed by VMWare Fusion 
-and had 4 CPUs and 2 GB of RAM. These number should be used for relative perfomance comparisons as the 
-results on another system may vary considerably. 
+The numbers in the table below represent how much time in seceonds was required for the application to 
+call logger.debug 100,000 times. These numbers only include the time taken to deliver to the specifcly 
+noted endpoint and many not include the actual time required before they are availble for viewing. All 
+measurements were performed on a MacBook Pro with a 2.9GHz Intel Core I9 processor with 6 physical and 12 
+logical cores, 32GB of 2400 MHz DDR4 RAM, and 1TB of Apple SSD storage. The VM used by Docker was managed 
+by VMWare Fusion and had 4 CPUs and 2 GB of RAM. These number should be used for relative perfomance comparisons 
+as the results on another system may vary considerably.
+
+The sample application used can be found under the log4j-spring-cloud-config/log4j-spring-cloud-config-samples
+directory in the Log4j [source repository](https://github.com/apache/logging-log4j2).
 
 | Test                    | 1 Thread | 2 Threads | 4 Threads | 8 Threads |
 |------------------------ |---------:|----------:|----------:|----------:|


[logging-log4j2] 06/12: LOG4J2-913 - Add support for dynamic reconfiguration

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 7a9a466a756a8bd77bc4bc29ee9517c4c098f470
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Wed Jan 30 17:02:50 2019 -0700

    LOG4J2-913 - Add support for dynamic reconfiguration
---
 .../log4j/core/config/AbstractConfiguration.java   | 48 ++++++++++++++--------
 .../logging/log4j/core/config/HttpWatcher.java     |  2 +-
 .../logging/log4j/core/util/WatchEventService.java | 28 +++++++++++++
 .../logging/log4j/core/util/WatchManager.java      | 43 +++++++++++++++++++
 .../apache/logging/log4j/core/util/Watcher.java    |  1 +
 .../log4j-spring-cloud-config-client/pom.xml       |  8 ++++
 .../cloud/config/client/Log4j2EventListener.java   | 45 ++++++++++++++++++++
 .../cloud/config/client/WatchEventManager.java     | 48 ++++++++++++++++++++++
 ...pache.logging.log4j.core.util.WatchEventService |  1 +
 .../src/main/resources/META-INF/spring.factories   |  1 +
 .../src/main/resources/log4j2.component.properties |  0
 log4j-spring-cloud-config/pom.xml                  | 10 +++++
 12 files changed, 216 insertions(+), 19 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index de0d6eb..4a93e02 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -245,27 +245,39 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
 
     protected void initializeWatchers(Reconfigurable reconfigurable, ConfigurationSource configSource,
         int monitorIntervalSeconds) {
-        if ((configSource.getFile() != null || configSource.getURL() != null) && monitorIntervalSeconds > 0) {
-            watchManager.setIntervalSeconds(monitorIntervalSeconds);
-            if (configSource.getFile() != null) {
-                final Source cfgSource = new Source(configSource);
-                final long lastModifeid = configSource.getFile().lastModified();
-                final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(this, reconfigurable,
-                    listeners, lastModifeid);
-                watchManager.watch(cfgSource, watcher);
-            } else if (configSource.getURL() != null) {
-                if (configSource.getLastModified() > 0) {
-                    final Source cfgSource = new Source(configSource);
-                    final Watcher watcher = WatcherFactory.getInstance(pluginPackages)
-                        .newWatcher(cfgSource, this, reconfigurable, listeners, configSource.getLastModified());
-                    watchManager.watch(cfgSource, watcher);
-                } else {
-                    LOGGER.info("{} does not support dynamic reconfiguration", configSource.getURI());
-                }
-            }
+        if (configSource.getFile() != null || configSource.getURL() != null) {
+        	if (monitorIntervalSeconds > 0) {
+				watchManager.setIntervalSeconds(monitorIntervalSeconds);
+				if (configSource.getFile() != null) {
+					final Source cfgSource = new Source(configSource);
+					final long lastModifeid = configSource.getFile().lastModified();
+					final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(this, reconfigurable,
+						listeners, lastModifeid);
+					watchManager.watch(cfgSource, watcher);
+				} else {
+					if (configSource.getURL() != null) {
+						monitorSource(reconfigurable, configSource);
+					}
+				}
+			} else if (watchManager.hasEventListeners() && configSource.getURL() != null && monitorIntervalSeconds >= 0) {
+				monitorSource(reconfigurable, configSource);
+			}
         }
     }
 
+    private void monitorSource(Reconfigurable reconfigurable, ConfigurationSource configSource) {
+		if (configSource.getLastModified() > 0) {
+			final Source cfgSource = new Source(configSource);
+			final Watcher watcher = WatcherFactory.getInstance(pluginPackages)
+				.newWatcher(cfgSource, this, reconfigurable, listeners, configSource.getLastModified());
+			if (watcher != null) {
+				watchManager.watch(cfgSource, watcher);
+			}
+		} else {
+			LOGGER.info("{} does not support dynamic reconfiguration", configSource.getURI());
+		}
+	}
+
 	/**
      * Start the configuration.
      */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index a2d1220..6072168 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -30,7 +30,7 @@ import org.apache.logging.log4j.util.PropertiesUtil;
 /**
  *
  */
-@Plugin(name = "http", category = Watcher.CATEGORY, printObject = true)
+@Plugin(name = "http", category = Watcher.CATEGORY, elementType = Watcher.ELEMENT_TYPE, printObject = true)
 @PluginAliases("https")
 public class HttpWatcher extends AbstractWatcher {
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchEventService.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchEventService.java
new file mode 100644
index 0000000..31021c8
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchEventService.java
@@ -0,0 +1,28 @@
+/*
+ * 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.core.util;
+
+/**
+ *
+ */
+public interface WatchEventService {
+
+	void subscribe(WatchManager manager);
+
+	void unsubscribe(WatchManager manager);
+
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
index 37e0a44..3e37152 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
@@ -17,9 +17,13 @@
 package org.apache.logging.log4j.core.util;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.ServiceLoader;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ScheduledFuture;
@@ -30,6 +34,7 @@ import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.ConfigurationScheduler;
 import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.LoaderUtil;
 
 /**
  * Manages {@link FileWatcher}s.
@@ -44,11 +49,22 @@ public class WatchManager extends AbstractLifeCycle {
     private int intervalSeconds = 0;
     private ScheduledFuture<?> future;
     private final ConfigurationScheduler scheduler;
+    private final List<WatchEventService> eventServiceList;
+    private final UUID id = UuidUtil.getTimeBasedUuid();
 
     public WatchManager(final ConfigurationScheduler scheduler) {
         this.scheduler = scheduler;
+        eventServiceList = getEventServices();
     }
 
+    public UUID getId() {
+    	return this.id;
+	}
+
+	public boolean hasEventListeners() {
+    	return eventServiceList.size() > 0;
+	}
+
     /**
      * Resets all file monitors to their current last modified time. If this manager does not watch any file, nothing
      * happens.
@@ -141,15 +157,22 @@ public class WatchManager extends AbstractLifeCycle {
     @Override
     public void start() {
         super.start();
+
         if (intervalSeconds > 0) {
             future = scheduler.scheduleWithFixedDelay(new WatchRunnable(), intervalSeconds, intervalSeconds,
                     TimeUnit.SECONDS);
         }
+        for (WatchEventService service : eventServiceList) {
+        	service.subscribe(this);
+		}
     }
 
     @Override
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
         setStopping();
+		for (WatchEventService service : eventServiceList) {
+			service.unsubscribe(this);
+		}
         final boolean stopped = stop(future);
         setStopped();
         return stopped;
@@ -179,6 +202,10 @@ public class WatchManager extends AbstractLifeCycle {
         watchers.remove(source);
     }
 
+	public void checkFiles() {
+		new WatchRunnable().run();
+	}
+
     /**
      * Watches the given file.
      *
@@ -248,6 +275,22 @@ public class WatchManager extends AbstractLifeCycle {
         return new Date(millis).toString();
     }
 
+	private List<WatchEventService> getEventServices() {
+    	List<WatchEventService> list = new ArrayList<>();
+		for (final ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
+			try {
+				final ServiceLoader<WatchEventService > serviceLoader =
+					ServiceLoader.load(WatchEventService.class, classLoader);
+				for (final WatchEventService service : serviceLoader) {
+					list.add(service);
+				}
+			} catch (final Throwable ex) {
+				LOGGER.debug("Unable to retrieve WatchEventService from ClassLoader {}", classLoader, ex);
+			}
+		}
+		return list;
+	}
+
     private final class WatchRunnable implements Runnable {
 
         // Use a hard class reference here in case a refactoring changes the class name.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
index 7ae9cd0..c2be48d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
@@ -30,6 +30,7 @@ import org.apache.logging.log4j.core.config.Reconfigurable;
 public interface Watcher {
 
     public static final String CATEGORY = "Watcher";
+    public static final String ELEMENT_TYPE = "watcher";
 
     /**
      * Returns the list of listeners for this configuration.
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
index 8799078..c0a31f7 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -48,6 +48,14 @@
       <artifactId>spring-boot</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context-support</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.hamcrest</groupId>
       <artifactId>hamcrest-all</artifactId>
       <scope>test</scope>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
new file mode 100644
index 0000000..29cdc92
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2EventListener.java
@@ -0,0 +1,45 @@
+/*
+ * 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.spring.cloud.config.client;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.context.environment.EnvironmentChangeEvent;
+import org.springframework.cloud.context.refresh.ContextRefresher;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * Listen for events indicating the remote configuration has changed.
+ */
+@Component
+@ConditionalOnClass(ContextRefresher.class)
+@ConditionalOnBean(ContextRefresher.class)
+@ConditionalOnProperty(value = "spring.cloud.config.watch.enabled")
+public class Log4j2EventListener {
+
+	private static Logger LOGGER = LogManager.getLogger(Log4j2EventListener.class);
+
+	@EventListener(EnvironmentChangeEvent.class)
+	public void handleEnvironmentChangeEvent(EnvironmentChangeEvent event) {
+		LOGGER.debug("Environment change event received");
+		WatchEventManager.publishEvent();
+	}
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/WatchEventManager.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/WatchEventManager.java
new file mode 100644
index 0000000..a49d5f2
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/WatchEventManager.java
@@ -0,0 +1,48 @@
+/*
+ * 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.spring.cloud.config.client;
+
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.logging.log4j.core.util.WatchEventService;
+import org.apache.logging.log4j.core.util.WatchManager;
+
+/**
+ *
+ */
+public class WatchEventManager implements WatchEventService {
+	private static final ConcurrentMap<UUID, WatchManager> watchManagers = new ConcurrentHashMap<>();
+
+	public static void publishEvent() {
+		for (WatchManager manager : watchManagers.values()) {
+			manager.checkFiles();
+		}
+	}
+
+	@Override
+	public void subscribe(WatchManager manager) {
+		watchManagers.put(manager.getId(), manager);
+
+	}
+
+	@Override
+	public void unsubscribe(WatchManager manager) {
+		watchManagers.remove(manager.getId());
+	}
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.WatchEventService b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.WatchEventService
new file mode 100644
index 0000000..701bfd3
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/services/org.apache.logging.log4j.core.util.WatchEventService
@@ -0,0 +1 @@
+org.apache.logging.log4j.spring.cloud.config.client.WatchEventManager
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/spring.factories b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..95a972f
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/META-INF/spring.factories
@@ -0,0 +1 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.apache.logging.log4j.spring.cloud.config.client.Log4j2EventListener
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.component.properties b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.component.properties
new file mode 100644
index 0000000..e69de29
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index a736e86..37282c9 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -53,6 +53,16 @@
       </dependency>
       <dependency>
         <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context-support</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
         <artifactId>spring-web</artifactId>
         <version>${spring.version}</version>
       </dependency>


[logging-log4j2] 05/12: Update changes.xml for next release

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit e22f9eb6ff2a9307b7217199480bacf609fc86f1
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Sun Feb 3 17:06:32 2019 -0700

    Update changes.xml for next release
---
 src/changes/changes.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b4796c3..c6688b4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -29,7 +29,6 @@
          - "update" - Change
          - "remove" - Removed
     -->
-    
     <release version="2.12.0" date="2019-MM-DD" description="GA Release 2.12.0">
       <action issue="LOG4J2-2586" dev="rgoers" type="add">
         TCP Appender should support a host name resolving to multiple IP addresses.


[logging-log4j2] 10/12: LOG4J2-913 - Add more tests and update site

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit e5f4479e25ce76a66b7c4af78bbbd626e2f34ac5
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Sun Mar 31 23:05:33 2019 -0700

    LOG4J2-913 - Add more tests and update site
---
 .../core/appender/mom/kafka/KafkaAppender.java     |   8 +-
 .../core/appender/mom/kafka/KafkaManager.java      |  39 ++++
 .../log4j/core/layout/AbstractJacksonLayout.java   | 142 +++++++++++++-
 log4j-docker/pom.xml                               |  21 ++
 .../logging/log4j/docker/model/Container.java      |   6 +
 .../logging/log4j/docker/model/IPAMConfig.java     |  11 ++
 .../apache/logging/log4j/docker/model/Network.java |  12 +-
 .../log4j/docker/model/NetworkSettings.java        | 177 +++++++++++++++++
 log4j-docker/src/site/markdown/index.md.vm         |  55 ++++++
 log4j-docker/src/site/site.xml                     |  52 +++++
 .../logging/log4j/flume/appender/BatchEvent.java   |   4 +
 .../log4j/flume/appender/FlumeAppender.java        |   1 -
 .../log4j/flume/appender/FlumeAvroManager.java     |  42 ++--
 log4j-samples/log4j-samples-flume-embedded/pom.xml |   1 +
 log4j-samples/log4j-samples-flume-remote/pom.xml   |   1 +
 .../log4j-spring-cloud-config-client/pom.xml       |   4 +-
 .../src/site/markdown/index.md                     |  88 +++++++++
 .../src/site/site.xml                              |  52 +++++
 .../README.md                                      |  74 +++----
 .../docker/app-compose.yml                         |  21 ++
 .../docker/docker-compose.yml                      |   1 +
 .../pom.xml                                        |  16 ++
 .../pom.xml                                        |  20 +-
 .../src/main/config-repo/log4j2.xml                |  53 +++++-
 .../src/main/resources/log4j2.xml                  |   2 +-
 log4j-spring-cloud-config/pom.xml                  |   1 +
 .../src/site/markdown/index.md                     |  21 ++
 log4j-spring-cloud-config/src/site/site.xml        |  52 +++++
 src/site/markdown/index.md.vm                      |   6 +
 src/site/markdown/manual/cloud.md                  | 212 +++++++++++++++++++++
 src/site/resources/images/DockerFluentd.drawio     |   1 +
 src/site/resources/images/DockerFluentd.png        | Bin 0 -> 16444 bytes
 .../images/DockerFluentdAggregator.drawio          |   1 +
 .../resources/images/DockerFluentdAggregator.png   | Bin 0 -> 15394 bytes
 src/site/resources/images/DockerLogFile.drawio     |   1 +
 src/site/resources/images/DockerLogFile.png        | Bin 0 -> 14674 bytes
 src/site/resources/images/DockerStdout.drawio      |   1 +
 src/site/resources/images/DockerStdout.png         | Bin 0 -> 19551 bytes
 src/site/resources/images/DockerTCP.drawio         |   1 +
 src/site/resources/images/DockerTCP.png            | Bin 0 -> 11895 bytes
 src/site/resources/images/LoggerAggregator.drawio  |   1 +
 src/site/resources/images/LoggerAggregator.png     | Bin 0 -> 11342 bytes
 src/site/site.xml                                  |   4 +
 src/site/xdoc/manual/configuration.xml.vm          |  78 ++++++++
 src/site/xdoc/manual/lookups.xml                   |  25 +++
 src/site/xdoc/runtime-dependencies.xml             |  74 ++++---
 46 files changed, 1265 insertions(+), 117 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
index ef4d656..73d95a8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaAppender.java
@@ -67,8 +67,8 @@ public final class KafkaAppender extends AbstractAppender {
                 AbstractLifeCycle.LOGGER.error("No layout provided for KafkaAppender");
                 return null;
             }
-            final KafkaManager kafkaManager = new KafkaManager(getConfiguration().getLoggerContext(), getName(), topic,
-                    syncSend, getPropertyArray(), key);
+            final KafkaManager kafkaManager = KafkaManager.getManager(getConfiguration().getLoggerContext(),
+                getName(), topic, syncSend, getPropertyArray(), key);
             return new KafkaAppender(getName(), layout, getFilter(), isIgnoreExceptions(), kafkaManager,
                     getPropertyArray());
         }
@@ -108,8 +108,8 @@ public final class KafkaAppender extends AbstractAppender {
             AbstractLifeCycle.LOGGER.error("No layout provided for KafkaAppender");
             return null;
         }
-        final KafkaManager kafkaManager =
-                new KafkaManager(configuration.getLoggerContext(), name, topic, true, properties, key);
+        final KafkaManager kafkaManager = KafkaManager.getManager(configuration.getLoggerContext(), name, topic,
+            true, properties, key);
         return new KafkaAppender(name, layout, filter, ignoreExceptions, kafkaManager, null);
     }
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
index 9af11cd..8db4204 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/kafka/KafkaManager.java
@@ -31,6 +31,7 @@ import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.kafka.clients.producer.RecordMetadata;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.appender.AbstractManager;
+import org.apache.logging.log4j.core.appender.ManagerFactory;
 import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.core.util.Log4jThread;
 
@@ -50,7 +51,11 @@ public class KafkaManager extends AbstractManager {
     private final String topic;
     private final String key;
     private final boolean syncSend;
+    private static final KafkaManagerFactory factory = new KafkaManagerFactory();
 
+    /*
+     * The Constructor should have been declared private as all Managers are create by the internal factory;
+     */
     public KafkaManager(final LoggerContext loggerContext, final String name, final String topic, final boolean syncSend,
                         final Property[] properties, final String key) {
         super(loggerContext, name);
@@ -135,4 +140,38 @@ public class KafkaManager extends AbstractManager {
         return topic;
     }
 
+    public static KafkaManager getManager(final LoggerContext loggerContext, final String name, final String topic,
+        final boolean syncSend, final Property[] properties, final String key) {
+        StringBuilder sb = new StringBuilder(name);
+        for (Property prop: properties) {
+            sb.append(" ").append(prop.getName()).append("=").append(prop.getValue());
+        }
+        return getManager(sb.toString(), factory, new FactoryData(loggerContext, topic, syncSend, properties, key));
+    }
+
+    private static class FactoryData {
+        private final LoggerContext loggerContext;
+        private final String topic;
+        private final boolean syncSend;
+        private final Property[] properties;
+        private final String key;
+
+        public FactoryData(final LoggerContext loggerContext, final String topic, final boolean syncSend,
+            final Property[] properties, final String key) {
+            this.loggerContext = loggerContext;
+            this.topic = topic;
+            this.syncSend = syncSend;
+            this.properties = properties;
+            this.key = key;
+        }
+
+    }
+
+    private static class KafkaManagerFactory implements ManagerFactory<KafkaManager, FactoryData> {
+        @Override
+        public KafkaManager createManager(String name, FactoryData data) {
+            return new KafkaManager(data.loggerContext, name, data.topic, data.syncSend, data.properties, data.key);
+        }
+    }
+
 }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
index 985ef7f..bae404c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
@@ -22,19 +22,25 @@ import java.nio.charset.Charset;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
-import org.apache.logging.log4j.core.impl.Log4jLogEvent;
+import org.apache.logging.log4j.core.impl.ThrowableProxy;
 import org.apache.logging.log4j.core.jackson.XmlConstants;
 import org.apache.logging.log4j.core.lookup.StrSubstitutor;
+import org.apache.logging.log4j.core.time.Instant;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.core.util.StringBuilderWriter;
-import org.apache.logging.log4j.message.ReusableMessage;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.Strings;
 
 import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonRootName;
 import com.fasterxml.jackson.annotation.JsonUnwrapped;
 import com.fasterxml.jackson.core.JsonGenerationException;
@@ -274,19 +280,15 @@ abstract class AbstractJacksonLayout extends AbstractStringLayout {
         }
     }
 
-    private static LogEvent convertMutableToLog4jEvent(final LogEvent event) {
-        // TODO Jackson-based layouts have certain filters set up for Log4jLogEvent.
-        // TODO Need to set up the same filters for MutableLogEvent but don't know how...
-        // This is a workaround.
-        return event instanceof ReusableMessage ? Log4jLogEvent.createMemento(event) : event;
-    }
-
     protected Object wrapLogEvent(final LogEvent event) {
         if (additionalFields.length > 0) {
             // Construct map for serialization - note that we are intentionally using original LogEvent
             final Map<String, String> additionalFieldsMap = resolveAdditionalFields(event);
             // This class combines LogEvent with AdditionalFields during serialization
             return new LogEventWithAdditionalFields(event, additionalFieldsMap);
+        } else if (event instanceof Message) {
+            // If the LogEvent implements the Messagee interface Jackson will not treat is as a LogEvent.
+            return new ReadOnlyLogEventWrapper(event);
         } else {
             // No additional fields, return original object
             return event;
@@ -314,7 +316,7 @@ abstract class AbstractJacksonLayout extends AbstractStringLayout {
 
     public void toSerializable(final LogEvent event, final Writer writer)
             throws JsonGenerationException, JsonMappingException, IOException {
-        objectWriter.writeValue(writer, wrapLogEvent(convertMutableToLog4jEvent(event)));
+        objectWriter.writeValue(writer, wrapLogEvent(event));
         writer.write(eol);
         if (includeNullDelimiter) {
             writer.write('\0');
@@ -358,4 +360,124 @@ abstract class AbstractJacksonLayout extends AbstractStringLayout {
             this.valueNeedsLookup = AbstractJacksonLayout.valueNeedsLookup(this.value);
         }
     }
+
+    private static class ReadOnlyLogEventWrapper implements LogEvent {
+
+        @JsonIgnore
+        private final LogEvent event;
+
+        public ReadOnlyLogEventWrapper(LogEvent event) {
+            this.event = event;
+        }
+
+        @Override
+        public LogEvent toImmutable() {
+            return event.toImmutable();
+        }
+
+        @Override
+        public Map<String, String> getContextMap() {
+            return event.getContextMap();
+        }
+
+        @Override
+        public ReadOnlyStringMap getContextData() {
+            return event.getContextData();
+        }
+
+        @Override
+        public ThreadContext.ContextStack getContextStack() {
+            return event.getContextStack();
+        }
+
+        @Override
+        public String getLoggerFqcn() {
+            return event.getLoggerFqcn();
+        }
+
+        @Override
+        public Level getLevel() {
+            return event.getLevel();
+        }
+
+        @Override
+        public String getLoggerName() {
+            return event.getLoggerName();
+        }
+
+        @Override
+        public Marker getMarker() {
+            return event.getMarker();
+        }
+
+        @Override
+        public Message getMessage() {
+            return event.getMessage();
+        }
+
+        @Override
+        public long getTimeMillis() {
+            return event.getTimeMillis();
+        }
+
+        @Override
+        public Instant getInstant() {
+            return event.getInstant();
+        }
+
+        @Override
+        public StackTraceElement getSource() {
+            return event.getSource();
+        }
+
+        @Override
+        public String getThreadName() {
+            return event.getThreadName();
+        }
+
+        @Override
+        public long getThreadId() {
+            return event.getThreadId();
+        }
+
+        @Override
+        public int getThreadPriority() {
+            return event.getThreadPriority();
+        }
+
+        @Override
+        public Throwable getThrown() {
+            return event.getThrown();
+        }
+
+        @Override
+        public ThrowableProxy getThrownProxy() {
+            return event.getThrownProxy();
+        }
+
+        @Override
+        public boolean isEndOfBatch() {
+            return event.isEndOfBatch();
+        }
+
+        @Override
+        public boolean isIncludeLocation() {
+            return event.isIncludeLocation();
+        }
+
+        @Override
+        public void setEndOfBatch(boolean endOfBatch) {
+
+        }
+
+        @Override
+        public void setIncludeLocation(boolean locationRequired) {
+
+        }
+
+        @Override
+        public long getNanoTime() {
+            return event.getNanoTime();
+        }
+    }
 }
diff --git a/log4j-docker/pom.xml b/log4j-docker/pom.xml
index f4eeea2..74d7090 100644
--- a/log4j-docker/pom.xml
+++ b/log4j-docker/pom.xml
@@ -31,6 +31,8 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <docLabel>Log4j Docker Library Documentation</docLabel>
     <projectDir>/docker</projectDir>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
     <module.name>org.apache.logging.log4j.docker</module.name>
   </properties>
   <dependencies>
@@ -63,6 +65,25 @@
   </dependencies>
   <build>
     <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-toolchains-plugin</artifactId>
+        <version>1.1</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>toolchain</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <toolchains>
+            <jdk>
+              <version>[8, )</version>
+            </jdk>
+          </toolchains>
+        </configuration>
+      </plugin>
       <!-- Include the standard NOTICE and LICENSE -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
index cb8be45..aee7c51 100644
--- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
@@ -31,6 +31,12 @@ public class Container {
     @JsonProperty("Names")
     private List<String> names;
 
+    @JsonProperty("Path")
+    private String path;
+
+    @JsonProperty("Args")
+    private String[] args;
+
     @JsonProperty("Image")
     private String image;
 
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
index acc3eeb..b17ad92 100644
--- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
@@ -32,6 +32,9 @@ public class IPAMConfig {
     @JsonProperty("Gateway")
     private String gateway;
 
+    @JsonProperty("IPv4Address")
+    private String ipv4Address;
+
     public String getSubnet() {
         return subnet;
     }
@@ -55,4 +58,12 @@ public class IPAMConfig {
     public void setGateway(String gateway) {
         this.gateway = gateway;
     }
+
+    public String getIpv4Address() {
+        return ipv4Address;
+    }
+
+    public void setIpv4Address(String ipv4Address) {
+        this.ipv4Address = ipv4Address;
+    }
 }
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
index c542252..5e0674a 100644
--- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
@@ -24,13 +24,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 public class Network {
 
     @JsonProperty("IPAMConfig")
-    private String ipamConfig;
+    private IPAMConfig ipamConfig;
 
     @JsonProperty("Links")
     private String links;
 
     @JsonProperty("Aliases")
-    private String aliases;
+    private String[] aliases;
 
     @JsonProperty("NetworkID")
     private String networkId;
@@ -62,11 +62,11 @@ public class Network {
     @JsonProperty("DriverOpts")
     private String driverOpts;
 
-    public String getIpamConfig() {
+    public IPAMConfig getIpamConfig() {
         return ipamConfig;
     }
 
-    public void setIpamConfig(String ipamConfig) {
+    public void setIpamConfig(IPAMConfig ipamConfig) {
         this.ipamConfig = ipamConfig;
     }
 
@@ -78,11 +78,11 @@ public class Network {
         this.links = links;
     }
 
-    public String getAliases() {
+    public String[] getAliases() {
         return aliases;
     }
 
-    public void setAliases(String aliases) {
+    public void setAliases(String[] aliases) {
         this.aliases = aliases;
     }
 
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
index 7dfaa68..a1835d6 100644
--- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
@@ -28,6 +28,55 @@ public class NetworkSettings {
     @JsonProperty("Networks")
     private Map<String, Network> networks;
 
+    @JsonProperty("Bridge")
+    private String bridge;
+
+    @JsonProperty("SandboxID")
+    private String sandboxId;
+
+    @JsonProperty("HairpinMode")
+    private boolean hairpinMode;
+
+    @JsonProperty("LinkLocalIPv6Address")
+    private String linkLocalIPv6Address;
+
+    @JsonProperty("LinkLocalIPv6PrefixLen")
+    private int linkLocalIPv6PrefixLen;
+
+    @JsonProperty("Ports")
+    private Map<String, String> ports;
+
+    @JsonProperty("SandboxKey")
+    private String sandboxKey;
+
+    @JsonProperty("SecondaryIPAddresses")
+    private String secondaryIPaddresses;
+
+    @JsonProperty("EndpointID")
+    private String endpointId;
+
+    @JsonProperty("Gateway")
+    private String gateway;
+
+    @JsonProperty("GlobalIPv6Address")
+    private String globalIPv6Address;
+
+    @JsonProperty("GlobalIPv6PrefixLen")
+    private int globalIPv6PrefixLen;
+
+    @JsonProperty("IPAddress")
+    private String ipAddress;
+
+    @JsonProperty("IPPrefixLen")
+    private int ipPrefixLen;
+
+    @JsonProperty("IPv6Gateway")
+    private String ipv6Gateway;
+
+    @JsonProperty("MacAddress")
+    private String macAddress;
+
+
     public Map<String, Network> getNetworks() {
         return networks;
     }
@@ -35,4 +84,132 @@ public class NetworkSettings {
     public void setNetworks(Map<String, Network> networks) {
         this.networks = networks;
     }
+
+    public String getBridge() {
+        return bridge;
+    }
+
+    public void setBridge(String bridge) {
+        this.bridge = bridge;
+    }
+
+    public String getSandboxId() {
+        return sandboxId;
+    }
+
+    public void setSandboxId(String sandboxId) {
+        this.sandboxId = sandboxId;
+    }
+
+    public boolean isHairpinMode() {
+        return hairpinMode;
+    }
+
+    public void setHairpinMode(boolean hairpinMode) {
+        this.hairpinMode = hairpinMode;
+    }
+
+    public String getLinkLocalIPv6Address() {
+        return linkLocalIPv6Address;
+    }
+
+    public void setLinkLocalIPv6Address(String linkLocalIPv6Address) {
+        this.linkLocalIPv6Address = linkLocalIPv6Address;
+    }
+
+    public int getLinkLocalIPv6PrefixLen() {
+        return linkLocalIPv6PrefixLen;
+    }
+
+    public void setLinkLocalIPv6PrefixLen(int linkLocalIPv6PrefixLen) {
+        this.linkLocalIPv6PrefixLen = linkLocalIPv6PrefixLen;
+    }
+
+    public Map<String, String> getPorts() {
+        return ports;
+    }
+
+    public void setPorts(Map<String, String> ports) {
+        this.ports = ports;
+    }
+
+    public String getSandboxKey() {
+        return sandboxKey;
+    }
+
+    public void setSandboxKey(String sandboxKey) {
+        this.sandboxKey = sandboxKey;
+    }
+
+    public String getSecondaryIPaddresses() {
+        return secondaryIPaddresses;
+    }
+
+    public void setSecondaryIPaddresses(String secondaryIPaddresses) {
+        this.secondaryIPaddresses = secondaryIPaddresses;
+    }
+
+    public String getEndpointId() {
+        return endpointId;
+    }
+
+    public void setEndpointId(String endpointId) {
+        this.endpointId = endpointId;
+    }
+
+    public String getGateway() {
+        return gateway;
+    }
+
+    public void setGateway(String gateway) {
+        this.gateway = gateway;
+    }
+
+    public String getGlobalIPv6Address() {
+        return globalIPv6Address;
+    }
+
+    public void setGlobalIPv6Address(String globalIPv6Address) {
+        this.globalIPv6Address = globalIPv6Address;
+    }
+
+    public int getGlobalIPv6PrefixLen() {
+        return globalIPv6PrefixLen;
+    }
+
+    public void setGlobalIPv6PrefixLen(int globalIPv6PrefixLen) {
+        this.globalIPv6PrefixLen = globalIPv6PrefixLen;
+    }
+
+    public String getIpAddress() {
+        return ipAddress;
+    }
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+    public int getIpPrefixLen() {
+        return ipPrefixLen;
+    }
+
+    public void setIpPrefixLen(int ipPrefixLen) {
+        this.ipPrefixLen = ipPrefixLen;
+    }
+
+    public String getIpv6Gateway() {
+        return ipv6Gateway;
+    }
+
+    public void setIpv6Gateway(String ipv6Gateway) {
+        this.ipv6Gateway = ipv6Gateway;
+    }
+
+    public String getMacAddress() {
+        return macAddress;
+    }
+
+    public void setMacAddress(String macAddress) {
+        this.macAddress = macAddress;
+    }
 }
diff --git a/log4j-docker/src/site/markdown/index.md.vm b/log4j-docker/src/site/markdown/index.md.vm
new file mode 100644
index 0000000..42ee2cc
--- /dev/null
+++ b/log4j-docker/src/site/markdown/index.md.vm
@@ -0,0 +1,55 @@
+<!-- vim: set syn=markdown : -->
+<!--
+    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.
+-->
+#set($dollar = '$')
+#set($h1='#')
+#set($h2='##')
+
+$h1 Log4j Docker Support
+
+Log4j supports Docker by providing a Lookup to retrieve container information.
+
+$h2 Accessing Docker
+
+The Log4j Docker support requires access to the Docker REST intrerface. In practical terms this means the
+application either needs access to unix:///var/run/docker.sock through a volume mount (not recommended),
+bind Docker to another host/port or unix socket. or use a proxy application to provide access. The
+Log4j Spring Cload sample application uses a socat proxy to access Docker.
+
+$h2 Lookup Attributes
+
+Log4j Docker provides access to the following container attributes:
+
+* containerId - The full id assigned to the container.
+* containerName - The name assigned to the container.
+* imageId - The id assigned to the image.
+* imageName - The name assigned to the image.
+* shortContainerId - The first 12 characters of the container id.
+* shortImageId - The first 12 characters of the image id.
+
+#set( $D = '${' )
+#set( $container = 'docker:containerId}')
+Attributes may be accessed by adding
+```
+$D$container
+```
+to the configuration. Note that docker variables are only resolved once during logging initializaton so they
+shouldn't be referenced with more than one '$' character.
+
+$h2 Requirements
+Log4j Docker requires Log4j Core, Log4j API and a minimum of Java 8.
+For more information, see [Runtime Dependencies](../runtime-dependencies.html).
diff --git a/log4j-docker/src/site/site.xml b/log4j-docker/src/site/site.xml
new file mode 100644
index 0000000..7322f3b
--- /dev/null
+++ b/log4j-docker/src/site/site.xml
@@ -0,0 +1,52 @@
+<!--
+ 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.
+
+-->
+<project name="Log4j Docker Support"
+         xmlns="http://maven.apache.org/DECORATION/1.4.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
+  <body>
+    <links>
+      <item name="Apache" href="http://www.apache.org/" />
+      <item name="Logging Services" href="http://logging.apache.org/"/>
+      <item name="Log4j" href="../index.html"/>
+    </links>
+
+    <!-- Component-specific reports -->
+    <menu ref="reports"/>
+
+	<!-- Overall Project Info -->
+    <menu name="Log4j Project Information" img="icon-info-sign">
+      <item name="Dependencies" href="../dependencies.html" />
+      <item name="Dependency Convergence" href="../dependency-convergence.html" />
+      <item name="Dependency Management" href="../dependency-management.html" />
+      <item name="Project Team" href="../team-list.html" />
+      <item name="Mailing Lists" href="../mail-lists.html" />
+      <item name="Issue Tracking" href="../issue-tracking.html" />
+      <item name="Project License" href="../license.html" />
+      <item name="Source Repository" href="../source-repository.html" />
+      <item name="Project Summary" href="../project-summary.html" />
+    </menu>
+
+    <menu name="Log4j Project Reports" img="icon-cog">
+      <item name="Changes Report" href="../changes-report.html" />
+      <item name="JIRA Report" href="../jira-report.html" />
+      <item name="Surefire Report" href="../surefire-report.html" />
+      <item name="RAT Report" href="../rat-report.html" />
+    </menu>
+  </body>
+</project>
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java
index 41af4fa..9a6f86d 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/BatchEvent.java
@@ -35,4 +35,8 @@ public class BatchEvent {
     public List<Event> getEvents() {
         return events;
     }
+
+    public int size() {
+        return events.size();
+    }
 }
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
index 210aadd..d99cbf7 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.flume.appender;
 import java.io.Serializable;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
index c1dd288..d1767e5 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAvroManager.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.flume.appender;
 
+import java.util.List;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
@@ -24,6 +25,7 @@ import org.apache.flume.api.RpcClient;
 import org.apache.flume.api.RpcClientFactory;
 import org.apache.logging.log4j.core.appender.AppenderLoggingException;
 import org.apache.logging.log4j.core.appender.ManagerFactory;
+import org.apache.logging.log4j.util.Timer;
 
 /**
  * Manager for FlumeAvroAppenders.
@@ -50,7 +52,7 @@ public class FlumeAvroManager extends AbstractFlumeManager {
 
     private final int current = 0;
 
-    private RpcClient rpcClient = null;
+    private volatile RpcClient rpcClient = null;
 
     private BatchEvent batchEvent = new BatchEvent();
     private long nextSend = 0;
@@ -97,9 +99,9 @@ public class FlumeAvroManager extends AbstractFlumeManager {
 
         if (batchSize <= 0) {
             batchSize = 1;
-        }
-
-        final StringBuilder sb = new StringBuilder("FlumeAvro[");
+        };
+        final StringBuilder sb = new StringBuilder(name);
+        sb.append(" FlumeAvro[");
         boolean first = true;
         for (final Agent agent : agents) {
             if (!first) {
@@ -149,9 +151,13 @@ public class FlumeAvroManager extends AbstractFlumeManager {
         return delayMillis;
     }
 
-    public synchronized void send(final BatchEvent events) {
+    public void send(final BatchEvent events) {
         if (rpcClient == null) {
-            rpcClient = connect(agents, retries, connectTimeoutMillis, requestTimeoutMillis);
+            synchronized (this) {
+                if (rpcClient == null) {
+                    rpcClient = connect(agents, retries, connectTimeoutMillis, requestTimeoutMillis);
+                }
+            }
         }
 
         if (rpcClient != null) {
@@ -175,7 +181,7 @@ public class FlumeAvroManager extends AbstractFlumeManager {
     }
 
     @Override
-    public synchronized void send(final Event event)  {
+    public void send(final Event event)  {
         if (batchSize == 1) {
             if (rpcClient == null) {
                 rpcClient = connect(agents, retries, connectTimeoutMillis, requestTimeoutMillis);
@@ -199,14 +205,22 @@ public class FlumeAvroManager extends AbstractFlumeManager {
                 throw new AppenderLoggingException("No Flume agents are available");
             }
         } else {
-            batchEvent.addEvent(event);
-            final int eventCount = batchEvent.getEvents().size();
-            if (eventCount == 1) {
-                nextSend = System.nanoTime() + delayNanos;
+            int eventCount;
+            BatchEvent batch = null;
+            synchronized(batchEvent) {
+                batchEvent.addEvent(event);
+                eventCount = batchEvent.size();
+                long now = System.nanoTime();
+                if (eventCount == 1) {
+                    nextSend = now + delayNanos;
+                }
+                if (eventCount >= batchSize || now >= nextSend) {
+                    batch = batchEvent;
+                    batchEvent = new BatchEvent();
+                }
             }
-            if (eventCount >= batchSize || System.nanoTime() >= nextSend) {
-                send(batchEvent);
-                batchEvent = new BatchEvent();
+            if (batch != null) {
+                send(batch);
             }
         }
     }
diff --git a/log4j-samples/log4j-samples-flume-embedded/pom.xml b/log4j-samples/log4j-samples-flume-embedded/pom.xml
index 43982a1..c1895b3 100644
--- a/log4j-samples/log4j-samples-flume-embedded/pom.xml
+++ b/log4j-samples/log4j-samples-flume-embedded/pom.xml
@@ -28,6 +28,7 @@
   <url>http://maven.apache.org</url>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <deploy.plugin.version>2.8.2</deploy.plugin.version>
   </properties>
   <dependencies>
     <dependency>
diff --git a/log4j-samples/log4j-samples-flume-remote/pom.xml b/log4j-samples/log4j-samples-flume-remote/pom.xml
index 8f33337..228bcec 100644
--- a/log4j-samples/log4j-samples-flume-remote/pom.xml
+++ b/log4j-samples/log4j-samples-flume-remote/pom.xml
@@ -28,6 +28,7 @@
   <url>http://maven.apache.org</url>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <deploy.plugin.version>2.8.2</deploy.plugin.version>
   </properties>
   <dependencies>
     <dependency>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
index 6ab556b..1317ced 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -26,9 +26,9 @@
   <artifactId>log4j-spring-cloud-config-client</artifactId>
   <packaging>jar</packaging>
   <name>Apache Log4j Spring Cloud Config Client Support</name>
-  <description></description>
+  <description>Apache Log4j Spring Cloud Config Client Support</description>
   <properties>
-    <log4jParentDir>${basedir}/..</log4jParentDir>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <docLabel>Log4j Spring Cloud Config Client Documentation</docLabel>
     <projectDir>/log4j-spring-cloud-config-client</projectDir>
     <module.name>org.apache.logging.log4j.spring.cloud.config.client</module.name>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
new file mode 100644
index 0000000..5530859
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/markdown/index.md
@@ -0,0 +1,88 @@
+<!-- vim: set syn=markdown : -->
+<!--
+    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.
+-->
+
+# Log4j Spring Cloud Configuration
+
+This module allows logging configuration files managed in be dynamically updated when new versions are available in
+Spring Cloud Configuration. 
+
+## Overview
+
+Spring Boot applications initialize logging 3 times.
+1. SpringApplication declares a Logger. This Logger will be initialized using Log4j's "normal" mechanisms. Thus 
+a system property named log4j2.configurationFile will be checked to see if a specific configuration file has been
+provided, otherwise it will search for a configuration file on the classpath. The property may also be declare 
+in log4j2.component.properties. 
+
+## Usage
+
+Log4j configuration files that specify a monitor interval of greater than zero will use polling to determine
+whether the configuration has been updated. If the monitor interval is zero then Log4j will listen for notifications
+from Spring Cloud Config and will check for configuration changes each time an event is generated. If the 
+monitor interval is less than zero Log4j will not check for changes to the logging configuration.
+
+When referencing a configuration located in Spring Cloud Config the configuration should be referenced similar to
+
+```
+log4j.configurationFile=http://host.docker.internal:8888/ConfigService/sampleapp/default/master/log4j2.xml
+```
+When running in a docker container host.docker.internal may be used as the domain name to access an application
+running on the same hose outside of the docker container. Note that in accordance with Spring Cloud Config
+practices but the application, profile, and label should be specified in the url.
+
+The Spring Cloud Config support also allows connections using TLS and/or basic authentication. When using basic 
+authentication the userid and password may be specified as system properties or in log4j2.component.properties as
+
+```
+log4j2.configurationUserName=guest
+log4j2.configurationPassword=guest
+```
+Note that Log4j currently does not support encrypting the password. 
+
+If more extensive authentication is required an ```AuthorizationProvider``` can be implemented and defined in
+the log4j2.authorizationProvider system property or in log4j2.component.properties.
+
+TLS can be enabled by adding the following system properties or defining them in log4j2.component.properties
+
+| Property      | Optional or Default Value | Description   |
+| ------------- |-------|:-------------| 
+| log4j2.trustStore.location  | Optional | The location of the trust store. If not provided the default trust store will be used.| 
+| log4j2.trustStore.password  | Optional | Password needed to access the trust store. |
+| log4j2.trustStore.passwordFile | Optinoal | The location of a file that contains the password for the trust store. |
+| log4j2.trustStore.passwordEnvironmentVariable | Optional | The name of the environment variable that contains the trust store password. |
+| log4j2.trustStore.keyStoreType | Required if keystore location provided | The type of key store.  |
+| log4j2.trustStore.keyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm. |
+| log4j2.keyStore.location | Optional | The location of the key store. If not provided the default key store will be used.|
+| log4j2.keyStore.password | Optional | Password needed to access the key store. | 
+| log4j2.keyStore.passwordFile | Optional | The location of a file that contains the password for the key store. |
+| log4j2.keyStore.passwordEnvironmentVariable | Optional | The name of the environment variable that contains the key store password.|
+| log4j2.keyStore.type | Required if trust store location provided. | The type of key store. |
+| log4j2.keyStore.keyManagerFactoryAlgorithm | Optional | Java cryptographic algorithm.  |
+| log4j2.ssl.verifyHostName | false | true or false |
+
+
+
+## Requirements
+
+The Log4j 2 Spring Cloud Configuration integration has a dependency on Log4j 2 API, Log4j 2 Core, and 
+Spring Cloud Configuration versions 2.0.3.RELEASE or 2.1.1.RELEASE or later versions it either release series.
+For more information, see [Runtime Dependencies](../../runtime-dependencies.html).
+
+
+
+
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/site.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/site.xml
new file mode 100644
index 0000000..5abfffd
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/site/site.xml
@@ -0,0 +1,52 @@
+<!--
+ 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.
+
+-->
+<project name="Log4j Spring Cloud Config Integration"
+         xmlns="http://maven.apache.org/DECORATION/1.4.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
+  <body>
+    <links>
+      <item name="Apache" href="http://www.apache.org/" />
+      <item name="Logging Services" href="http://logging.apache.org/"/>
+      <item name="Log4j" href="../index.html"/>
+    </links>
+
+    <!-- Component-specific reports -->
+    <menu ref="reports"/>
+
+	<!-- Overall Project Info -->
+    <menu name="Log4j Project Information" img="icon-info-sign">
+      <item name="Dependencies" href="../dependencies.html" />
+      <item name="Dependency Convergence" href="../dependency-convergence.html" />
+      <item name="Dependency Management" href="../dependency-management.html" />
+      <item name="Project Team" href="../team-list.html" />
+      <item name="Mailing Lists" href="../mail-lists.html" />
+      <item name="Issue Tracking" href="../issue-tracking.html" />
+      <item name="Project License" href="../license.html" />
+      <item name="Source Repository" href="../source-repository.html" />
+      <item name="Project Summary" href="../project-summary.html" />
+    </menu>
+
+    <menu name="Log4j Project Reports" img="icon-cog">
+      <item name="Changes Report" href="../changes-report.html" />
+      <item name="JIRA Report" href="../jira-report.html" />
+      <item name="Surefire Report" href="../surefire-report.html" />
+      <item name="RAT Report" href="../rat-report.html" />
+    </menu>
+  </body>
+</project>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
index 93448e3..3251015 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/README.md
@@ -1,53 +1,33 @@
-#Local Development
-###Prerequisites
-Note: This guide uses Homebrew (package manage for macOS). It is not necessary to use Homebrew, but it does
-simplify the installation process.
-* Install Homebrew: `/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`
-    * If you already have Homebrew installed, make sure it is updated: `brew update`
-* Add the cask-versions tap for Homebrew: `brew tap homebrew/cask-versions`
-* Install Docker: `brew cask install docker`
-* Install docker-machine: `brew install docker-machine`
-* Set up Docker connection to nexus: https://confluence.nextiva.xyz/display/DP/Docker+connection+to+nexus
-* Find OpenJDK 11 cask `brew search java`
-    * Currently the cask for java 11 is just named 'java', but this may change in the future. You can verify by
-    running `brew cask info <caskName>` to verify the version.
-* Install OpenJDK 11 cask: `brew cask install java`
-* Set JAVA_HOME to java 11 installation directory (/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home)
-    * If you need to use and switch between multiple Java versions, consider using jEnv to simplify this process
-        http://www.jenv.be
+##Log4j Spring Cloud Sample Application
 
-###Starting the Application
-* Start local postgres image `./docker/up.sh`
-* Compile and start local application image `./docker/restartApp.sh`
-    * Alternatively: Run FulfillmentApplication.java as a Spring Boot application using java -jar target/fulfillment-service.jar.
-* Local swagger URL is available at http://localhost:8080/swagger-ui.html
+This application uses Spring Boot and reads the logging configuration from the companion Spring Cloud Config Server
+project. The log4j2.xml file is located in the config-repo directory in that project.
 
-# Java client
-* Using the fulfillment-service-client is recommended when integrating Java applications with this service.
-###Using the client
-* Add the latest version of fulfillment-service-client as a dependency to your application.
-* Import the OrderSubmissionServiceClient class into your application configuration.
-* Specify fulfillment-service.url as a property
+This sample packages the application in a docker container that is packaged with rabbit-mq (to allow dynamic updates
+from Spring Cloud Config), fluent-bit (to test as a log forwarder), and Apache Flume (to test as a log forwarder).
+###Prerequisites
+Note: This guide assumes you already have docker installed. If you do not you may either use homebrew to install
+it or follow the instructions at https://docs.docker.com/docker-for-mac/install/.
 
-# Database setup
-Docker will create a container for postgres - a local version of Postgresql does not need to be installed.
-Before starting the application the tables in Postgres must be created. Until this is automatced login to pgAdmin
-using fulfillment_app/fulfillment_app as the credentialsand run the script in 
-fulfillment-service-web/resources/postgres/schema.sql.
+Like Log4j, the sample app uses the Maven toolchains plugin. The sample app may be built with Java 8 but is 
+configured to run in a docker container with Java 11.
 
-# Environment properties
-* This applications uses Kubernetes Config Maps to configure properties for an environment. The properties
-configured in application.yml will be used unless overridden at https://git.nextiva.xyz/projects/REL/repos/k8s-platform/browse
+The KafkaAppender requires a Kafka instance to write to. On MacOS a Kafka instance can be created by
+```
+brew install kafka
+zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties & kafka-server-start /usr/local/etc/kafka/server.properties
+```
+
+###Starting the Application
+* Start the companion rabbit-mq, fluent-bit and flume images `./docker/up.sh`
+* Compile and start local application image `./docker/restartApp.sh`
+* The application exposes two endpoints.
+    1. http://localhost:8080/sample/log?threads=1&count=100000 This endpoint will log up to 100,000 events using 
+    1 or more threads. 
+    1. http://localhost:8080/sample/exception This endpoint generates an exception that can be used to verify whether
+    multiline logging works with the chosen set of components.
 
-# Swagger
-* Dev: https://fulfillment-service.dev.nextiva.io/swagger-ui.ml
-* Rc: https://fulfillment-service.qa.nextiva.io/swagger-ui.html
-* Prod: https://fulfillment-service.prod.nextiva.io/swagger-ui.html
+###Viewing the logs
 
-#Automated Testing
-<!---
-* Unit tests can be run using `mvn test -Dgroups=UnitTest`
-* Integration tests (do not require Fulfillment Service but do require connection to third parties) 
-can be run using `mvn test -Dgroups=IntegrationTest`
--->
-* Functional tests (those that require Fulfillment Service running) can be run using `mvn -P integration-tests verify`
\ No newline at end of file
+Accessing the log files varies depending on the appending being used.     
+ 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/app-compose.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/app-compose.yml
new file mode 100755
index 0000000..01cb293
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/app-compose.yml
@@ -0,0 +1,21 @@
+version: "3"
+services:
+  sampleapp:
+    container_name: sampleapp
+    image: sampleapp
+    environment:
+      DOCKER_URI: http://socat:1234
+      SERVICE_PARAMS: --spring.config.location=classpath:/,classpath:/application-local-docker.yml
+    ports:
+      - "5005:5005"
+      - "8080:4567"
+    networks:
+      sample_network:
+        aliases:
+          - sampleapp
+
+networks:
+  sample_network:
+
+volumes:
+  pgdata:
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
index 10a5b13..76a0d09 100755
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
@@ -65,6 +65,7 @@ services:
         aliases:
           - flume
 
+
 networks:
   sample_network:
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
index 0122205..f059876 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
@@ -18,6 +18,8 @@
   <url>http://maven.apache.org</url>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
     <!--<manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>-->
   </properties>
 
@@ -114,6 +116,11 @@
       <version>1.9.0</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.kafka</groupId>
+      <artifactId>kafka-clients</artifactId>
+      <version>2.2.0</version>
+    </dependency>
+    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>3.1.0</version>
@@ -131,6 +138,15 @@
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${site.plugin.version}</version>
+        <configuration>
+          <skip>true</skip>
+          <skipDeploy>true</skipDeploy>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-toolchains-plugin</artifactId>
         <version>1.1</version>
         <executions>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
index 684b0cf..900015b 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
@@ -36,7 +36,7 @@
     <maven.google.code.findbugs.findbugs.version>3.0.1</maven.google.code.findbugs.findbugs.version>
     <maven.jacoco.version>0.8.1</maven.jacoco.version>
     <maven.pmd.version>3.9.0</maven.pmd.version>
-
+    <site.plugin.version>3.4</site.plugin.version>
     <!-- maven plugin config -->
     <pmd.failurePriority>2</pmd.failurePriority>
 
@@ -120,6 +120,15 @@
   <build>
     <plugins>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${site.plugin.version}</version>
+        <configuration>
+          <skip>true</skip>
+          <skipDeploy>true</skipDeploy>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
@@ -177,6 +186,15 @@
     </plugins>
   </build>
 
+  <distributionManagement>
+    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
+    <!-- site is only included to make maven-site-plugin stop complaining -->
+    <site>
+      <id>www.example.com</id>
+      <url>scp://www.example.com/www/docs/project/</url>
+    </site>
+  </distributionManagement>
+
   <repositories>
     <repository>
       <id>spring-snapshots</id>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
index 1c061a7..1e5eea6 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
@@ -22,7 +22,7 @@
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
       </JsonLayout>
     </Flume>
-    <Flume name="avro" ignoreExceptions="false" batchSize="100" compress="false">
+    <Flume name="avro" ignoreExceptions="false" batchSize="1" compress="false">
       <Agent host="flume" port="5050"/>
       <JsonLayout properties="true" compact="true" eventEol="true">
         <KeyValuePair key="containerId" value="\${docker:containerId}"/>
@@ -30,6 +30,25 @@
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
       </JsonLayout>
     </Flume>
+    <Flume name="avroSyslog" ignoreExceptions="false" batchSize="100" compress="false">
+      <Agent host="flume" port="5050"/>
+      <RFC5424Layout enterpriseNumber="18060" includeMDC="true" mdcId="RequestContext" appName="Sample"
+                     mdcPrefix="">
+        <LoggerFields>
+          <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+          <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+          <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+        </LoggerFields>
+      </RFC5424Layout>
+    </Flume>
+    <Kafka name="Kafka" topic="log-test" syncSend="false">
+      <JsonLayout properties="true" compact="true" eventEol="true">
+        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+      </JsonLayout>
+      <Property name="bootstrap.servers">host.docker.internal:9092</Property>
+    </Kafka>
     <Socket name="fluent-bit" host="fluent-bit" port="24221">
       <JsonLayout properties="true" compact="true" eventEol="true">
         <KeyValuePair key="containerId" value="\${docker:containerId}"/>
@@ -37,9 +56,34 @@
         <KeyValuePair key="imageName" value="\${docker:imageName}"/>
       </JsonLayout>
     </Socket>
-
+    <RollingFile name="RollingFile" fileName="/var/log/sampleapp/app.log"
+                 filePattern="/var/log/sampleapp/archive/app.log.%i">
+      <JsonLayout properties="true" compact="true" eventEol="true">
+        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+      </JsonLayout>
+      <SizeBasedTriggeringPolicy size="10MB" />
+      <DefaultRolloverStrategy max="5"/>
+    </RollingFile>
+    <RollingFile name="RollingSyslog" fileName="/var/log/sampleapp/syslog.log"
+                 filePattern="/var/log/sampleapp/archive/syslog.log.%i">
+      <RFC5424Layout enterpriseNumber="18060" includeMDC="true" mdcId="RequestContext" appName="Sample"
+                     mdcPrefix="">
+        <LoggerFields>
+          <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+          <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+          <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+        </LoggerFields>
+      </RFC5424Layout>
+      <SizeBasedTriggeringPolicy size="10MB" />
+      <DefaultRolloverStrategy max="5"/>
+    </RollingFile>
   </Appenders>
   <Loggers>
+    <Logger name="org.apache.kafka" level="warn" additivity="false">
+      <AppenderRef ref="console"/>
+    </Logger>
     <Logger name="org.apache.flume" level="warn" additivity="false">
       <AppenderRef ref="console"/>
     </Logger>
@@ -47,10 +91,7 @@
       <AppenderRef ref="console"/>
     </Logger>
     <Root level="DEBUG">
-      <AppenderRef ref="flume"/>
-      <!--<AppenderRef ref="flume"/>-->
-      <!--<AppenderRef ref="console"/>-->
-      <!--<AppenderRef ref="fluent-bit"/>-->
+      <AppenderRef ref="Kafka"/>
     </Root>
   </Loggers>
 </Configuration>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
index ff66652..3a01958 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/resources/log4j2.xml
@@ -22,7 +22,7 @@
     </Console>
   </Appenders>
   <Loggers>
-    <Root level="debug">
+    <Root level="ERROR">
       <AppenderRef ref="STDOUT" />
     </Root>
   </Loggers>
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index a89c6ed..56e0d40 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -34,6 +34,7 @@
     <spring-cloud-version>Finchley.SR3</spring-cloud-version>
     <spring-boot.version>2.0.8.RELEASE</spring-boot.version>
     <springVersion>5.0.12.RELEASE</springVersion>
+    <log4jParentDir>${basedir}/..</log4jParentDir>
   </properties>
   <dependencyManagement>
     <dependencies>
diff --git a/log4j-spring-cloud-config/src/site/markdown/index.md b/log4j-spring-cloud-config/src/site/markdown/index.md
new file mode 100644
index 0000000..7f51be4
--- /dev/null
+++ b/log4j-spring-cloud-config/src/site/markdown/index.md
@@ -0,0 +1,21 @@
+<!-- vim: set syn=markdown : -->
+<!--
+    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.
+-->
+
+# Log4j Spring Cloud Config
+
+
diff --git a/log4j-spring-cloud-config/src/site/site.xml b/log4j-spring-cloud-config/src/site/site.xml
new file mode 100644
index 0000000..14bbb87
--- /dev/null
+++ b/log4j-spring-cloud-config/src/site/site.xml
@@ -0,0 +1,52 @@
+<!--
+ 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.
+
+-->
+<project name="Log4j Spring Cloud Config"
+         xmlns="http://maven.apache.org/DECORATION/1.4.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd">
+  <body>
+    <links>
+      <item name="Apache" href="http://www.apache.org/" />
+      <item name="Logging Services" href="http://logging.apache.org/"/>
+      <item name="Log4j" href="../index.html"/>
+    </links>
+
+    <!-- Component-specific reports -->
+    <menu ref="reports"/>
+
+	<!-- Overall Project Info -->
+    <menu name="Log4j Project Information" img="icon-info-sign">
+      <item name="Dependencies" href="../dependencies.html" />
+      <item name="Dependency Convergence" href="../dependency-convergence.html" />
+      <item name="Dependency Management" href="../dependency-management.html" />
+      <item name="Project Team" href="../team-list.html" />
+      <item name="Mailing Lists" href="../mail-lists.html" />
+      <item name="Issue Tracking" href="../issue-tracking.html" />
+      <item name="Project License" href="../license.html" />
+      <item name="Source Repository" href="../source-repository.html" />
+      <item name="Project Summary" href="../project-summary.html" />
+    </menu>
+
+    <menu name="Log4j Project Reports" img="icon-cog">
+      <item name="Changes Report" href="../changes-report.html" />
+      <item name="JIRA Report" href="../jira-report.html" />
+      <item name="Surefire Report" href="../surefire-report.html" />
+      <item name="RAT Report" href="../rat-report.html" />
+    </menu>
+  </body>
+</project>
diff --git a/src/site/markdown/index.md.vm b/src/site/markdown/index.md.vm
index 36a42ce..7c94a85 100644
--- a/src/site/markdown/index.md.vm
+++ b/src/site/markdown/index.md.vm
@@ -107,6 +107,12 @@ $h3 Integrating with Application Servers
 
 Version 2.10.0 introduces a the module log4j-appserver to improve integration with Apache Tomcat and Eclipse Jetty.
 
+$h3 Cloud Enabled
+
+Version 2.12.0 introduces support for accessing Dcoker container information via a Lookup and for accessing
+and updating the Log4j configuration through Spring Clooud Configuration. See [Logging in the Cloud](manual/cloud.html)
+for details.
+
 $h2 Documentation
 
 The Log4j 2 User's Guide is available on this [site](manual/index.html) or as a downloadable
diff --git a/src/site/markdown/manual/cloud.md b/src/site/markdown/manual/cloud.md
new file mode 100644
index 0000000..71a1125
--- /dev/null
+++ b/src/site/markdown/manual/cloud.md
@@ -0,0 +1,212 @@
+<!-- vim: set syn=markdown : -->
+<!--
+ 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.
+-->
+
+# Using Log4j in Cloud Enabled Applications
+
+## The Twelve-Factor Application
+
+The Logging Guidelines for [The Twelve-Factor App](https://12factor.net/logs) state the all logs should be routed 
+unbuffered to stdout. Since this is the least common denominator it is guaranteed to work for all applications. Howeever,
+as with any set of general guidelines, choosing the least common denominator approach comes at a cost. Some of the costs
+in Java applications include:
+
+1. Java stack traces are multi-line log messages. The standard docker log driver cannot handle these properly. See 
+[Docker Issue #22920](https://github.com/moby/moby/issues/22920) which was closed with the message "Don't Care".
+1. When logging to stdout in Docker, log events pass through Java's standard output handling which is then directed 
+to the operating system so that the output can be piped into a file. The overhead of all this is measurably slower
+than just writing directly to a file as can be seen by the performance results below where logging 
+to stdout is anywhere from 20 to 200% slower than logging directly to the file. However, these results alone
+would not be enough to argue against writing to the standard output stream as they only amount to about 20-30 
+microseconds per logging call. 
+1. When performing audit logging using a framework such as log4j-audit guaranteed delivery of the audit events
+is required. Many of the options for writing the output, including writing to the standard output stream, do
+not guarantee delivery. In these cases the event must be delivered to a "forwarder" that acknowledges receipt
+only when it has placed the event in durable storage, such as what Apache Flume or Apache Kafka will do.
+
+## Logging Approaches
+
+All the solutions discussed on this page are predicated with the idea that log files cannot permanently
+reside on the file system and that all log events should be routed to one or more log analysis tools that will 
+be used for reporting and alreting. There are many ways to forward and collect events to be sent to the 
+log analysis tools. 
+
+Note that any approach that bypasses Docker's logging drivers requires Log4j's 
+[Docker Loookup](lookups.html#DockerLookup) to allow Docker attributes to be injected into the log events.  
+
+### Logging to the Standard Output Stream
+
+As discussed above, this is the recommended 12-Factor approach for applications running in a docker container.
+The Log4j team does not recommend this approach if exceptions will be logged by the Java application.
+
+![Stdout](../images/DockerStdout.png "Application Logging to the Standard Output Stream")
+
+### Logging to the Standard Output Stream with the Docker Fluentd Logging Driver
+
+Docker provides alternate [logging drivers](https://docs.docker.com/config/containers/logging/configure/), 
+such as [gelf](https://docs.docker.com/config/containers/logging/gelf/) or 
+[fluentd](https://docs.docker.com/config/containers/logging/fluentd/), that
+can be used to redirect the standard output stream to a log forwarder or log aggregator. 
+
+When routing to a log forwarder it is expected that the forwarder will have the same lifetime as the 
+application. If the forwarder should fail the management tools would be expected to also terminate 
+other containers dependent on the forwarder.
+
+![Docker Fluentbit](../images/DockerFluentd.png "Logging via StdOut using the Docker Fluentd Logging Driver to Fluent-bit")
+
+As an alternative the logging drivers could be configured to route events directly to a logging aggregator.
+This is generally not a good idea as the logging drivers only allow a single host and port to be configured. 
+The docker documentation isn't clear but infers that log events will be dropped when log events cannot be
+delivered so this method should not be used if a highly available solution is required.
+
+![Docker Fluentd](../images/DockerFluentdAggregator.png "Logging via StdOut using the Docker Fluentd Logging Driver to Fluentd")
+
+### Logging to a File
+
+While this is not the recommended 12-Factor approach, it performs very well. However, it requires that the 
+application declare a volume where the log files will reside and then configure the log forwarder to tail 
+those files. Care must also be taken to automatically manage the disk space used for the logs, which Log4j 
+can perform via the Delete action on the [RollingFileAppender](appenders.html#RollingFileAppender).
+
+![File](../images/DockerLogFile.png "Logging to a File")
+
+### Sending Directly to a Log Forwarder via TCP
+
+Sending logs directly to a Log Forwarder is simple as it generally just requires that the forwarder's
+host and port be configured on a SocketAppender with an appropriate layout.
+
+![TCP](../images/DockerTCP.png "Application Logging to a Forwarder via TCP")
+
+### Sending Directly to a Log Aggregator via TCP
+
+Similar to sending logs to a forwarder, logs can also be sent to a cluster of aggregators. However,
+setting this up is not as simple. Since, to be highly available, a cluster of aggregators must be used.
+However, the SocketAppender currently can only be configured with a single host and port. To allow 
+for failover if the primary aggregator fails the SocketAppender must be enclosed in a 
+[FailoverAppender](appenders.html#FailoverAppender),
+which would also have the secondary aggregator configured.  
+
+![Aggregator](../images/LoggerAggregator.png "Application Logging to an Aggregator via TCP")
+
+## Managing Logging Configuration
+
+Spring Boot provides another least common denominator approach to logging configuration. It will let you set the 
+log level for various Loggers within an application which can be dynamically updated via REST endpoints provided 
+by Spring. While this works in a lot of cases it does not support any of the more advanced filtering featurs of 
+Log4j. For example, since it cannot add or modify any Filters other than the log level of a logger, changes cannot be made to allow 
+all log events for a specific user or customer to temporarily be logged 
+(see [DynamicThresholdFilter](filters.html#DynamicThresholdFilter) or 
+[ThreadContextMapFilter](filters.html#ThreadContextMapFilter)) or any other kinds of changes to filters. 
+Also, in a micro-services, clustered environment it is quite likely that these changes will need to be propagated
+to multiple servers at the same time. Trying to achieve this via REST calls could be difficult.
+  
+Log4j supports dynamic reconfiguration. since the first release Log4j has supported reconfiguration through a file.
+Beginning with Log4j 2.12.0 Log4j also supports accessing the configuration via HTTP(S) and monitoring the file 
+for changes by using the HTTP "If-Modified-Since" header. A patch has also been integrated into Spring Cloud Config
+starting with versions 2.0.3 and 2.1.1 for it to honor the If-Modified-Since header. In addition, the 
+log4j-spring-cloud-config project will listen for update events published by Spring Cloud Bus and then verify
+that the configuratoin file has been modified, so polling via HTTP is not required.
+
+Log4j also supports composite configurations. A distributed application spread across microservices could 
+share a common configuration file that could be used to control things like enabling debug logging for a 
+specific user.
+
+While the standard Spring Boot REST endpoints to update logging will still work any changes made by those 
+REST endpoints will be lost if Log4j reconfigures itself do to changes in the logging configuration file.
+
+Further information regarding integration of the log4j-spring-cloud-config-client can be found at 
+[Log4j Spring Cloud Config Client](../log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html)
+
+## Integration with Docker
+
+Applications within a Docker container that log using a Docker logging driver can include special 
+attributes in the formatted log event as described at 
+[Customize Log Driver Output](https://docs.docker.com/config/containers/logging/log_tags/). Log4j 
+provides similar functionality via the [Docker Loookup](lookups.html#DockerLookup). More information on
+Log4j's Docker support may also be found at [Log4j-Docker](../log4j-docker/index.html). 
+
+## Appender Performance
+The numbers in the table below represent how much time was required for the application to call logger.debug
+100,000 times. These numbers only include the time taken to deliver to the specifcly noted endpoint and
+many not include the actual time required before they are availble for viewing. All measurements were
+performed on a MacBook Pro with a 2.9GHz Intel Core I9 processor with 6 physical and 12 logical cores, 
+32GB of 2400 MHz DDR4 RAM, and 1TB of Apple SSD storage. The VM used by Docker was managed by VMWare Fusion 
+and had 4 CPUs and 2 GB of RAM. These number should be used for relative perfomance comparisons as the 
+results on another system may vary considerably. 
+
+| Test                    | 1 Thread | 2 Threads | 4 Threads | 8 Threads |
+|------------------------ |---------:|----------:|----------:|----------:|
+|Flume Avro |||||
+|- Batch Size 1 - JSON    |49.11     |46.54      |46.70      |44.92      |
+|- Batch Size 1 - RFC5424 |48.30     |45.79      |46.31      |45.50      |
+|- Batch Size 100 - JSON  | 6.33     |3.87       |3.57       |3.84       | 
+|- Batch Size 100 - RFC5424 | 6.08   |3.69       |3.22       |3.11       | 
+|- Batch Size 1000 - JSON | 4.83     |3.20       |3.02       |2.11       |
+|- Batch Size 1000 - RFC5424 | 4.70  |2.40       |2.37       |2.37       |
+|Flume Embedded |||||
+| - RFC5424               |3.58      |2.10       |2.10       |2.70       |
+| - JSON                  |4.20      |2.49       |3.53       |2.90       |
+|Kafka Local JSON |||||
+| - sendSync true         |58.46     |38.55      |19.59      |19.01      |
+| - sendSync false        |9.8       |10.8       |12.23      |11.36      |
+|Console|||||
+| - JSON / Kubernetes     |3.03      |3.11       |3.04       |2.51       |
+| - JSON                  |2.80      |2.74       |2.54       |2.35       |
+| - Docker fluentd driver |10.65     |9.92       |10.42      |10.27      |
+|Rolling File|||||
+| - RFC5424               |1.65      |0.94       |1.22       |1.55
+| - JSON                  |1.90      |0.95       |1.57       |1.94       |
+|TCP - Fluent Bit - JSON  |2.34      |2.167      |1.67       |2.50       |
+|Async Logger|||||
+|- TCP - Fluent Bit - JSON|0.90      |0.58       |0.36       |0.48       |
+|- Console - JSON         |0.83      |0.57       |0.55       |0.61       |
+|- Flume Avro - 1000 - JSON|0.76     |0.37       |0.45       |0.68       |
+
+Notes:
+
+1. Flume Avro - Buffering is controlled by the batch size. Each send is complete when the remote 
+acknowledges the batch was written to its channel. These number seem to indicate Flume Avro could
+benefit from using a pool of RPCClients, at least for a batchSize of 1.
+1. Flume Embedded - This is essentially asynchronous as it writes to an in-memory buffer. It is
+unclear why the performance isn't closer to the AsyncLogger results.
+1. Kafka was run in standalone mode on the same laptop as the application. See  sendSync set to true
+requires waiting for an ack from Kafka for each log event. 
+1. Console - System.out is redirected to a file by Docker. Testing shows that it would be much
+slower if it was writing to the terminal screen.
+1. Rolling File - Test uses the default buffer size of 8K.
+1. TCP to Fluent Bit - The Socket Appender uses a default buffer size of 8K.
+1. Async Loggers - These all write to a circular buffer and return to the application. The actual
+I/O will take place on a separate thread. If writing the events is performed more slowly than 
+events are being created eventually the buffer will fill up and logging will be performed at 
+the same pace that log events are written.
+
+## Logging Recommendations
+
+1. Use asynchronous logging unless guaranteed delivery is absolutely required. As 
+the performance numbers show, so long as the volume of logging is not high enough to fill up the 
+circular buffer the overhead of logging will almost be unnoticeable to the application.
+1. If overall performance is a consideration or you require multiline events such as stack traces
+be processed properly then log via TCP to a companion container that acts as a log forwarder. Use the 
+Log4j Docker Lookup to add the container information to each log event.
+1. Whenvever guaranteed delivery is required use Flume Avro with a batch size of 1 or another Appender such 
+as the Kafka Appender with syncSend set to true that only return control after the downstream agent 
+acknowledges receipt of the event. Beware that using an Appender that writes each event individually should 
+be kept to a minimum since it is much slower than sending buffered events. 
+1. Logging to files within the container is discouraged. Doing so reuires that a volume be declared in 
+the Docker configuration and that the file be tailed by a log forwarder. However, it performs 
+better than logging to the standard output stream. If logging via TCP is not an option and
+proper multiline handling is required then consider this option.
\ No newline at end of file
diff --git a/src/site/resources/images/DockerFluentd.drawio b/src/site/resources/images/DockerFluentd.drawio
new file mode 100644
index 0000000..8664a4e
--- /dev/null
+++ b/src/site/resources/images/DockerFluentd.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T19:39:23.743Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="ga3EPmrR2nb5J0BswPKH" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">3VjZctsgFP0aP6ajzbL1mHhppk2mSZ1pk6cOEdiiwUJFeMvX92KBdsdprHQ69YMNB7iIc+4R4J47Wm4/CpRE1xwT1nMsvO25457jOJY7hB+F7DLEtmwrQxaCYo0VwIw+E9NRoyuKSVrpKDlnkiZVMORxTEJZwZAQfFPtNuesOmuCFqQBzELEmuh3imWkUduy [...]
\ No newline at end of file
diff --git a/src/site/resources/images/DockerFluentd.png b/src/site/resources/images/DockerFluentd.png
new file mode 100644
index 0000000..edcd350
Binary files /dev/null and b/src/site/resources/images/DockerFluentd.png differ
diff --git a/src/site/resources/images/DockerFluentdAggregator.drawio b/src/site/resources/images/DockerFluentdAggregator.drawio
new file mode 100644
index 0000000..4b312ff
--- /dev/null
+++ b/src/site/resources/images/DockerFluentdAggregator.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T20:13:53.215Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="M96szTU_Fw0FbEZ1bxDf" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">zVfLctowFP0alun4hcFLYqCZNpkmpdMmq45iC1uNsFxZgMnX9wpLfhMyAWbKIpGOpCv7nHt05YHtr/LPHKXxHQsxHVhGmA/s6cCyLMMewz+J7ArENEyjQCJOQoVVwIK8Yj1RoWsS4qwxUTBGBUmbYMCSBAeigSHO2bY5bcloc9cURbgDLAJEu+gvEopYoaZh [...]
\ No newline at end of file
diff --git a/src/site/resources/images/DockerFluentdAggregator.png b/src/site/resources/images/DockerFluentdAggregator.png
new file mode 100644
index 0000000..846c5a6
Binary files /dev/null and b/src/site/resources/images/DockerFluentdAggregator.png differ
diff --git a/src/site/resources/images/DockerLogFile.drawio b/src/site/resources/images/DockerLogFile.drawio
new file mode 100644
index 0000000..1de4dd3
--- /dev/null
+++ b/src/site/resources/images/DockerLogFile.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T20:17:04.511Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="CK1puqeNANjE1A8R_XEg" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">3VhNc5swEP01PrYjwNjm6BDTr3ia1jNJfFSQbNQKRIUIkF9fyQhjkB3HiZOZNodEu1qt0Hu7D5GB48flJw7TaM4QpgMboHLgXA5s2wbORP5Rnqr2WMACtWfNCdK+1rEgj7gJ1N6cIJx1AgVjVJC06wxZkuBQdHyQc1Z0w1aMdndN4RobjkUIqem9JUhE2msB [...]
\ No newline at end of file
diff --git a/src/site/resources/images/DockerLogFile.png b/src/site/resources/images/DockerLogFile.png
new file mode 100644
index 0000000..5ec366e
Binary files /dev/null and b/src/site/resources/images/DockerLogFile.png differ
diff --git a/src/site/resources/images/DockerStdout.drawio b/src/site/resources/images/DockerStdout.drawio
new file mode 100644
index 0000000..9b35764
--- /dev/null
+++ b/src/site/resources/images/DockerStdout.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T20:22:29.524Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="tZjZN1zqtIJ6xoe4SOn7" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">3VjZctowFP0aHtPxAgY/Jga6DGnTMtOER2ELW42wXFlm6ddXwvIqOxAwSac8gHR1tfice48u7pnOeveRgii4Jx7EPUPzdj1z3DMMQzNH/EdY9qlF13QttfgUedJWGOboD8wcpTVBHowrjowQzFBUNbokDKHLKjZAKdlW3VYEV3eNgA8Vw9wFWLU+Io8F0qpr [...]
\ No newline at end of file
diff --git a/src/site/resources/images/DockerStdout.png b/src/site/resources/images/DockerStdout.png
new file mode 100644
index 0000000..546e896
Binary files /dev/null and b/src/site/resources/images/DockerStdout.png differ
diff --git a/src/site/resources/images/DockerTCP.drawio b/src/site/resources/images/DockerTCP.drawio
new file mode 100644
index 0000000..733bbf6
--- /dev/null
+++ b/src/site/resources/images/DockerTCP.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T20:25:12.743Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="W_kcBCjDz_BLlawZ2mwf" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">3VdNc5swEP01PqYDKOBwTLBpppPMpHWnTU4dBQlQIxARcsD99V0ZYT7zMXXaQ32wtW9XK/TeapEXKMjqjxIX6bUglC8ci9QLtFo4jmOhM/jRyK5BbMu2GiSRjBisAzbsF20DDbplhJaDQCUEV6wYgpHIcxqpAYalFNUwLBZ8uGqBEzoBNhHmU/Q7Iyo1qG1Z [...]
\ No newline at end of file
diff --git a/src/site/resources/images/DockerTCP.png b/src/site/resources/images/DockerTCP.png
new file mode 100644
index 0000000..4a30200
Binary files /dev/null and b/src/site/resources/images/DockerTCP.png differ
diff --git a/src/site/resources/images/LoggerAggregator.drawio b/src/site/resources/images/LoggerAggregator.drawio
new file mode 100644
index 0000000..91c5668
--- /dev/null
+++ b/src/site/resources/images/LoggerAggregator.drawio
@@ -0,0 +1 @@
+<mxfile modified="2019-03-31T20:10:25.947Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" etag="_GAVgQ1D8SCqD5mIJyzn" version="10.5.9" type="device"><diagram id="5SG5qToZW8ppSJovxSJi" name="Page-1">tVbbcpswEP0aHtvhYtPw6Gs7nWTGrWfa5FFBC6gRiAph4359V0bcnUsnLg+29uxqJZ2zWrC8VVp9liRP7gQFbrk2rSxvbbmua3s3+KeRU404tmPXSCwZNVgH7NkfaAINWjIKxSBQCcEVy4dgKLIMQjXAiJTiOAyLBB+umpMYJsA+JHyK/mRUJQZ1bLtzfAEW [...]
\ No newline at end of file
diff --git a/src/site/resources/images/LoggerAggregator.png b/src/site/resources/images/LoggerAggregator.png
new file mode 100644
index 0000000..78ebf0a
Binary files /dev/null and b/src/site/resources/images/LoggerAggregator.png differ
diff --git a/src/site/site.xml b/src/site/site.xml
index 1a49332..7fe1c72 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -111,6 +111,7 @@
       <item name="Usage" href="/manual/usage.html" collapse="true">
         <item name="Static vs non-Static Loggers" href="/manual/usage.html#StaticVsNonStatic"/>
         <item name="Logger Name vs Class Name" href="/manual/usage.html#LoggerVsClass"/>
+        <item name="Logging in the Cloud" href="/manual/cloud.html"/>
       </item>
 
       <item name="Web Applications and JSPs" href="/manual/webapp.html" collapse="true">
@@ -125,6 +126,7 @@
       <item name="Lookups" href="/manual/lookups.html" collapse="true">
         <item name="Context Map" href="/manual/lookups.html#ContextMapLookup"/>
         <item name="Date" href="/manual/lookups.html#DateLookup"/>
+        <item name="Docker" href="manual/lookups.html#DockerLookup"/>
         <item name="Environment" href="/manual/lookups.html#EnvironmentLookup"/>
         <item name="Java" href="/manual/lookups.html#JavaLookup"/>
         <item name="JNDI" href="/manual/lookups.html#JndiLookup"/>
@@ -295,6 +297,8 @@
       <item name="Log4j Cassandra appender" href="log4j-cassandra/index.html"/>
       <item name="Log4j IO Streams" href="log4j-iostreams/index.html"/>
       <item name="Log4j Liquibase Binding" href="log4j-liquibase/index.html"/>
+      <item name="Log4j Docker Support" href="log4j-docker/index.html"/>
+      <item name="Log4j Spring Cloud Config Client" href="log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html"/>
     </menu>
 
     <menu name="Project Information" img="icon-info-sign">
diff --git a/src/site/xdoc/manual/configuration.xml.vm b/src/site/xdoc/manual/configuration.xml.vm
index 119c60e..e0291d7 100644
--- a/src/site/xdoc/manual/configuration.xml.vm
+++ b/src/site/xdoc/manual/configuration.xml.vm
@@ -2386,6 +2386,84 @@ public class AwesomeTest {
       <td>Disables message pattern lookups globally when set to <tt>true</tt>.
           This is equivalent to defining all message patterns using <tt>%m{nolookups}</tt>.</td>
   </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.location "/>log4j2.trustStore.location</td>
+    <td>LOG4J_TRUST_STORE_LOCATION</td>
+    <td></td>
+    <td>The location of the trust store. If not provided the default trust store will be used.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.password"/>log4j2.trustStore.password</td>
+    <td>LOG4J_TRUST_STORE_PASSWORD</td>
+    <td></td>
+    <td>Password needed to access the trust store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.passwordFile"/>log4j2.trustStore.passwordFile</td>
+    <td>LOG4J_TRUST_STORE_PASSWORD_FILE</td>
+    <td></td>
+    <td>The location of a file that contains the password for the trust store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.passwordEnvironmentVariable"/>log4j2.trustStore.passwordEnvironmentVariable</td>
+    <td>LOG4J_TRUST_STORE_PASSWORD_ENVIRONMENT_VARIABLE</td>
+    <td></td>
+    <td>The name of the environment variable that contains the trust store password.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.type"/>log4j2.trustStore.type</td>
+    <td>LOG4J_TRUST_STORE_TYPE</td>
+    <td></td>
+    <td>The type of key store used for the trust store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.trustStore.keyManagerFactoryAlgorithm"/>log4j2.trustStore.keyManagerFactoryAlgorithm</td>
+    <td>LOG4J_TRUST_STORE_KEY_MANAGER_FACTORY_ALGORITHM</td>
+    <td></td>
+    <td>Java cryptographic algorithm.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.location "/>log4j2.keyStore.location </td>
+    <td>LOG4J_KEY_STORE_LOCATION</td>
+    <td></td>
+    <td>The location of the key store. If not provided the default key store will be used.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.password"/>log4j2.keyStore.password</td>
+    <td>LOG4J_KEY_STORE_PASSWORD</td>
+    <td></td>
+    <td>Password needed to access the key store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.passwordFile"/>log4j2.keyStore.passwordFile</td>
+    <td>LOG4J_KEY_STORE_PASSWORD_FILE</td>
+    <td></td>
+    <td>The location of a file that contains the password for the key store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.passwordEnvironmentVariable"/>log4j2.keyStore.passwordEnvironmentVariable</td>
+    <td>LOG4J_KEY_STORE_PASSWORD_ENVIRONMENT_VARIABLE</td>
+    <td></td>
+    <td>The name of the environment variable that contains the key store password.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.type"/>log4j2.keyStore.type</td>
+    <td>LOG4J_KEY_STORE_TYPE</td>
+    <td></td>
+    <td>The type of key store.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.keyStore.keyManagerFactoryAlgorithm"/>log4j2.keyStore.keyManagerFactoryAlgorithm</td>
+    <td>LOG4J_KEY_STORE_KEY_MANAGER_FACTORY_ALGORITHM</td>
+    <td></td>
+    <td>Java cryptographic algorithm.</td>
+  </tr>
+  <tr>
+    <td><a name="log4j2.ssl.verifyHostName"/>log4j2.ssl.verifyHostName</td>
+    <td></td>
+    <td>false</td>
+    <td>true or false if the host name should be verified</td>
+  </tr>
 </table>
 
         </subsection>
diff --git a/src/site/xdoc/manual/lookups.xml b/src/site/xdoc/manual/lookups.xml
index 255054a..051033f 100644
--- a/src/site/xdoc/manual/lookups.xml
+++ b/src/site/xdoc/manual/lookups.xml
@@ -67,6 +67,31 @@
   <SizeBasedTriggeringPolicy size="500" />
 </RollingFile>]]></pre>
         </subsection>
+        <a name="DockerLookup"/>
+        <subsection name="Docker Lookup">
+          <p>
+            The DockerLookup can be used to lookup attributes from the Docker container the application is running
+            in.
+          </p>
+          Log4j Docker provides access to the following container attributes:
+          <table>
+            <tr><td>containerId</td><td>The full id assigned to the container.</td></tr>
+            <tr><td>containreName</td><td>The name assigned to the container.</td></tr>
+            <tr><td>imageId</td><td>The id assigned to the image.</td></tr>
+            <tr><td>imageName</td><td>The name assigned to the image.</td></tr>
+            <tr><td>shortContainerId</td><td>The first 12 characters of the container id.</td></tr>
+            <tr><td>shortImageId</td><td>The first 12 characters of the image id.</td></tr>
+          </table>
+          <pre class="prettyprint linenums"><![CDATA[
+<JsonLayout properties="true" compact="true" eventEol="true">
+  <KeyValuePair key="containerId" value="${docker:containerId}"/>
+  <KeyValuePair key="containerName" value="${docker:containerName}"/>
+  <KeyValuePair key="imageName" value="${docker:imageName}"/>
+</JsonLayout>]]></pre>
+          <p>
+            This Lookup is subject to the requirements listed at <a href="../log4j-docker/index.html">Log4j Docker Support</a>
+          </p>
+        </subsection>
         <a name="EnvironmentLookup"/>
         <subsection name="Environment Lookup">
           <p>
diff --git a/src/site/xdoc/runtime-dependencies.xml b/src/site/xdoc/runtime-dependencies.xml
index 9429feb..4a5c118 100644
--- a/src/site/xdoc/runtime-dependencies.xml
+++ b/src/site/xdoc/runtime-dependencies.xml
@@ -81,20 +81,36 @@
             </td>
           </tr>
           <tr>
+            <td>log4j-appserver</td>
+            <td>org.apache.logging.log4j.appserver</td>
+            <td>Automatic Module</td>
+          </tr>
+          <tr>
+            <td>log4j-cassandra</td>
+            <td>org.apache.logging.log4j.cassandra</td>
+            <td>Automatic Module</td>
+          </tr>
+          <tr>
             <td>log4j-core</td>
             <td>org.apache.logging.log4j.core</td>
             <td>Automatic Module</td>
           </tr>
           <tr>
-            <td>log4j-1.2-api</td>
-            <td>org.apache.log4j</td>
+            <td>log4j-couchdb</td>
+            <td>org.apache.logging.log4j.couchdb</td>
             <td>Automatic Module</td>
           </tr>
           <tr>
-            <td>log4j-appserver</td>
-            <td>org.apache.logging.log4j.appserver</td>
+            <td>log4j-docker</td>
+            <td>org.apache.logging.log4j.docker</td>
+            <td>Automatic Module</td>
+          </tr>
+          <tr>
+            <td>log4j-1.2-api</td>
+            <td>org.apache.log4j</td>
             <td>Automatic Module</td>
           </tr>
+
           <tr>
             <td>log4j-flume-ng</td>
             <td>org.apache.logging.log4j.flume</td>
@@ -121,39 +137,30 @@
             <td>Automatic Module</td>
           </tr>
           <tr>
-            <td>log4j-couchdb</td>
-            <td>org.apache.logging.log4j.couchdb</td>
-            <td>Automatic Module</td>
-          </tr>
-          <tr>
             <td>log4j-mongodb</td>
             <td>org.apache.logging.log4j.mongodb</td>
             <td>Automatic Module</td>
           </tr>
-          <tr>
-            <td>log4j-cassandra</td>
-            <td>org.apache.logging.log4j.cassandra</td>
-            <td>Automatic Module</td>
-          </tr>
+
           <tr>
             <td>log4j-osgi</td>
             <td>org.apache.logging.log4j.osgi</td>
             <td>Automatic Module. Unclear how OSGi will support Java modules.</td>
           </tr>
           <tr>
-          <td>log4j-slf4j-impl</td>
-          <td>org.apache.logging.log4j.slf4j.impl</td>
-          <td>Automatic Module. May require renaming should SLF4J ever require all implementations to have the same
-            module name.</td>
-        </tr>
+            <td>log4j-slf4j-impl</td>
+            <td>org.apache.logging.log4j.slf4j.impl</td>
+            <td>Automatic Module. May require renaming should SLF4J ever require all implementations to have the same
+              module name.</td>
+            </tr>
           <tr>
-            <td>log4j-to-slf4j</td>
-            <td>org.apache.logging.log4j.slf4j</td>
+            <td>log4j-taglib</td>
+            <td>org.apache.logging.log4j.taglib</td>
             <td>Automatic Module</td>
           </tr>
           <tr>
-            <td>log4j-taglib</td>
-            <td>org.apache.logging.log4j.taglib</td>
+            <td>log4j-to-slf4j</td>
+            <td>org.apache.logging.log4j.slf4j</td>
             <td>Automatic Module</td>
           </tr>
           <tr>
@@ -286,7 +293,14 @@
           </td>
         </tr>
       </table>
-
+      <a name="log4j-docker"/>
+      <h4>log4j-docker</h4>
+      <p>
+        <a href="log4j-docker/index.html">Log4j Docker Support</a> requires
+        <a href="https://github.com/FasterXML/jackson">Jackson annotations, core, and databind</a>. See the
+        <a href="log4j-docker/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of
+        JAR files needed.
+      </p>
       <a name="log4j-jcl" />
       <h4>log4j-jcl</h4>
       <p>
@@ -348,7 +362,17 @@
         The persistent agent uses Berkeley DB. See the
         <a href="log4j-flume-ng/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of JAR files needed.
       </p>
-
+      <a name="log4j-spring-cloud-config-client"/>
+      <h4>log4j-spring-cloud-config-client</h4>
+      <p>
+        <a href="log4j-spring-cloud-config/log4j-spring-cloud-config-client/index.html">Log4j Spring Cloud Config Client</a> requires
+        <a href="https://spring.io/projects/spring-cloud-config">Spring Cloud Config</a>.
+        <a href="https://spring.io/projects/spring-cloud-bus">Spring Cloud Bus</a> is required if notification of logging
+        configuration changes is desired. <a href="https://spring.io/projects/spring-boot">Spring Boot</a> is required
+        but applications do not have to be packaged as a Spring Boot application.
+        <a href="log4j-spring-cloud-config/log4j-spring-cloud-config-client/dependencies.html#Dependency_Tree">Dependency Tree</a> for the exact list of
+        JAR files needed.
+      </p>
       <a name="log4j-taglib" />
       <h4>log4j-taglib</h4>
       <p>


[logging-log4j2] 07/12: LOG4J2-913 - Code review changes

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 90636cf5a00709716735d5ea67ad2fcfe736abae
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Mon Feb 4 15:48:45 2019 -0700

    LOG4J2-913 - Code review changes
---
 .../logging/log4j/core/config/HttpWatcher.java     |  28 ++--
 .../core/net/ssl/SslConfigurationFactory.java      |  22 +++-
 .../apache/logging/log4j/core/util/Watcher.java    |   4 +-
 .../logging/log4j/core/util/WatcherFactory.java    |  34 +++--
 .../log4j/core/util/WrappedFileWatcher.java        |  16 ++-
 .../logging/log4j/core/util/WatchHttpTest.java     |   6 +-
 log4j-core/src/test/resources/logback-test.xml     |  31 +++++
 .../server/controller/Log4jResourceController.java | 142 ++++++++++-----------
 8 files changed, 175 insertions(+), 108 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
index 6072168..8a2f189 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -1,6 +1,18 @@
 /*
- * Copyright (c) 2019 Nextiva, Inc. to Present.
- * All rights reserved.
+ * 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.core.config;
 
@@ -11,8 +23,6 @@ import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
-import java.util.Properties;
-
 import javax.net.ssl.HttpsURLConnection;
 
 import org.apache.logging.log4j.Logger;
@@ -25,7 +35,6 @@ import org.apache.logging.log4j.core.util.AbstractWatcher;
 import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.Watcher;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
  *
@@ -72,8 +81,8 @@ public class HttpWatcher extends AbstractWatcher {
     @Override
     public void watching(Source source) {
         if (!source.getURI().getScheme().equals(HTTP) && !source.getURI().getScheme().equals(HTTPS)) {
-            throw new IllegalArgumentException("HttpWatcher requires a url using the HTTP or HTTPS protocol, not " +
-                source.getURI().getScheme());
+            throw new IllegalArgumentException(
+                "HttpWatcher requires a url using the HTTP or HTTPS protocol, not " + source.getURI().getScheme());
         }
         try {
             url = source.getURI().toURL();
@@ -136,15 +145,14 @@ public class HttpWatcher extends AbstractWatcher {
                             return true;
                         } catch (final IOException e) {
                             try (InputStream es = urlConnection.getErrorStream()) {
-                                LOGGER.info("Error accessing configuration at {}: {}", url,
-                                    readStream(es));
+                                LOGGER.info("Error accessing configuration at {}: {}", url, readStream(es));
                             } catch (final IOException ioe) {
                                 LOGGER.error("Error accessing configuration at {}: {}", url, e.getMessage());
                             }
                             return false;
                         }
                     }
-                    default : {
+                    default: {
                         if (code < 0) {
                             LOGGER.info("Invalid response code returned");
                         } else {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
index e3cc4d3..d0a517d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
@@ -1,6 +1,18 @@
 /*
- * Copyright (c) 2019 Nextiva, Inc. to Present.
- * All rights reserved.
+ * 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.core.net.ssl;
 
@@ -23,9 +35,9 @@ public class SslConfigurationFactory {
     private static final String trustStoreKeyStoreType = "log4j2.trustStore.keyStoreType";
     private static final String trustStoreKeyManagerFactoryAlgorithm = "log4j2.trustStore.keyManagerFactoryAlgorithm";
     private static final String keyStoreLocation = "log4j2.keyStore.location";
-    private static final String keyStorePassword = "log4j2.keyStorePassword";
-    private static final String keyStorePasswordFile = "log4j2.keyStorePasswordFile";
-    private static final String keyStorePasswordEnvVar = "log4j2.keyStorePasswordEnvironmentVariable";
+    private static final String keyStorePassword = "log4j2.keyStore.password";
+    private static final String keyStorePasswordFile = "log4j2.keyStore.passwordFile";
+    private static final String keyStorePasswordEnvVar = "log4j2.keyStore.passwordEnvironmentVariable";
     private static final String keyStoreType = "log4j2.keyStore.type";
     private static final String keyStoreKeyManagerFactoryAlgorithm = "log4j2.keyStore.keyManagerFactoryAlgorithm";
     private static final String verifyHostName = "log4j2.ssl.verifyHostName";
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
index c2be48d..426307f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
@@ -29,8 +29,8 @@ import org.apache.logging.log4j.core.config.Reconfigurable;
  */
 public interface Watcher {
 
-    public static final String CATEGORY = "Watcher";
-    public static final String ELEMENT_TYPE = "watcher";
+    String CATEGORY = "Watcher";
+    String ELEMENT_TYPE = "watcher";
 
     /**
      * Returns the list of listeners for this configuration.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
index ab9e86c..7671353 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -1,12 +1,23 @@
 /*
- * Copyright (c) 2019 Nextiva, Inc. to Present.
- * All rights reserved.
+ * 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.core.util;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -39,7 +50,7 @@ public class WatcherFactory {
 
     public static WatcherFactory getInstance(List<String> packages) {
         if (factory == null) {
-            synchronized(pluginManager) {
+            synchronized (pluginManager) {
                 if (factory == null) {
                     factory = new WatcherFactory(packages);
                 }
@@ -58,21 +69,22 @@ public class WatcherFactory {
             String name = source.getURI().getScheme();
             PluginType<?> pluginType = plugins.get(name);
             if (pluginType != null) {
-                return instantiate(name, (Class<? extends Watcher>) pluginType.getPluginClass(),
-                    configuration, reconfigurable, configurationListeners, lastModifiedMillis);
+                return instantiate(name, (Class<? extends Watcher>) pluginType.getPluginClass(), configuration,
+                    reconfigurable, configurationListeners, lastModifiedMillis);
             }
             LOGGER.info("No Watcher plugin is available for protocol '{}'", name);
             return null;
         }
     }
 
-    @SuppressWarnings("unchecked")
-    public static <T extends Watcher> T instantiate(String name, final Class<T> clazz, final Configuration configuration,
-        final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners, long lastModifiedMillis) {
+    public static <T extends Watcher> T instantiate(String name, final Class<T> clazz,
+        final Configuration configuration, final Reconfigurable reconfigurable,
+        final List<ConfigurationListener> listeners, long lastModifiedMillis) {
         Objects.requireNonNull(clazz, "No class provided");
         try {
-            Constructor constructor = clazz.getConstructor(Configuration.class, Reconfigurable.class, List.class, long.class);
-            return (T) constructor.newInstance(configuration, reconfigurable, listeners, lastModifiedMillis);
+            Constructor<T> constructor = clazz
+                .getConstructor(Configuration.class, Reconfigurable.class, List.class, long.class);
+            return constructor.newInstance(configuration, reconfigurable, listeners, lastModifiedMillis);
         } catch (NoSuchMethodException ex) {
             throw new IllegalArgumentException("No valid constructor for Watcher plugin " + name, ex);
         } catch (final LinkageError | InstantiationException e) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
index ffab8bb..54933b2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
@@ -1,6 +1,18 @@
 /*
- * Copyright (c) 2019 Nextiva, Inc. to Present.
- * All rights reserved.
+ * 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.core.util;
 
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
index f9b5abf..1b47cfd 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
@@ -110,8 +110,7 @@ public class WatchHttpTest {
         try {
             watchManager.watch(new Source(url.toURI(), previous.getTimeInMillis()), new HttpWatcher(configuration, null,
                 listeners, previous.getTimeInMillis()));
-            Thread.sleep(1500);
-            final String str = queue.poll(1, TimeUnit.SECONDS);
+            final String str = queue.poll(2, TimeUnit.SECONDS);
             assertNotNull("File change not detected", str);
         } finally {
             removeStub(stubMapping);
@@ -147,8 +146,7 @@ public class WatchHttpTest {
         try {
             watchManager.watch(new Source(url.toURI(), previous.getTimeInMillis()), new HttpWatcher(configuration, null,
                 listeners, previous.getTimeInMillis()));
-            Thread.sleep(1500);
-            final String str = queue.poll(1, TimeUnit.SECONDS);
+            final String str = queue.poll(2, TimeUnit.SECONDS);
             assertNull("File changed.", str);
         } finally {
             removeStub(stubMapping);
diff --git a/log4j-core/src/test/resources/logback-test.xml b/log4j-core/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..a7885c9
--- /dev/null
+++ b/log4j-core/src/test/resources/logback-test.xml
@@ -0,0 +1,31 @@
+<!--
+ 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.
+
+-->
+<configuration>
+ <appender name="TestLogfile" class="ch.qos.logback.core.FileAppender">
+   <file>target/testlogback.log</file>
+    <append>false</append>
+   <encoder>
+     <immediateFlush>false</immediateFlush>
+     <Pattern>%d %5p [%t] %c{0} %X{transactionId} - %m%n</Pattern>
+   </encoder>
+ </appender>
+
+ <root level="debug">
+   <appender-ref ref="TestLogfile" />
+ </root>
+</configuration>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
index e6bdd66..dbfc198 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
@@ -18,7 +18,7 @@ package org.apache.logging.log4j.spring.cloud.config.server.controller;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.config.environment.Environment;
@@ -45,7 +45,7 @@ import static org.springframework.cloud.config.server.support.EnvironmentPropert
 /**
  * Modified version of Spring Cloud Config's ResourceController to support If-Modified-Since.
  * Should be dropeed when Spring implements this.
- *
+ * <p>
  * An HTTP endpoint for serving up templated plain text resources from an underlying
  * repository. Can be used to supply config files for consumption by a wide variety of
  * applications and services. A {@link ResourceRepository} is used to locate a
@@ -55,56 +55,51 @@ import static org.springframework.cloud.config.server.support.EnvironmentPropert
  *
  * @author Dave Syer
  * @author Daniel Lavoie
- *
  */
 @RestController
 @RequestMapping(method = RequestMethod.GET, path = "${spring.cloud.config.server.prefix:}/resource")
 public class Log4jResourceController {
 
     @Autowired
-	private ResourceRepository resourceRepository;
+    private ResourceRepository resourceRepository;
 
     @Autowired
-	private EnvironmentRepository environmentRepository;
-
-	private UrlPathHelper helper = new UrlPathHelper();
-
-	public Log4jResourceController(ResourceRepository resourceRepository,
-			EnvironmentRepository environmentRepository) {
-		this.resourceRepository = resourceRepository;
-		this.environmentRepository = environmentRepository;
-		this.helper.setAlwaysUseFullPath(true);
-	}
-
-	@RequestMapping("/{name}/{profile}/{label}/**")
-	public String retrieve(@PathVariable String name, @PathVariable String profile,
-			@PathVariable String label, ServletWebRequest request,
-            @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
-			throws IOException {
-		String path = getFilePath(request, name, profile, label);
-		return retrieve(request, name, profile, label, path, resolvePlaceholders);
-	}
-
-	@RequestMapping(value = "/{name}/{profile}/**", params = "useDefaultLabel")
-	public String retrieve(@PathVariable String name, @PathVariable String profile,
-			ServletWebRequest request, @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
-			throws IOException {
-		String path = getFilePath(request, name, profile, null);
-		return retrieve(request, name, profile, null, path, resolvePlaceholders);
-	}
-
-	private String getFilePath(ServletWebRequest request, String name, String profile,
-			String label) {
-		String stem;
-		if(label != null ) {
-			stem = String.format("/%s/%s/%s/", name, profile, label);
-		}else {
-			stem = String.format("/%s/%s/", name, profile);
-		}
-		String path = this.helper.getPathWithinApplication(request.getRequest());
-		path = path.substring(path.indexOf(stem) + stem.length());
-		return path;
-	}
+    private EnvironmentRepository environmentRepository;
+
+    private UrlPathHelper helper = new UrlPathHelper();
+
+    public Log4jResourceController(ResourceRepository resourceRepository, EnvironmentRepository environmentRepository) {
+        this.resourceRepository = resourceRepository;
+        this.environmentRepository = environmentRepository;
+        this.helper.setAlwaysUseFullPath(true);
+    }
+
+    @RequestMapping("/{name}/{profile}/{label}/**")
+    public String retrieve(@PathVariable String name, @PathVariable String profile, @PathVariable String label,
+        ServletWebRequest request, @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
+        throws IOException {
+        String path = getFilePath(request, name, profile, label);
+        return retrieve(request, name, profile, label, path, resolvePlaceholders);
+    }
+
+    @RequestMapping(value = "/{name}/{profile}/**", params = "useDefaultLabel")
+    public String retrieve(@PathVariable String name, @PathVariable String profile, ServletWebRequest request,
+        @RequestParam(defaultValue = "true") boolean resolvePlaceholders) throws IOException {
+        String path = getFilePath(request, name, profile, null);
+        return retrieve(request, name, profile, null, path, resolvePlaceholders);
+    }
+
+    private String getFilePath(ServletWebRequest request, String name, String profile, String label) {
+        String stem;
+        if (label != null) {
+            stem = String.format("/%s/%s/%s/", name, profile, label);
+        } else {
+            stem = String.format("/%s/%s/", name, profile);
+        }
+        String path = this.helper.getPathWithinApplication(request.getRequest());
+        path = path.substring(path.indexOf(stem) + stem.length());
+        return path;
+    }
 
     private synchronized String retrieve(ServletWebRequest request, String name, String profile, String label,
         String path, boolean resolvePlaceholders) throws IOException {
@@ -117,7 +112,7 @@ public class Log4jResourceController {
         }
         // ensure InputStream will be closed to prevent file locks on Windows
         try (InputStream is = resource.getInputStream()) {
-            String text = StreamUtils.copyToString(is, Charset.forName("UTF-8"));
+            String text = StreamUtils.copyToString(is, StandardCharsets.UTF_8);
             if (resolvePlaceholders) {
                 Environment environment = this.environmentRepository.findOne(name, profile, label);
                 text = resolvePlaceholders(prepareEnvironment(environment), text);
@@ -129,27 +124,26 @@ public class Log4jResourceController {
     /*
      * Used only for unit tests.
      */
-    String retrieve(String name, String profile, String label, String path,
-        boolean resolvePlaceholders) throws IOException {
-	    return retrieve(null, name, profile, label, path, resolvePlaceholders);
+    String retrieve(String name, String profile, String label, String path, boolean resolvePlaceholders)
+        throws IOException {
+        return retrieve(null, name, profile, label, path, resolvePlaceholders);
+    }
+
+    @RequestMapping(value = "/{name}/{profile}/{label}/**", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
+    public synchronized byte[] binary(@PathVariable String name, @PathVariable String profile,
+        @PathVariable String label, ServletWebRequest request) throws IOException {
+        String path = getFilePath(request, name, profile, label);
+        return binary(request, name, profile, label, path);
     }
 
-	@RequestMapping(value = "/{name}/{profile}/{label}/**", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
-	public synchronized byte[] binary(@PathVariable String name,
-			@PathVariable String profile, @PathVariable String label,
-			ServletWebRequest request) throws IOException {
-		String path = getFilePath(request, name, profile, label);
-		return binary(request, name, profile, label, path);
-	}
-
-	/*
-	 * Used only for unit tests.
-	 */
-	byte[] binary(String name, String profile, String label, String path) throws IOException {
+    /*
+     * Used only for unit tests.
+     */
+    byte[] binary(String name, String profile, String label, String path) throws IOException {
         return binary(null, name, profile, label, path);
     }
 
-	private synchronized byte[] binary(ServletWebRequest request, String name, String profile, String label,
+    private synchronized byte[] binary(ServletWebRequest request, String name, String profile, String label,
         String path) throws IOException {
         name = resolveName(name);
         label = resolveLabel(label);
@@ -158,14 +152,14 @@ public class Log4jResourceController {
             // Content was not modified. Just return.
             return null;
         }
-		// TODO: is this line needed for side effects?
-		prepareEnvironment(this.environmentRepository.findOne(name, profile, label));
-		try (InputStream is = resource.getInputStream()) {
-			return StreamUtils.copyToByteArray(is);
-		}
-	}
-
-	private boolean checkNotModified(ServletWebRequest request, Resource resource) {
+        // TODO: is this line needed for side effects?
+        prepareEnvironment(this.environmentRepository.findOne(name, profile, label));
+        try (InputStream is = resource.getInputStream()) {
+            return StreamUtils.copyToByteArray(is);
+        }
+    }
+
+    private boolean checkNotModified(ServletWebRequest request, Resource resource) {
         try {
             return request != null && request.checkNotModified(resource.lastModified());
         } catch (Exception ex) {
@@ -174,7 +168,7 @@ public class Log4jResourceController {
         return false;
     }
 
-	private String resolveName(String name) {
+    private String resolveName(String name) {
         if (name != null && name.contains("(_)")) {
             // "(_)" is uncommon in a git repo name, but "/" cannot be matched
             // by Spring MVC
@@ -192,9 +186,9 @@ public class Log4jResourceController {
         return label;
     }
 
-	@ExceptionHandler(NoSuchResourceException.class)
-	@ResponseStatus(HttpStatus.NOT_FOUND)
-	public void notFound(NoSuchResourceException e) {
-	}
+    @ExceptionHandler(NoSuchResourceException.class)
+    @ResponseStatus(HttpStatus.NOT_FOUND)
+    public void notFound(NoSuchResourceException e) {
+    }
 
 }


[logging-log4j2] 09/12: LOG4J2-913 - Fix JSON serialization problems. Configure for various deployment methods

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 512c51cf3c975ec81092833f9173b8faec1453cc
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Thu Mar 21 12:54:12 2019 -0700

    LOG4J2-913 - Fix JSON serialization problems. Configure for various deployment methods
---
 .../java/org/apache/logging/log4j/util}/Timer.java |   70 +-
 .../logging/log4j/ThreadContextUtilityClass.java   |    4 +-
 .../log4j/message/MessageFormatsPerfTest.java      |    2 +-
 .../apache/logging/log4j/core/SimplePerfTest.java  |    2 +-
 .../logging/log4j/core/ThreadedPerfTest.java       |    2 +-
 .../log4j/core/layout/AbstractJacksonLayout.java   |    3 +-
 .../logging/log4j/core/lookup/Interpolator.java    |   10 +
 .../apache/logging/log4j/core/util/NetUtils.java   |   57 +
 .../apache/logging/log4j/core/util/UuidUtil.java   |   43 +-
 .../pom.xml                                        |   75 +-
 .../apache/logging/log4j/docker/DockerLookup.java  |  124 +
 .../logging/log4j/docker/model/Container.java      |  170 +
 .../logging/log4j/docker/model/HostConfig.java     |   26 +-
 .../logging/log4j/docker/model/IPAMConfig.java     |   48 +-
 .../apache/logging/log4j/docker/model/Mount.java   |  113 +
 .../apache/logging/log4j/docker/model/Network.java |  168 +
 .../log4j/docker/model/NetworkSettings.java        |   28 +-
 .../logging/log4j/docker/model/PortDefinition.java |   69 +
 .../log4j/flume/appender/FlumeAppender.java        |   20 +
 log4j-spring-cloud-config/hs_err_pid81053.log      |  697 --
 .../Dockerfile                                     |    8 +-
 .../docker/docker-compose.yml                      |   53 +-
 .../docker/init/fluent-bit/fluent-bit.conf         |   28 +
 .../docker/init/flume/flume-env.sh                 |    1 +
 .../docker/init/flume/flume.conf                   |   32 +
 .../docker/init/flume/log4j.properties             |   10 +
 .../docker/init/flume/start-flume.sh               |   14 +
 .../docker/restartApp.sh                           |   10 +-
 .../pom.xml                                        |   39 +
 .../config/sample/controller/SampleController.java |   91 +-
 .../src/main/resources/bootstrap.yml               |    2 +-
 .../src/main/resources/log4j2.component.properties |    2 +-
 .../mvn.txt                                        |  135 -
 .../pom.xml                                        |   10 +-
 .../src/main/config-repo/log4j2.xml                |   56 +-
 .../log4j-spring-cloud-config-server/pom.txt       | 7048 --------------------
 .../server/controller/Log4jResourceController.java |  194 -
 .../src/main/resources/META-INF/spring.factories   |    1 -
 log4j-spring-cloud-config/pom.xml                  |    1 -
 pom.xml                                            |    1 +
 40 files changed, 1186 insertions(+), 8281 deletions(-)

diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/Timer.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Timer.java
similarity index 84%
rename from log4j-api/src/test/java/org/apache/logging/log4j/Timer.java
rename to log4j-api/src/main/java/org/apache/logging/log4j/util/Timer.java
index 5dbe837..add41cc 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/Timer.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Timer.java
@@ -14,14 +14,11 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.logging.log4j;
+package org.apache.logging.log4j.util;
 
 import java.io.Serializable;
 import java.text.DecimalFormat;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-
 /**
  *
  */
@@ -30,13 +27,20 @@ public class Timer implements Serializable, StringBuilderFormattable
     private static final long serialVersionUID = 9175191792439630013L;
 
     private final String name;        // The timer's name
-    private String status;            // The timer's status
-    private long startTime;           // The start time
+    public enum Status {
+        Started, Stopped, Paused
+    }
+    private Status status; // The timer's status
     private long elapsedTime;         // The elapsed time
     private final int iterations;
     private static long NANO_PER_SECOND = 1000000000L;
     private static long NANO_PER_MINUTE = NANO_PER_SECOND * 60;
     private static long NANO_PER_HOUR = NANO_PER_MINUTE * 60;
+    private ThreadLocal<Long> startTime = new ThreadLocal<Long>() {
+            @Override protected Long initialValue() {
+                return 0L;
+            }
+    };
 
 
     /**
@@ -56,48 +60,56 @@ public class Timer implements Serializable, StringBuilderFormattable
     public Timer(final String name, final int iterations)
     {
         this.name = name;
-        startTime = 0;
-        status = "Stopped";
+        status = Status.Stopped;
         this.iterations = (iterations > 0) ? iterations : 0;
     }
 
     /**
      * Start the timer.
      */
-    public void start()
+    public synchronized void start()
     {
-        startTime = System.nanoTime();
+        startTime.set(System.nanoTime());
         elapsedTime = 0;
-        status = "Start";
+        status = Status.Started;
+    }
+
+    public synchronized void startOrResume() {
+        if (status == Status.Stopped) {
+            start();
+        } else {
+            resume();
+        }
     }
 
     /**
      * Stop the timer.
      */
-    public void stop()
+    public synchronized String stop()
     {
-        elapsedTime += System.nanoTime() - startTime;
-        startTime = 0;
-        status = "Stop";
+        elapsedTime += System.nanoTime() - startTime.get();
+        startTime.set(0L);
+        status = Status.Stopped;
+        return toString();
     }
 
     /**
      * Pause the timer.
      */
-    public void pause()
+    public synchronized void pause()
     {
-        elapsedTime += System.nanoTime() - startTime;
-        startTime = 0;
-        status = "Pause";
+        elapsedTime += System.nanoTime() - startTime.get();
+        startTime.set(0L);
+        status = Status.Paused;
     }
 
     /**
      * Resume the timer.
      */
-    public void resume()
+    public synchronized void resume()
     {
-        startTime = System.nanoTime();
-        status = "Resume";
+        startTime.set(System.nanoTime());
+        status = Status.Started;
     }
 
     /**
@@ -134,7 +146,7 @@ public class Timer implements Serializable, StringBuilderFormattable
      * Resume).
      * @return the string representing the last operation performed.
      */
-    public String getStatus()
+    public Status getStatus()
     {
         return status;
     }
@@ -154,16 +166,13 @@ public class Timer implements Serializable, StringBuilderFormattable
     public void formatTo(final StringBuilder buffer) {
         buffer.append("Timer ").append(name);
         switch (status) {
-            case "Start":
+            case Started:
                 buffer.append(" started");
                 break;
-            case "Pause":
+            case Paused:
                 buffer.append(" paused");
                 break;
-            case "Resume":
-                buffer.append(" resumed");
-                break;
-            case "Stop":
+            case Stopped:
                 long nanoseconds = elapsedTime;
                 // Get elapsed hours
                 long hours = nanoseconds / NANO_PER_HOUR;
@@ -262,7 +271,8 @@ public class Timer implements Serializable, StringBuilderFormattable
         int result;
         result = (name != null ? name.hashCode() : 0);
         result = 29 * result + (status != null ? status.hashCode() : 0);
-        result = 29 * result + (int) (startTime ^ (startTime >>> 32));
+        long time = startTime.get();
+        result = 29 * result + (int) (time ^ (time >>> 32));
         result = 29 * result + (int) (elapsedTime ^ (elapsedTime >>> 32));
         return result;
     }
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/ThreadContextUtilityClass.java b/log4j-api/src/test/java/org/apache/logging/log4j/ThreadContextUtilityClass.java
index c6e1826..d695bb2 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/ThreadContextUtilityClass.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/ThreadContextUtilityClass.java
@@ -18,8 +18,8 @@ package org.apache.logging.log4j;
 
 import java.util.Map;
 
-import org.apache.logging.log4j.Timer;
-import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.util.Timer;
+
 import static org.junit.Assert.*;
 
 
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/message/MessageFormatsPerfTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/message/MessageFormatsPerfTest.java
index a151eac..7ebd325 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/message/MessageFormatsPerfTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/message/MessageFormatsPerfTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.Timer;
+import org.apache.logging.log4j.util.Timer;
 import org.junit.AfterClass;
 import org.junit.Test;
 
diff --git a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/SimplePerfTest.java b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/SimplePerfTest.java
index e24f5f8..1b409b6 100644
--- a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/SimplePerfTest.java
+++ b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/SimplePerfTest.java
@@ -22,7 +22,7 @@ import java.util.Random;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Timer;
+import org.apache.logging.log4j.util.Timer;
 import org.apache.logging.log4j.categories.PerformanceTests;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.DefaultConfiguration;
diff --git a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedPerfTest.java b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedPerfTest.java
index 5798766..7b3bc4d 100644
--- a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedPerfTest.java
+++ b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/ThreadedPerfTest.java
@@ -21,7 +21,7 @@ import java.util.concurrent.Executors;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Timer;
+import org.apache.logging.log4j.util.Timer;
 import org.apache.logging.log4j.categories.PerformanceTests;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
index 2e5e7f4..985ef7f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractJacksonLayout.java
@@ -31,6 +31,7 @@ import org.apache.logging.log4j.core.jackson.XmlConstants;
 import org.apache.logging.log4j.core.lookup.StrSubstitutor;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.core.util.StringBuilderWriter;
+import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.util.Strings;
 
 import com.fasterxml.jackson.annotation.JsonAnyGetter;
@@ -277,7 +278,7 @@ abstract class AbstractJacksonLayout extends AbstractStringLayout {
         // TODO Jackson-based layouts have certain filters set up for Log4jLogEvent.
         // TODO Need to set up the same filters for MutableLogEvent but don't know how...
         // This is a workaround.
-        return event instanceof Log4jLogEvent ? event : Log4jLogEvent.createMemento(event);
+        return event instanceof ReusableMessage ? Log4jLogEvent.createMemento(event) : event;
     }
 
     protected Object wrapLogEvent(final LogEvent event) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
index 122515c..946dadd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
@@ -38,6 +38,8 @@ public class Interpolator extends AbstractConfigurationAwareLookup {
 
     private static final String LOOKUP_KEY_WEB = "web";
 
+    private static final String LOOKUP_KEY_DOCKER = "docker";
+
     private static final String LOOKUP_KEY_JNDI = "jndi";
 
     private static final String LOOKUP_KEY_JVMRUNARGS = "jvmrunargs";
@@ -126,6 +128,12 @@ public class Interpolator extends AbstractConfigurationAwareLookup {
         } else {
             LOGGER.debug("Not in a ServletContext environment, thus not loading WebLookup plugin.");
         }
+        try {
+            strLookupMap.put(LOOKUP_KEY_DOCKER,
+                Loader.newCheckedInstanceOf("org.apache.logging.log4j.docker.DockerLookup", StrLookup.class));
+        } catch (final Exception ignored) {
+            handleError(LOOKUP_KEY_DOCKER, ignored);
+        }
     }
 
     public Map<String, StrLookup> getStrLookupMap() {
@@ -151,6 +159,8 @@ public class Interpolator extends AbstractConfigurationAwareLookup {
                         "available. If you want better web container support, please add the log4j-web JAR to your " +
                         "web archive or server lib directory.");
                 break;
+            case LOOKUP_KEY_DOCKER:
+                break;
             default:
                 LOGGER.error("Unable to create Lookup for {}", lookupKey, t);
         }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
index 11df6e4..f3fbff8 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java
@@ -78,6 +78,63 @@ public final class NetUtils {
     }
 
     /**
+     *  Returns the local network interface's MAC address if possible. The local network interface is defined here as
+     *  the {@link java.net.NetworkInterface} that is both up and not a loopback interface.
+     *
+     * @return the MAC address of the local network interface or {@code null} if no MAC address could be determined.
+     */
+    public static byte[] getMacAddress() {
+        byte[] mac = null;
+        try {
+            final InetAddress localHost = InetAddress.getLocalHost();
+            try {
+                final NetworkInterface localInterface = NetworkInterface.getByInetAddress(localHost);
+                if (isUpAndNotLoopback(localInterface)) {
+                    mac = localInterface.getHardwareAddress();
+                }
+                if (mac == null) {
+                    final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
+                    while (networkInterfaces.hasMoreElements() && mac == null) {
+                        final NetworkInterface nic = networkInterfaces.nextElement();
+                        if (isUpAndNotLoopback(nic)) {
+                            mac = nic.getHardwareAddress();
+                        }
+                    }
+                }
+            } catch (final SocketException e) {
+                LOGGER.catching(e);
+            }
+            if (mac == null || mac.length == 0) {
+                mac = localHost.getAddress();
+            }
+        } catch (final UnknownHostException ignored) {
+            // ignored
+        }
+        return mac;
+    }
+
+    /**
+     * Returns the mac address, if it is available, as a string with each byte separated by a ":" character.
+     * @return the mac address String or null.
+     */
+    public static String getMacAddressString() {
+        final byte[] macAddr = getMacAddress();
+        if (macAddr != null && macAddr.length > 0) {
+            StringBuilder sb = new StringBuilder(String.format("%02x", macAddr[0]));
+            for (int i = 1; i < macAddr.length; ++i) {
+                sb.append(":").append(String.format("%02x", macAddr[i]));
+            }
+            return sb.toString();
+
+        }
+        return null;
+    }
+
+    private static boolean isUpAndNotLoopback(final NetworkInterface ni) throws SocketException {
+        return ni != null && !ni.isLoopback() && ni.isUp();
+    }
+
+    /**
      * Converts a URI string or file path to a URI object.
      *
      * @param path the URI string or path
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
index 5203649..7b392ed 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/UuidUtil.java
@@ -64,7 +64,7 @@ public final class UuidUtil {
     private static final int HUNDRED_NANOS_PER_MILLI = 10000;
 
     static {
-        byte[] mac = getLocalMacAddress();
+        byte[] mac = NetUtils.getMacAddress();
         final Random randomGenerator = new SecureRandom();
         if (mac == null || mac.length == 0) {
             mac = new byte[6];
@@ -148,46 +148,5 @@ public final class UuidUtil {
         final long most = timeLow | timeMid | TYPE1 | timeHi;
         return new UUID(most, LEAST);
     }
-
-    /**
-     * Returns the local network interface's MAC address if possible. The local network interface is defined here as
-     * the {@link java.net.NetworkInterface} that is both up and not a loopback interface.
-     *
-     * @return the MAC address of the local network interface or {@code null} if no MAC address could be determined.
-     * @since 2.1
-     */
-    private static byte[] getLocalMacAddress() {
-        byte[] mac = null;
-        try {
-            final InetAddress localHost = InetAddress.getLocalHost();
-            try {
-                final NetworkInterface localInterface = NetworkInterface.getByInetAddress(localHost);
-                if (isUpAndNotLoopback(localInterface)) {
-                    mac = localInterface.getHardwareAddress();
-                }
-                if (mac == null) {
-                    final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
-                    while (networkInterfaces.hasMoreElements() && mac == null) {
-                        final NetworkInterface nic = networkInterfaces.nextElement();
-                        if (isUpAndNotLoopback(nic)) {
-                            mac = nic.getHardwareAddress();
-                        }
-                    }
-                }
-            } catch (final SocketException e) {
-                LOGGER.catching(e);
-            }
-            if (mac == null || mac.length == 0) {
-                mac = localHost.getAddress();
-            }
-        } catch (final UnknownHostException ignored) {
-            // ignored
-        }
-        return mac;
-    }
-
-    private static boolean isUpAndNotLoopback(final NetworkInterface ni) throws SocketException {
-        return ni != null && !ni.isLoopback() && ni.isUp();
-    }
 }
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml b/log4j-docker/pom.xml
similarity index 79%
rename from log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
rename to log4j-docker/pom.xml
index eaf6767..f4eeea2 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
+++ b/log4j-docker/pom.xml
@@ -15,68 +15,49 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.apache.logging.log4j</groupId>
-    <artifactId>log4j-spring-cloud-config</artifactId>
+    <artifactId>log4j</artifactId>
     <version>2.12.0-SNAPSHOT</version>
     <relativePath>../</relativePath>
   </parent>
-  <artifactId>log4j-spring-cloud-config-server</artifactId>
+  <artifactId>log4j-docker</artifactId>
   <packaging>jar</packaging>
-  <name>Apache Log4j Spring Cloud Config Server Support</name>
-  <description></description>
+  <name>Apache Log4j Docker Library</name>
+  <description>Apache Log4j Docker Support</description>
   <properties>
     <log4jParentDir>${basedir}/..</log4jParentDir>
-    <docLabel>Log4j Spring Cloud Config Server Documentation</docLabel>
-    <projectDir>/log4j-spring-cloud-config-server</projectDir>
-    <module.name>org.apache.logging.log4j.spring.cloud.config.controller</module.name>
-    <log4j.version>2.11.2-SNAPSHOT</log4j.version>
+    <docLabel>Log4j Docker Library Documentation</docLabel>
+    <projectDir>/docker</projectDir>
+    <module.name>org.apache.logging.log4j.docker</module.name>
   </properties>
   <dependencies>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-config-server</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-all</artifactId>
-      <scope>test</scope>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
     </dependency>
+    <!-- Required for JSON support -->
     <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-databind</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <type>test-jar</type>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -100,10 +81,12 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <instructions>
-            <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
-          </instructions>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
         </configuration>
       </plugin>
     </plugins>
@@ -200,6 +183,12 @@
           <targetJdk>${maven.compiler.target}</targetJdk>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.sourceforge.maven-taglib</groupId>
+        <artifactId>maven-taglib-plugin</artifactId>
+        <version>2.4</version>
+      </plugin>
     </plugins>
   </reporting>
 </project>
+
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
new file mode 100644
index 0000000..2f0cfb1
--- /dev/null
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
@@ -0,0 +1,124 @@
+/*
+ * 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.docker;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.lookup.AbstractLookup;
+import org.apache.logging.log4j.core.lookup.StrLookup;
+import org.apache.logging.log4j.core.util.NetUtils;
+import org.apache.logging.log4j.docker.model.Container;
+import org.apache.logging.log4j.docker.model.Network;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ *
+ */
+@Plugin(name = "docker", category = StrLookup.CATEGORY)
+public class DockerLookup extends AbstractLookup {
+
+    private static final Logger LOGGER = StatusLogger.getLogger();
+    private static final String DOCKER_URI = "DOCKER_URI";
+    private static final String HTTP = "http";
+    private final Container container;
+
+    public DockerLookup() {
+        String baseUri = System.getenv(DOCKER_URI);
+        if (baseUri == null) {
+            PropertiesUtil props = PropertiesUtil.getProperties();
+            baseUri = props.getStringProperty(DOCKER_URI);
+        }
+        if (baseUri == null) {
+            LOGGER.warn("No Docker URI provided. Docker information is unavailble");
+        }
+        Container current = null;
+        try {
+            URL url= new URL(baseUri + "/containers/json");
+            String hostName = NetUtils.getLocalHostname();
+            String macAddr = NetUtils.getMacAddressString();
+
+            if (url.getProtocol().equals(HTTP)) {
+                ObjectMapper objectMapper = new ObjectMapper();
+                List<Container> containerList = objectMapper.readValue(url, new TypeReference<List<Container>>(){});
+
+                for (Container container : containerList) {
+                    if (macAddr != null && container.getNetworkSettings() != null) {
+                        Map<String, Network> networks = container.getNetworkSettings().getNetworks();
+                        if (networks != null) {
+                            for (Network network: networks.values()) {
+                                if (macAddr.equals(network.getMacAddress())) {
+                                    current = container;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    if (current != null) {
+                        break;
+                    }
+                }
+            }
+            if (current == null) {
+                LOGGER.warn("Unable to determine current container");
+            }
+        } catch (IOException ioe) {
+            LOGGER.warn("Unable to read container information: " + ioe.getMessage());
+        }
+        container = current;
+    }
+
+    @Override
+    public String lookup(LogEvent event, String key) {
+        if (container == null) {
+            return null;
+        }
+        switch (key) {
+            case "shortContainerId": {
+                return container.getId().substring(0, 12);
+            }
+            case "containerId": {
+                return container.getId();
+            }
+            case "containerName": {
+                if (container.getNames().size() > 1) {
+                    return container.getNames().toString();
+                }
+                return container.getNames().get(0);
+            }
+            case "shortImageId": {
+                return container.getImageId().substring(0, 12);
+            }
+            case "imageId": {
+                return container.getImageId();
+            }
+            case "imageName": {
+                return container.getImage();
+            }
+            default:
+                return null;
+        }
+    }
+}
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
new file mode 100644
index 0000000..cb8be45
--- /dev/null
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Container.java
@@ -0,0 +1,170 @@
+/*
+ * 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.docker.model;
+
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Definition of a Docker Container
+ */
+public class Container {
+    @JsonProperty("Id")
+    private String id;
+    
+    @JsonProperty("Names")
+    private List<String> names;
+
+    @JsonProperty("Image")
+    private String image;
+
+    @JsonProperty("ImageID")
+    private String imageId;
+
+    @JsonProperty("Command")
+    private String command;
+
+    @JsonProperty("Created")
+    private Long created;
+
+    @JsonProperty("Ports")
+    private List<PortDefinition> ports;
+
+    @JsonProperty("Labels")
+    private Map<String, String> labels;
+
+    @JsonProperty("State")
+    private String state;
+
+    @JsonProperty("Status")
+    private String status;
+
+    @JsonProperty("HostConfig")
+    private HostConfig hostConfig;
+
+    @JsonProperty("NetworkSettings")
+    private NetworkSettings networkSettings;
+
+    @JsonProperty("Mounts")
+    private List<Mount> mounts;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public List<String> getNames() {
+        return names;
+    }
+
+    public void setNames(List<String> names) {
+        this.names = names;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getImageId() {
+        return imageId;
+    }
+
+    public void setImageId(String imageId) {
+        this.imageId = imageId;
+    }
+
+    public String getCommand() {
+        return command;
+    }
+
+    public void setCommand(String command) {
+        this.command = command;
+    }
+
+    public Long getCreated() {
+        return created;
+    }
+
+    public void setCreated(Long created) {
+        this.created = created;
+    }
+
+    public List<PortDefinition> getPorts() {
+        return ports;
+    }
+
+    public void setPorts(List<PortDefinition> ports) {
+        this.ports = ports;
+    }
+
+    public Map<String, String> getLabels() {
+        return labels;
+    }
+
+    public void setLabels(Map<String, String> labels) {
+        this.labels = labels;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public HostConfig getHostConfig() {
+        return hostConfig;
+    }
+
+    public void setHostConfig(HostConfig hostConfig) {
+        this.hostConfig = hostConfig;
+    }
+
+    public NetworkSettings getNetworkSettings() {
+        return networkSettings;
+    }
+
+    public void setNetworkSettings(NetworkSettings networkSettings) {
+        this.networkSettings = networkSettings;
+    }
+
+    public List<Mount> getMounts() {
+        return mounts;
+    }
+
+    public void setMounts(List<Mount> mounts) {
+        this.mounts = mounts;
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/HostConfig.java
similarity index 57%
copy from log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
copy to log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/HostConfig.java
index ceeda38..f32c474 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/HostConfig.java
@@ -14,25 +14,15 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.logging.log4j.spring.cloud.config.sample.controller;
+package org.apache.logging.log4j.docker.model;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/sample")
-public class SampleController {
-
-    private static final Logger LOGGER = LogManager.getLogger(SampleController.class);
+/**
+ *
+ */
+public class HostConfig {
 
-    @GetMapping
-    public ResponseEntity<String> get() {
-        LOGGER.info("Hello, World");
-        return ResponseEntity.ok("Hello, World");
-    }
+    @JsonProperty("NetworkMode")
+    private String networkMode;
 }
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
similarity index 52%
copy from log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
copy to log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
index ceeda38..acc3eeb 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/IPAMConfig.java
@@ -14,25 +14,45 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.logging.log4j.spring.cloud.config.sample.controller;
+package org.apache.logging.log4j.docker.model;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+/**
+ *
+ */
+public class IPAMConfig {
+    
+    @JsonProperty("Subnet")
+    private String subnet;
+    
+    @JsonProperty("IPRange")
+    private String ipRange;
+    
+    @JsonProperty("Gateway")
+    private String gateway;
 
-import java.util.List;
+    public String getSubnet() {
+        return subnet;
+    }
 
-@RestController
-@RequestMapping("/sample")
-public class SampleController {
+    public void setSubnet(String subnet) {
+        this.subnet = subnet;
+    }
 
-    private static final Logger LOGGER = LogManager.getLogger(SampleController.class);
+    public String getIpRange() {
+        return ipRange;
+    }
+
+    public void setIpRange(String ipRange) {
+        this.ipRange = ipRange;
+    }
+
+    public String getGateway() {
+        return gateway;
+    }
 
-    @GetMapping
-    public ResponseEntity<String> get() {
-        LOGGER.info("Hello, World");
-        return ResponseEntity.ok("Hello, World");
+    public void setGateway(String gateway) {
+        this.gateway = gateway;
     }
 }
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Mount.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Mount.java
new file mode 100644
index 0000000..1c6ab46
--- /dev/null
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Mount.java
@@ -0,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.docker.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ *
+ */
+public class Mount {
+    
+    @JsonProperty("Type")
+    private String type;
+    
+    @JsonProperty("Name")
+    private String name;
+
+    @JsonProperty("Source")
+    private String source;
+
+    @JsonProperty("Destination")
+    private String destination;
+
+    @JsonProperty("Driver")
+    private String driver;
+
+    @JsonProperty("Mode")
+    private String mode;
+
+    @JsonProperty("RW")
+    private Boolean readWrite;
+
+    @JsonProperty("Propagation")
+    private String propagation;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public String getDestination() {
+        return destination;
+    }
+
+    public void setDestination(String destination) {
+        this.destination = destination;
+    }
+
+    public String getDriver() {
+        return driver;
+    }
+
+    public void setDriver(String driver) {
+        this.driver = driver;
+    }
+
+    public String getMode() {
+        return mode;
+    }
+
+    public void setMode(String mode) {
+        this.mode = mode;
+    }
+
+    public Boolean getReadWrite() {
+        return readWrite;
+    }
+
+    public void setReadWrite(Boolean readWrite) {
+        this.readWrite = readWrite;
+    }
+
+    public String getPropagation() {
+        return propagation;
+    }
+
+    public void setPropagation(String propagation) {
+        this.propagation = propagation;
+    }
+}
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
new file mode 100644
index 0000000..c542252
--- /dev/null
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/Network.java
@@ -0,0 +1,168 @@
+/*
+ * 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.docker.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ *
+ */
+public class Network {
+
+    @JsonProperty("IPAMConfig")
+    private String ipamConfig;
+
+    @JsonProperty("Links")
+    private String links;
+
+    @JsonProperty("Aliases")
+    private String aliases;
+
+    @JsonProperty("NetworkID")
+    private String networkId;
+
+    @JsonProperty("EndpointID")
+    private String endpointId;
+
+    @JsonProperty("Gateway")
+    private String gateway;
+
+    @JsonProperty("IPAddress")
+    private String ipAddress;
+
+    @JsonProperty("IPPrefixLen")
+    private Integer ipPrefixLen;
+
+    @JsonProperty("IPv6Gateway")
+    private String ipv6Gateway;
+
+    @JsonProperty("GlobalIPv6Address")
+    private String globalIPv6Address;
+
+    @JsonProperty("GlobalIPv6PrefixLen")
+    private Integer globalIPv6PrefixLen;
+
+    @JsonProperty("MacAddress")
+    private String macAddress;
+
+    @JsonProperty("DriverOpts")
+    private String driverOpts;
+
+    public String getIpamConfig() {
+        return ipamConfig;
+    }
+
+    public void setIpamConfig(String ipamConfig) {
+        this.ipamConfig = ipamConfig;
+    }
+
+    public String getLinks() {
+        return links;
+    }
+
+    public void setLinks(String links) {
+        this.links = links;
+    }
+
+    public String getAliases() {
+        return aliases;
+    }
+
+    public void setAliases(String aliases) {
+        this.aliases = aliases;
+    }
+
+    public String getNetworkId() {
+        return networkId;
+    }
+
+    public void setNetworkId(String networkId) {
+        this.networkId = networkId;
+    }
+
+    public String getEndpointId() {
+        return endpointId;
+    }
+
+    public void setEndpointId(String endpointId) {
+        this.endpointId = endpointId;
+    }
+
+    public String getGateway() {
+        return gateway;
+    }
+
+    public void setGateway(String gateway) {
+        this.gateway = gateway;
+    }
+
+    public String getIpAddress() {
+        return ipAddress;
+    }
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+    public Integer getIpPrefixLen() {
+        return ipPrefixLen;
+    }
+
+    public void setIpPrefixLen(Integer ipPrefixLen) {
+        this.ipPrefixLen = ipPrefixLen;
+    }
+
+    public String getIpv6Gateway() {
+        return ipv6Gateway;
+    }
+
+    public void setIpv6Gateway(String ipv6Gateway) {
+        this.ipv6Gateway = ipv6Gateway;
+    }
+
+    public String getGlobalIPv6Address() {
+        return globalIPv6Address;
+    }
+
+    public void setGlobalIPv6Address(String globalIPv6Address) {
+        this.globalIPv6Address = globalIPv6Address;
+    }
+
+    public Integer getGlobalIPv6PrefixLen() {
+        return globalIPv6PrefixLen;
+    }
+
+    public void setGlobalIPv6PrefixLen(Integer globalIPv6PrefixLen) {
+        this.globalIPv6PrefixLen = globalIPv6PrefixLen;
+    }
+
+    public String getMacAddress() {
+        return macAddress;
+    }
+
+    public void setMacAddress(String macAddress) {
+        this.macAddress = macAddress;
+    }
+
+    public String getDriverOpts() {
+        return driverOpts;
+    }
+
+    public void setDriverOpts(String driverOpts) {
+        this.driverOpts = driverOpts;
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
similarity index 58%
copy from log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
copy to log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
index ceeda38..7dfaa68 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/NetworkSettings.java
@@ -14,25 +14,25 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.logging.log4j.spring.cloud.config.sample.controller;
+package org.apache.logging.log4j.docker.model;
 
+import java.util.Map;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
-import java.util.List;
+/**
+ *
+ */
+public class NetworkSettings {
 
-@RestController
-@RequestMapping("/sample")
-public class SampleController {
+    @JsonProperty("Networks")
+    private Map<String, Network> networks;
 
-    private static final Logger LOGGER = LogManager.getLogger(SampleController.class);
+    public Map<String, Network> getNetworks() {
+        return networks;
+    }
 
-    @GetMapping
-    public ResponseEntity<String> get() {
-        LOGGER.info("Hello, World");
-        return ResponseEntity.ok("Hello, World");
+    public void setNetworks(Map<String, Network> networks) {
+        this.networks = networks;
     }
 }
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/PortDefinition.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/PortDefinition.java
new file mode 100644
index 0000000..66f6de9
--- /dev/null
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/model/PortDefinition.java
@@ -0,0 +1,69 @@
+/*
+ * 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.docker.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ *
+ */
+public class PortDefinition {
+
+    @JsonProperty("IP")
+    private String ip;
+    
+    @JsonProperty("PrivatePort")
+    private Integer privatePort;
+
+    @JsonProperty("PublicPort")
+    private Integer publicPort;
+
+    @JsonProperty("Type")
+    private String type;
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public Integer getPrivatePort() {
+        return privatePort;
+    }
+
+    public void setPrivatePort(Integer privatePort) {
+        this.privatePort = privatePort;
+    }
+
+    public Integer getPublicPort() {
+        return publicPort;
+    }
+
+    public void setPublicPort(Integer publicPort) {
+        this.publicPort = publicPort;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+}
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
index 2e29362..210aadd 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.flume.appender;
 import java.io.Serializable;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
@@ -35,6 +36,7 @@ import org.apache.logging.log4j.core.layout.Rfc5424Layout;
 import org.apache.logging.log4j.core.net.Facility;
 import org.apache.logging.log4j.core.util.Booleans;
 import org.apache.logging.log4j.core.util.Integers;
+import org.apache.logging.log4j.util.Timer;
 
 /**
  * An Appender that uses the Avro protocol to route events to Flume.
@@ -61,6 +63,9 @@ public final class FlumeAppender extends AbstractAppender implements FlumeEventF
 
     private final FlumeEventFactory factory;
 
+    private Timer timer = new Timer("FlumeEvent", 5000);
+    private volatile long count = 0;
+
     /**
      * Which Manager will be used by the appender instance.
      */
@@ -101,12 +106,27 @@ public final class FlumeAppender extends AbstractAppender implements FlumeEventF
                 }
             }
         }
+        timer.startOrResume();
         final FlumeEvent flumeEvent = factory.createEvent(event, mdcIncludes, mdcExcludes, mdcRequired, mdcPrefix,
             eventPrefix, compressBody);
         flumeEvent.setBody(getLayout().toByteArray(flumeEvent));
+        if (update()) {
+            String msg = timer.stop();
+            LOGGER.debug(msg);
+        } else {
+            timer.pause();
+        }
         manager.send(flumeEvent);
     }
 
+    private synchronized boolean update() {
+        if (++count == 5000) {
+            count = 0;
+            return true;
+        }
+        return false;
+    }
+
     @Override
     public boolean stop(final long timeout, final TimeUnit timeUnit) {
         setStopping();
diff --git a/log4j-spring-cloud-config/hs_err_pid81053.log b/log4j-spring-cloud-config/hs_err_pid81053.log
deleted file mode 100644
index 5f59865..0000000
--- a/log4j-spring-cloud-config/hs_err_pid81053.log
+++ /dev/null
@@ -1,697 +0,0 @@
-#
-# A fatal error has been detected by the Java Runtime Environment:
-#
-#  SIGSEGV (0xb) at pc=0x000000012a33e45f, pid=81053, tid=0x000000000000db07
-#
-# JRE version: Java(TM) SE Runtime Environment (8.0_144-b01) (build 1.8.0_144-b01)
-# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.144-b01 mixed mode bsd-amd64 compressed oops)
-# Problematic frame:
-# C  [libawt_lwawt.dylib+0x1c45f]  OGLSD_SetScratchSurface+0x49
-#
-# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
-#
-# If you would like to submit a bug report, please visit:
-#   http://bugreport.java.com/bugreport/crash.jsp
-# The crash happened outside the Java Virtual Machine in native code.
-# See problematic frame for where to report the bug.
-#
-
----------------  T H R E A D  ---------------
-
-Current thread (0x00007f7ff81cf000):  JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=56071, stack(0x00007000089d7000,0x0000700008ad7000)]
-
-siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000002
-
-Registers:
-RAX=0x00000000ffffffff, RBX=0x0000000000000002, RCX=0x0000000000000047, RDX=0x000000012a35f258
-RSP=0x0000700008ad6750, RBP=0x0000700008ad6770, RSI=0x00007f7ff71c3260, RDI=0x00007f7ff81cf1f8
-R8 =0x0000000000000c52, R9 =0xffffffff00000000, R10=0x00000001082be278, R11=0x00000001082c0180
-R12=0x0000000000000000, R13=0x0000700008ad6908, R14=0x00007f7ff81cf1f8, R15=0x00007f7ff81cf000
-RIP=0x000000012a33e45f, EFLAGS=0x0000000000010202, ERR=0x0000000000000004
-  TRAPNO=0x000000000000000e
-
-Top of Stack: (sp=0x0000700008ad6750)
-0x0000700008ad6750:   00007f7ff71c3260 0000000000000000
-0x0000700008ad6760:   00007f7ff81ebe10 00007f7ff81cf000
-0x0000700008ad6770:   0000700008ad67f0 000000012a35ed36
-0x0000700008ad6780:   00007f7ff641d600 0000000200000001
-0x0000700008ad6790:   00007f00f81ec298 0000000000000000
-0x0000700008ad67a0:   0000000000000000 0000000000000000
-0x0000700008ad67b0:   0000700008ad67f0 00007f7ff81ebe20
-0x0000700008ad67c0:   0000000000bdf250 00007f7ff81cf1f8
-0x0000700008ad67d0:   000000017bbc2bd8 0000000000000000
-0x0000700008ad67e0:   0000700008ad6988 00007f7ff81cf000
-0x0000700008ad67f0:   0000700008ad6840 00000001082be2ea
-0x0000700008ad6800:   00000005c021bbd8 0000000103138a00
-0x0000700008ad6810:   0000000000000064 0000000000000000
-0x0000700008ad6820:   0000000000000064 00007f7ff66ab4d8
-0x0000700008ad6830:   0000700008ad6890 0000000102f501e8
-0x0000700008ad6840:   0000700008ad6960 00000001082bfb3c
-0x0000700008ad6850:   0000000000000001 00007f7ff66abe80
-0x0000700008ad6860:   00000005c021bc00 00007f7ff81cf000
-0x0000700008ad6870:   00007f7ff81cf000 0000000106a13a00
-0x0000700008ad6880:   0000700008ad6988 00007f7ff81cf000
-0x0000700008ad6890:   0000700008ad68e0 00000001085af4e8
-0x0000700008ad68a0:   00000005c021bbd8 0000000108793266
-0x0000700008ad68b0:   0000700008ad6960 00000001082c01dc
-0x0000700008ad68c0:   ffffffffffffffff 0000000106f9cc78
-0x0000700008ad68d0:   000000010704dc28 0000000000000000
-0x0000700008ad68e0:   0000700008ad6960 00000001081122bd
-0x0000700008ad68f0:   0000700008ad6960 00000001081122bd
-0x0000700008ad6900:   00000001081122bd 00000005c021bbd8
-0x0000700008ad6910:   0000000000000001 00000005c021bc60
-0x0000700008ad6920:   0000700008ad6910 0000000106fa04a1
-0x0000700008ad6930:   0000700008ad6988 0000000106fa07f8
-0x0000700008ad6940:   0000000000000000 0000000106fa05a8 
-
-Instructions: (pc=0x000000012a33e45f)
-0x000000012a33e43f:   c0 e9 82 00 00 00 48 8b 5e 10 48 85 db 75 0e bf
-0x000000012a33e44f:   01 00 00 00 48 8d 15 67 7b 03 00 eb d6 49 89 fe
-0x000000012a33e45f:   4c 8b 3b 30 c0 e8 21 a6 02 00 49 8b 3f 49 89 c4
-0x000000012a33e46f:   48 8b 35 aa 02 06 00 30 c0 e8 51 a7 02 00 48 85 
-
-Register to memory mapping:
-
-RAX=0x00000000ffffffff is an unknown value
-RBX=0x0000000000000002 is an unknown value
-RCX=0x0000000000000047 is an unknown value
-RDX=0x000000012a35f258: Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer+0xb5c in /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt_lwawt.dylib at 0x000000012a322000
-RSP=0x0000700008ad6750 is pointing into the stack for thread: 0x00007f7ff81cf000
-RBP=0x0000700008ad6770 is pointing into the stack for thread: 0x00007f7ff81cf000
-RSI=0x00007f7ff71c3260 is an unknown value
-RDI=0x00007f7ff81cf1f8 is an unknown value
-R8 =0x0000000000000c52 is an unknown value
-R9 =0xffffffff00000000 is an unknown value
-R10=0x00000001082be278 is at entry_point+56 in (nmethod*)0x00000001082be0d0
-R11=0x00000001082c0180 is at entry_point+0 in (nmethod*)0x00000001082c0010
-R12=0x0000000000000000 is an unknown value
-R13=0x0000700008ad6908 is pointing into the stack for thread: 0x00007f7ff81cf000
-R14=0x00007f7ff81cf1f8 is an unknown value
-R15=0x00007f7ff81cf000 is a thread
-
-
-Stack: [0x00007000089d7000,0x0000700008ad7000],  sp=0x0000700008ad6750,  free space=1021k
-Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
-C  [libawt_lwawt.dylib+0x1c45f]  OGLSD_SetScratchSurface+0x49
-C  [libawt_lwawt.dylib+0x3cd36]  Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer+0x63a
-J 2700  sun.java2d.opengl.OGLRenderQueue.flushBuffer(JI)V (0 bytes) @ 0x00000001082be2ea [0x00000001082be240+0xaa]
-J 2695 C1 sun.java2d.opengl.OGLRenderQueue.flushBuffer()V (41 bytes) @ 0x00000001082bfb3c [0x00000001082bf8e0+0x25c]
-J 2694 C1 sun.java2d.opengl.OGLRenderQueue.access$100(Lsun/java2d/opengl/OGLRenderQueue;)V (5 bytes) @ 0x00000001082c01dc [0x00000001082c0180+0x5c]
-j  sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run()V+81
-v  ~StubRoutines::call_stub
-V  [libjvm.dylib+0x2ee70a]  JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x6ae
-V  [libjvm.dylib+0x2eeeae]  JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*)+0x164
-V  [libjvm.dylib+0x2ef05a]  JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*)+0x4a
-V  [libjvm.dylib+0x3497b1]  thread_entry(JavaThread*, Thread*)+0x7c
-V  [libjvm.dylib+0x56c0b3]  JavaThread::thread_main_inner()+0x9b
-V  [libjvm.dylib+0x56d7a0]  JavaThread::run()+0x1c2
-V  [libjvm.dylib+0x48baee]  java_start(Thread*)+0xf6
-C  [libsystem_pthread.dylib+0x3339]  _pthread_body+0x7e
-C  [libsystem_pthread.dylib+0x62a7]  _pthread_start+0x46
-C  [libsystem_pthread.dylib+0x2445]  thread_start+0xd
-C  0x0000000000000000
-
-Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
-J 2700  sun.java2d.opengl.OGLRenderQueue.flushBuffer(JI)V (0 bytes) @ 0x00000001082be278 [0x00000001082be240+0x38]
-J 2695 C1 sun.java2d.opengl.OGLRenderQueue.flushBuffer()V (41 bytes) @ 0x00000001082bfb3c [0x00000001082bf8e0+0x25c]
-J 2694 C1 sun.java2d.opengl.OGLRenderQueue.access$100(Lsun/java2d/opengl/OGLRenderQueue;)V (5 bytes) @ 0x00000001082c01dc [0x00000001082c0180+0x5c]
-j  sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run()V+81
-v  ~StubRoutines::call_stub
-
----------------  P R O C E S S  ---------------
-
-Java Threads: ( => current thread )
-  0x00007f7ff8229000 JavaThread "Worker-MBeans-192.168.51.28:6336" [_thread_blocked, id=45831, stack(0x000070000853c000,0x000070000863c000)]
-  0x00007f7ff8d64800 JavaThread "SwingWorker-pool-1-thread-10" daemon [_thread_blocked, id=122371, stack(0x000070000a22b000,0x000070000a32b000)]
-  0x00007f7ff8ce4000 JavaThread "SwingWorker-pool-1-thread-9" daemon [_thread_blocked, id=122883, stack(0x000070000a128000,0x000070000a228000)]
-  0x00007f7ff9db2800 JavaThread "SwingWorker-pool-1-thread-8" daemon [_thread_blocked, id=93807, stack(0x000070000a025000,0x000070000a125000)]
-  0x00007f7ff8ce3000 JavaThread "SwingWorker-pool-1-thread-7" daemon [_thread_blocked, id=129039, stack(0x0000700009481000,0x0000700009581000)]
-  0x00007f7ff78d7000 JavaThread "Worker-Overview-192.168.51.28:6336" [_thread_blocked, id=125031, stack(0x0000700009e1f000,0x0000700009f1f000)]
-  0x00007f7ff9853800 JavaThread "SwingWorker-pool-1-thread-6" daemon [_thread_blocked, id=92419, stack(0x0000700009d1c000,0x0000700009e1c000)]
-  0x00007f7ffa84b800 JavaThread "SwingWorker-pool-1-thread-5" daemon [_thread_blocked, id=92163, stack(0x0000700009c19000,0x0000700009d19000)]
-  0x00007f7ff6d3f000 JavaThread "SwingWorker-pool-1-thread-4" daemon [_thread_blocked, id=91911, stack(0x0000700009b16000,0x0000700009c16000)]
-  0x00007f7ff6d4e000 JavaThread "SwingWorker-pool-1-thread-3" daemon [_thread_blocked, id=91651, stack(0x0000700009a13000,0x0000700009b13000)]
-  0x00007f7ff857d000 JavaThread "SwingWorker-pool-1-thread-2" daemon [_thread_blocked, id=91399, stack(0x0000700009910000,0x0000700009a10000)]
-  0x00007f7ff981d800 JavaThread "Timer-192.168.51.28:6336" daemon [_thread_blocked, id=91139, stack(0x000070000980d000,0x000070000990d000)]
-  0x00007f7ff6d4d000 JavaThread "SwingWorker-pool-1-thread-1" daemon [_thread_blocked, id=126767, stack(0x000070000970a000,0x000070000980a000)]
-  0x00007f7ff9bd4000 JavaThread "GC Daemon" daemon [_thread_blocked, id=30223, stack(0x0000700008848000,0x0000700008948000)]
-  0x00007f7ff85e3800 JavaThread "RMI RenewClean-[192.168.51.28:39200]" daemon [_thread_blocked, id=6919, stack(0x0000700008745000,0x0000700008845000)]
-  0x00007f7ff85e3000 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=9991, stack(0x0000700008642000,0x0000700008742000)]
-  0x00007f7ff7b51000 JavaThread "TimerQueue" daemon [_thread_blocked, id=66575, stack(0x000070000906c000,0x000070000916c000)]
-  0x00007f7ff905b800 JavaThread "DestroyJavaVM" [_thread_blocked, id=8963, stack(0x0000700006df4000,0x0000700006ef4000)]
-  0x00007f7ff8242000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=73731, stack(0x0000700008de3000,0x0000700008ee3000)]
-  0x00007f7ff8240000 JavaThread "Thread-1" [_thread_blocked, id=57603, stack(0x0000700008ce0000,0x0000700008de0000)]
-  0x00007f7ff8234000 JavaThread "Thread-0" [_thread_blocked, id=73999, stack(0x0000700008bdd000,0x0000700008cdd000)]
-  0x00007f7ff7a22000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=75023, stack(0x0000700008ada000,0x0000700008bda000)]
-=>0x00007f7ff81cf000 JavaThread "Java2D Queue Flusher" daemon [_thread_in_native, id=56071, stack(0x00007000089d7000,0x0000700008ad7000)]
-  0x00007f7ff79c9000 JavaThread "AWT-Shutdown" [_thread_blocked, id=37419, stack(0x00007000083b6000,0x00007000084b6000)]
-  0x00007f7ff880d000 JavaThread "AppKit Thread" daemon [_thread_in_native, id=775, stack(0x00007ffeee257000,0x00007ffeeea57000)]
-  0x00007f7ff782c800 JavaThread "Service Thread" daemon [_thread_blocked, id=22019, stack(0x000070000812d000,0x000070000822d000)]
-  0x00007f7ff8801800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=15875, stack(0x000070000802a000,0x000070000812a000)]
-  0x00007f7ff782a000 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=16387, stack(0x0000700007f27000,0x0000700008027000)]
-  0x00007f7ff7827800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=15363, stack(0x0000700007e24000,0x0000700007f24000)]
-  0x00007f7ff7828000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=15107, stack(0x0000700007d21000,0x0000700007e21000)]
-  0x00007f7ff7826800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=17155, stack(0x0000700007c1e000,0x0000700007d1e000)]
-  0x00007f7ff7824000 JavaThread "Finalizer" daemon [_thread_blocked, id=13827, stack(0x0000700007b1b000,0x0000700007c1b000)]
-  0x00007f7ff8000000 JavaThread "Reference Handler" daemon [_thread_blocked, id=13315, stack(0x0000700007a18000,0x0000700007b18000)]
-
-Other Threads:
-  0x00007f7ff6807000 VMThread [stack: 0x0000700007915000,0x0000700007a15000] [id=13059]
-  0x00007f7ff782d800 WatcherThread [stack: 0x0000700008230000,0x0000700008330000] [id=22531]
-
-VM state:not at safepoint (normal execution)
-
-VM Mutex/Monitor currently owned by a thread: None
-
-Heap:
- PSYoungGen      total 51200K, used 1788K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
-  eden space 38912K, 4% used [0x0000000715580000,0x000000071573f398,0x0000000717b80000)
-  from space 12288K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719580000)
-  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
- ParOldGen       total 203264K, used 12973K [0x00000005c0000000, 0x00000005cc680000, 0x0000000715580000)
-  object space 203264K, 6% used [0x00000005c0000000,0x00000005c0cab7f0,0x00000005cc680000)
- Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-
-Card table byte_map: [0x0000000103f67000,0x0000000104f68000] byte_map_base: 0x0000000101167000
-
-Marking Bits: (ParMarkBitMap*) 0x00000001034f35d0
- Begin Bits: [0x000000011710a000, 0x000000011f10a000)
- End Bits:   [0x000000011f10a000, 0x000000012710a000)
-
-Polling page: 0x0000000101262000
-
-CodeCache: size=245760Kb used=18337Kb max_used=18452Kb free=227422Kb
- bounds [0x000000010810a000, 0x000000010933a000, 0x000000011710a000]
- total_blobs=5862 nmethods=5194 adapters=578
- compilation: enabled
-
-Compilation events (10 events):
-Event: 4290.961 Thread 0x00007f7ff8801800 nmethod 6284 0x0000000108e8de90 code [0x0000000108e8dfe0, 0x0000000108e8e0f0]
-Event: 4290.961 Thread 0x00007f7ff8801800 6285       3       sun.awt.geom.Edge::setEquivalence (6 bytes)
-Event: 4290.961 Thread 0x00007f7ff8801800 nmethod 6285 0x0000000108a05ad0 code [0x0000000108a05c20, 0x0000000108a05d70]
-Event: 4290.984 Thread 0x00007f7ff8801800 6286       1       javax.swing.table.JTableHeader::getDraggedColumn (5 bytes)
-Event: 4290.985 Thread 0x00007f7ff8801800 nmethod 6286 0x0000000109008ad0 code [0x0000000109008c20, 0x0000000109008d30]
-Event: 4290.985 Thread 0x00007f7ff8801800 6287       1       javax.swing.table.DefaultTableCellRenderer::revalidate (1 bytes)
-Event: 4290.985 Thread 0x00007f7ff8801800 nmethod 6287 0x0000000109008810 code [0x0000000109008960, 0x0000000109008a70]
-Event: 4291.010 Thread 0x00007f7ff8801800 6288       3       javax.swing.DefaultButtonModel::isSelected (15 bytes)
-Event: 4291.011 Thread 0x00007f7ff8801800 nmethod 6288 0x0000000109008490 code [0x0000000109008600, 0x00000001090087b0]
-Event: 4291.265 Thread 0x00007f7ff8801800 6289   !   3       sun.java2d.opengl.OGLSurfaceData::dispose (68 bytes)
-
-GC Heap History (10 events):
-Event: 3385.203 GC heap before
-{Heap before GC invocations=118 (full 19):
- PSYoungGen      total 46592K, used 30924K [0x0000000715580000, 0x0000000719280000, 0x00000007c0000000)
-  eden space 30720K, 99% used [0x0000000715580000,0x000000071737b3c0,0x0000000717380000)
-  from space 15872K, 1% used [0x0000000718300000,0x0000000718338000,0x0000000719280000)
-  to   space 15872K, 0% used [0x0000000717380000,0x0000000717380000,0x0000000718300000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-Event: 3385.210 GC heap after
-Heap after GC invocations=118 (full 19):
- PSYoungGen      total 46592K, used 2623K [0x0000000715580000, 0x0000000719500000, 0x00000007c0000000)
-  eden space 30720K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717380000)
-  from space 15872K, 16% used [0x0000000717380000,0x000000071760fe20,0x0000000718300000)
-  to   space 14848K, 0% used [0x0000000718680000,0x0000000718680000,0x0000000719500000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-}
-Event: 3385.768 GC heap before
-{Heap before GC invocations=119 (full 19):
- PSYoungGen      total 46592K, used 31986K [0x0000000715580000, 0x0000000719500000, 0x00000007c0000000)
-  eden space 30720K, 95% used [0x0000000715580000,0x000000071722cce8,0x0000000717380000)
-  from space 15872K, 16% used [0x0000000717380000,0x000000071760fe20,0x0000000718300000)
-  to   space 14848K, 0% used [0x0000000718680000,0x0000000718680000,0x0000000719500000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-Event: 3385.772 GC heap after
-Heap after GC invocations=119 (full 19):
- PSYoungGen      total 48128K, used 224K [0x0000000715580000, 0x0000000719380000, 0x00000007c0000000)
-  eden space 34816K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717780000)
-  from space 13312K, 1% used [0x0000000718680000,0x00000007186b8000,0x0000000719380000)
-  to   space 14336K, 0% used [0x0000000717780000,0x0000000717780000,0x0000000718580000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27101K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-}
-Event: 4286.871 GC heap before
-{Heap before GC invocations=120 (full 19):
- PSYoungGen      total 48128K, used 29718K [0x0000000715580000, 0x0000000719380000, 0x00000007c0000000)
-  eden space 34816K, 84% used [0x0000000715580000,0x000000071724d960,0x0000000717780000)
-  from space 13312K, 1% used [0x0000000718680000,0x00000007186b8000,0x0000000719380000)
-  to   space 14336K, 0% used [0x0000000717780000,0x0000000717780000,0x0000000718580000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27102K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-Event: 4286.917 GC heap after
-Heap after GC invocations=120 (full 19):
- PSYoungGen      total 49152K, used 988K [0x0000000715580000, 0x0000000719700000, 0x00000007c0000000)
-  eden space 34816K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717780000)
-  from space 14336K, 6% used [0x0000000717780000,0x0000000717877398,0x0000000718580000)
-  to   space 13824K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719700000)
- ParOldGen       total 190464K, used 134191K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 70% used [0x00000005c0000000,0x00000005c830bf38,0x00000005cba00000)
- Metaspace       used 27102K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-}
-Event: 4287.396 GC heap before
-{Heap before GC invocations=121 (full 19):
- PSYoungGen      total 49152K, used 35804K [0x0000000715580000, 0x0000000719700000, 0x00000007c0000000)
-  eden space 34816K, 100% used [0x0000000715580000,0x0000000717780000,0x0000000717780000)
-  from space 14336K, 6% used [0x0000000717780000,0x0000000717877398,0x0000000718580000)
-  to   space 13824K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719700000)
- ParOldGen       total 190464K, used 155513K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 81% used [0x00000005c0000000,0x00000005c97de748,0x00000005cba00000)
- Metaspace       used 27104K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-Event: 4287.401 GC heap after
-Heap after GC invocations=121 (full 19):
- PSYoungGen      total 51200K, used 1533K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
-  eden space 38912K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717b80000)
-  from space 12288K, 12% used [0x0000000718980000,0x0000000718aff550,0x0000000719580000)
-  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
- ParOldGen       total 190464K, used 155553K [0x00000005c0000000, 0x00000005cba00000, 0x0000000715580000)
-  object space 190464K, 81% used [0x00000005c0000000,0x00000005c97e8748,0x00000005cba00000)
- Metaspace       used 27104K, capacity 27892K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-}
-Event: 4291.027 GC heap before
-{Heap before GC invocations=122 (full 20):
- PSYoungGen      total 51200K, used 40099K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
-  eden space 38912K, 99% used [0x0000000715580000,0x0000000717b29a00,0x0000000717b80000)
-  from space 12288K, 12% used [0x0000000718980000,0x0000000718aff550,0x0000000719580000)
-  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
- ParOldGen       total 256512K, used 244235K [0x00000005c0000000, 0x00000005cfa80000, 0x0000000715580000)
-  object space 256512K, 95% used [0x00000005c0000000,0x00000005cee82f28,0x00000005cfa80000)
- Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-Event: 4291.264 GC heap after
-Heap after GC invocations=122 (full 20):
- PSYoungGen      total 51200K, used 0K [0x0000000715580000, 0x0000000719580000, 0x00000007c0000000)
-  eden space 38912K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000717b80000)
-  from space 12288K, 0% used [0x0000000718980000,0x0000000718980000,0x0000000719580000)
-  to   space 13312K, 0% used [0x0000000717b80000,0x0000000717b80000,0x0000000718880000)
- ParOldGen       total 203264K, used 12973K [0x00000005c0000000, 0x00000005cc680000, 0x0000000715580000)
-  object space 203264K, 6% used [0x00000005c0000000,0x00000005c0cab7f0,0x00000005cc680000)
- Metaspace       used 27120K, capacity 27896K, committed 28032K, reserved 1073152K
-  class space    used 3493K, capacity 3706K, committed 3712K, reserved 1048576K
-}
-
-Deoptimization events (10 events):
-Event: 1398.977 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000109279c84 method=sun.java2d.pipe.Region.getIntersectionXYXY(IIII)Lsun/java2d/pipe/Region; @ 72
-Event: 1401.232 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000001087026b4 method=java.util.HashMap$HashIterator.<init>(Ljava/util/HashMap;)V @ 45
-Event: 1428.089 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
-Event: 1466.745 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
-Event: 1509.345 Thread 0x00007f7ff8242000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001090f294c method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
-Event: 1510.643 Thread 0x00007f7ff8242000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000001089c653c method=sun.java2d.pipe.Region.endRow([I)V @ 82
-Event: 3382.720 Thread 0x00007f7ff880d000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000010931e72c method=sun.awt.PostEventQueue.flush()V @ 23
-Event: 3383.030 Thread 0x00007f7ff880d000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001088a1088 method=java.awt.EventQueue.coalescePeerEvent(Lsun/awt/PeerEvent;)Z @ 4
-Event: 4288.155 Thread 0x00007f7ff880d000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000001091f0458 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 56
-Event: 4288.157 Thread 0x00007f7ff880d000 Uncommon trap: reason=speculate_class_check action=maybe_recompile pc=0x00000001091f0458 method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 56
-
-Internal exceptions (10 events):
-Event: 1528.348 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5a238) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1531.336 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5b188) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1543.369 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5c0f0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1554.883 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5d020) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1562.910 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c5df50) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1578.936 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c60770) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1610.963 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c616a0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1684.990 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c625d0) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 1813.016 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c65f00) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-Event: 2069.046 Thread 0x00007f7ff85e3800 Exception <a 'java/net/ConnectException'> (0x0000000716c66fa8) thrown at [/Users/java_re/workspace/8-2-build-macosx-x86_64/jdk8u144/9417/hotspot/src/share/vm/prims/jni.cpp, line 709]
-
-Events (10 events):
-Event: 4287.396 Executing VM operation: ParallelGCFailedAllocation
-Event: 4287.401 Executing VM operation: ParallelGCFailedAllocation done
-Event: 4288.155 Thread 0x00007f7ff880d000 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00000001091f0458
-Event: 4288.155 Thread 0x00007f7ff880d000 DEOPT PACKING pc=0x00000001091f0458 sp=0x00007ffeeea52090
-Event: 4288.155 Thread 0x00007f7ff880d000 DEOPT UNPACKING pc=0x000000010810f229 sp=0x00007ffeeea51f98 mode 2
-Event: 4288.157 Thread 0x00007f7ff880d000 Uncommon trap: trap_request=0xffffff76 fr.pc=0x00000001091f0458
-Event: 4288.157 Thread 0x00007f7ff880d000 DEOPT PACKING pc=0x00000001091f0458 sp=0x00007ffeeea52090
-Event: 4288.157 Thread 0x00007f7ff880d000 DEOPT UNPACKING pc=0x000000010810f229 sp=0x00007ffeeea51f98 mode 2
-Event: 4291.026 Executing VM operation: ParallelGCFailedAllocation
-Event: 4291.264 Executing VM operation: ParallelGCFailedAllocation done
-
-
-Dynamic libraries:
-0x000000001cbdb000 	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
-0x000000001cbdb000 	/System/Library/Frameworks/Security.framework/Versions/A/Security
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
-0x000000001cbdb000 	/usr/lib/libz.1.dylib
-0x000000001cbdb000 	/usr/lib/libSystem.B.dylib
-0x000000001cbdb000 	/usr/lib/libobjc.A.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
-0x000000001cbdb000 	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
-0x000000001cbdb000 	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
-0x000000001cbdb000 	/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
-0x000000001cbdb000 	/System/Library/Frameworks/Metal.framework/Versions/A/Metal
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
-0x000000001cbdb000 	/usr/lib/libenergytrace.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
-0x000000001cbdb000 	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
-0x000000001cbdb000 	/System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
-0x000000001cbdb000 	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
-0x000000001cbdb000 	/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
-0x000000001cbdb000 	/usr/lib/libicucore.A.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
-0x000000001cbdb000 	/usr/lib/libauto.dylib
-0x000000001cbdb000 	/usr/lib/libxml2.2.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
-0x000000001cbdb000 	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
-0x000000001cbdb000 	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
-0x000000001cbdb000 	/usr/lib/liblangid.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
-0x000000001cbdb000 	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
-0x000000001cbdb000 	/usr/lib/libDiagnosticMessagesClient.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
-0x000000001cbdb000 	/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
-0x000000001cbdb000 	/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
-0x000000001cbdb000 	/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
-0x000000001cbdb000 	/usr/lib/libarchive.2.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
-0x000000001cbdb000 	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
-0x000000001cbdb000 	/usr/lib/libCRFSuite.dylib
-0x000000001cbdb000 	/usr/lib/libc++.1.dylib
-0x000000001cbdb000 	/usr/lib/libc++abi.dylib
-0x000000001cbdb000 	/usr/lib/system/libcache.dylib
-0x000000001cbdb000 	/usr/lib/system/libcommonCrypto.dylib
-0x000000001cbdb000 	/usr/lib/system/libcompiler_rt.dylib
-0x000000001cbdb000 	/usr/lib/system/libcopyfile.dylib
-0x000000001cbdb000 	/usr/lib/system/libcorecrypto.dylib
-0x000000001cbdb000 	/usr/lib/system/libdispatch.dylib
-0x000000001cbdb000 	/usr/lib/system/libdyld.dylib
-0x000000001cbdb000 	/usr/lib/system/libkeymgr.dylib
-0x000000001cbdb000 	/usr/lib/system/liblaunch.dylib
-0x000000001cbdb000 	/usr/lib/system/libmacho.dylib
-0x000000001cbdb000 	/usr/lib/system/libquarantine.dylib
-0x000000001cbdb000 	/usr/lib/system/libremovefile.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_asl.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_blocks.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_c.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_configuration.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_coreservices.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_darwin.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_dnssd.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_info.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_m.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_malloc.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_networkextension.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_notify.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_sandbox.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_secinit.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_kernel.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_platform.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_pthread.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_symptoms.dylib
-0x000000001cbdb000 	/usr/lib/system/libsystem_trace.dylib
-0x000000001cbdb000 	/usr/lib/system/libunwind.dylib
-0x000000001cbdb000 	/usr/lib/system/libxpc.dylib
-0x000000001cbdb000 	/usr/lib/libbsm.0.dylib
-0x000000001cbdb000 	/usr/lib/system/libkxld.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
-0x000000001cbdb000 	/usr/lib/libOpenScriptingUtil.dylib
-0x000000001cbdb000 	/usr/lib/libcoretls.dylib
-0x000000001cbdb000 	/usr/lib/libcoretls_cfhelpers.dylib
-0x000000001cbdb000 	/usr/lib/libpam.2.dylib
-0x000000001cbdb000 	/usr/lib/libsqlite3.dylib
-0x000000001cbdb000 	/usr/lib/libxar.1.dylib
-0x000000001cbdb000 	/usr/lib/libbz2.1.0.dylib
-0x000000001cbdb000 	/usr/lib/liblzma.5.dylib
-0x000000001cbdb000 	/usr/lib/libnetwork.dylib
-0x000000001cbdb000 	/usr/lib/libapple_nghttp2.dylib
-0x000000001cbdb000 	/usr/lib/libpcap.A.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
-0x000000001cbdb000 	/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
-0x000000001cbdb000 	/System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
-0x000000001cbdb000 	/usr/lib/libmecabra.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
-0x000000001cbdb000 	/usr/lib/libcompression.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
-0x000000001cbdb000 	/System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary
-0x000000001cbdb000 	/usr/lib/libMobileGestalt.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
-0x000000001cbdb000 	/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
-0x000000001cbdb000 	/usr/lib/libFosl_dynamic.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
-0x000000001cbdb000 	/usr/lib/libcups.2.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
-0x000000001cbdb000 	/System/Library/Frameworks/GSS.framework/Versions/A/GSS
-0x000000001cbdb000 	/usr/lib/libresolv.9.dylib
-0x000000001cbdb000 	/usr/lib/libiconv.2.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
-0x000000001cbdb000 	/usr/lib/libheimdal-asn1.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
-0x000000001cbdb000 	/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
-0x000000001cbdb000 	/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
-0x000000001cbdb000 	/usr/lib/libutil.dylib
-0x000000001cbdb000 	/usr/lib/libcharset.1.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard
-0x000000001cbdb000 	/usr/lib/libmecab.1.0.0.dylib
-0x000000001cbdb000 	/usr/lib/libgermantok.dylib
-0x000000001cbdb000 	/usr/lib/libThaiTokenizer.dylib
-0x000000001cbdb000 	/usr/lib/libChineseTokenizer.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
-0x000000001cbdb000 	/usr/lib/libcmph.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
-0x000000001cbdb000 	/usr/lib/libxslt.1.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
-0x000000001cbdb000 	/usr/lib/libate.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AuthKit.framework/Versions/A/AuthKit
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
-0x000000001cbdb000 	/System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
-0x000000001cbdb000 	/System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CorePhoneNumbers.framework/Versions/A/CorePhoneNumbers
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleIDAuthSupport.framework/Versions/A/AppleIDAuthSupport
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/KeychainCircle.framework/Versions/A/KeychainCircle
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/ROCKit.framework/Versions/A/ROCKit
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
-0x000000001cbdb000 	/System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
-0x0000000102c00000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/libjvm.dylib
-0x000000001cbdb000 	/usr/lib/libstdc++.6.dylib
-0x000000010121f000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libverify.dylib
-0x000000010122d000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libjava.dylib
-0x000000010126b000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libzip.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport
-0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/JavaNativeFoundation
-0x000000001cbdb000 	/System/Library/Frameworks/JavaVM.framework/Versions/A/JavaVM
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/JavaLaunching.framework/Versions/A/JavaLaunching
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
-0x000000001cbdb000 	/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
-0x000000012a1ae000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt.dylib
-0x000000012a256000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/./libmlib_image.dylib
-0x000000012a322000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libawt_lwawt.dylib
-0x000000012a3d9000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/./libosxapp.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
-0x000000001cbdb000 	/System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MobileAsset.framework/Versions/A/MobileAsset
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/StreamingZip.framework/Versions/A/StreamingZip
-0x000000001cbdb000 	/System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreAVCHD.framework/Versions/A/CoreAVCHD
-0x000000001cbdb000 	/System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/Mangrove.framework/Versions/A/Mangrove
-0x000000001cbdb000 	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
-0x000000001cbdb000 	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
-0x000000001cbdb000 	/usr/lib/libspindump.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
-0x000000001cbdb000 	/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/Libraries/libCGInterfaces.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
-0x000000001cbdb000 	/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/IOAccelMemoryInfo.framework/Versions/A/IOAccelMemoryInfo
-0x000000001cbdb000 	/System/Library/Extensions/AppleIntelKBLGraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsMTLDriver
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/3902/Libraries/libmetal_timestamp.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/SystemAdministration.framework/Versions/A/SystemAdministration
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppContainer.framework/Versions/A/AppContainer
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/SecCodeWrapper.framework/Versions/A/SecCodeWrapper
-0x000000001cbdb000 	/usr/lib/libsandbox.1.dylib
-0x000000001cbdb000 	/usr/lib/libMatch.1.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/DiskManagement
-0x000000001cbdb000 	/System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Versions/A/LoginUICore
-0x000000001cbdb000 	/usr/lib/libCoreStorage.dylib
-0x000000001cbdb000 	/usr/lib/libcsfde.dylib
-0x000000001cbdb000 	/usr/lib/libodfde.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
-0x000000001cbdb000 	/System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/EFILogin.framework/Versions/A/EFILogin
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/ProtectedCloudStorage.framework/Versions/A/ProtectedCloudStorage
-0x000000001cbdb000 	/usr/lib/libcurl.4.dylib
-0x000000001cbdb000 	/usr/lib/libcrypto.42.dylib
-0x000000001cbdb000 	/usr/lib/libssl.44.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
-0x000000001cbdb000 	/usr/lib/libsasl2.2.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/CoreDaemon.framework/Versions/B/CoreDaemon
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/AppleSRP.framework/Versions/A/AppleSRP
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/ViewBridge.framework/Versions/A/ViewBridge
-0x000000012a9b1000 	/usr/lib/libobjc-trampolines.dylib
-0x000000012d20d000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libfontmanager.dylib
-0x000000012d274000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libosxui.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
-0x000000001cbdb000 	/System/Library/Extensions/AppleIntelKBLGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsGLDriver
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/GPUSupport.framework/Versions/A/Libraries/libGPUSupportMercury.dylib
-0x000000012dd1b000 	/System/Library/Extensions/AMDRadeonX4000GLDriver.bundle/Contents/MacOS/AMDRadeonX4000GLDriver
-0x000000001cbdb000 	/System/Library/Extensions/AMDRadeonX4000GLDriver.bundle/Contents/MacOS/ATIRadeonX4000SCLib.dylib
-0x000000001cbdb000 	/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLRendererFloat.bundle/GLRendererFloat
-0x000000001cbdb000 	/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libcldcpuengine.dylib
-0x000000001cbdb000 	/usr/lib/libcrypto.35.dylib
-0x000000013470e000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libnet.dylib
-0x0000000134725000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libnio.dylib
-0x000000012b8fc000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libdcpr.dylib
-0x000000001cbdb000 	/System/Library/PrivateFrameworks/login.framework/Versions/A/login
-0x000000017ac23000 	/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libsunec.dylib
-
-VM Arguments:
-jvm_args: -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home -Xms8m -Djconsole.showOutputViewer 
-java_command: sun.tools.jconsole.JConsole
-java_class_path (initial): /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/classes
-Launcher Type: SUN_STANDARD
-
-Environment Variables:
-JAVA_HOME=/Library/Java/JavaVirtualMachines/Java8/Contents/Home
-PATH=/Users/rgoers/.nvm/versions/node/v7.0.0/bin:/usr/local/opt/protobuf@2.5/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/Library/PostgreSQL/11/bin:/opt/subversion/bin:/opt/ant/ant19/bin:/Users/rgoers/bin:/usr/local/git/bin:/opt/maven/maven/bin:/Library/Java/JavaVirtualMachines/Java8/Contents/Home/bin:/opt/gradle/gradle/bin:/opt/roo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/usr/local/MacGPG2/bin:/opt/X11/bin
-SHELL=/bin/bash
-DISPLAY=/private/tmp/com.apple.launchd.GVYLrXVX6R/org.macosforge.xquartz:0
-
-Signal Handlers:
-SIGSEGV: [libjvm.dylib+0x5b26e5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
-SIGBUS: [libjvm.dylib+0x5b26e5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGFPE: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGPIPE: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGXFSZ: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGILL: [libjvm.dylib+0x489100], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGUSR1: SIG_DFL, sa_mask[0]=11011111011111100000000111000110, sa_flags=none
-SIGUSR2: [libjvm.dylib+0x488c1e], sa_mask[0]=00000000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
-SIGHUP: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGINT: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGTERM: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-SIGQUIT: [libjvm.dylib+0x4871f5], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
-
-
----------------  S Y S T E M  ---------------
-
-OS:Bsduname:Darwin 18.2.0 Darwin Kernel Version 18.2.0: Fri Oct  5 19:41:49 PDT 2018; root:xnu-4903.221.2~2/RELEASE_X86_64 x86_64
-rlimit: STACK 8192k, CORE 0k, NPROC 4256, NOFILE 10240, AS infinity
-load average:2.83 2.52 2.64
-
-CPU:total 12 (initial active 12) (6 cores per cpu, 2 threads per core) family 6 model 158 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
-
-Memory: 4k page, physical 33554432k(62404k free)
-
-/proc/meminfo:
-
-
-vm_info: Java HotSpot(TM) 64-Bit Server VM (25.144-b01) for bsd-amd64 JRE (1.8.0_144-b01), built on Jul 21 2017 22:07:42 by "java_re" with gcc 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
-
-time: Wed Feb 13 15:21:15 2019
-elapsed time: 4291 seconds (0d 1h 11m 31s)
-
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
index c774202..89d1ee9 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/Dockerfile
@@ -9,8 +9,8 @@ RUN mkdir /service
 ADD ./target/sampleapp.jar /service/
 WORKDIR /service
 
-EXPOSE 8080 5005
-#EXPOSE 8080
+#EXPOSE 8080 5005
+EXPOSE 8080
 
-CMD java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005" -jar sampleapp.jar
-#CMD java -jar sampleapp.jar
+#CMD java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005" -jar sampleapp.jar
+CMD java -jar -Xmx2G sampleapp.jar
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
index 61e1d4d..10a5b13 100755
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/docker-compose.yml
@@ -1,6 +1,20 @@
 version: "3"
 services:
+  socat:
+    container_name: socat
+    image: bobrik/socat
+    command: TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock
+    expose:
+      - "1234"
+    volumes:
+      - /var/run/docker.sock:/var/run/docker.sock
+    networks:
+      sample_network:
+        aliases:
+          - socat
+
   rabbitmq:
+    container_name: rabbit
     image: rabbitmq:3-management-alpine
     expose:
       - "5672"
@@ -12,12 +26,47 @@ services:
       - ./init/rabbit/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro
       - ./init/rabbit/definitions.json:/etc/rabbitmq/definitions.json:ro
     networks:
-      sample_app:
+      sample_network:
         aliases:
           - rabbitmq
 
+  fluent-bit:
+    container_name: fluent-bit
+    image: fluent/fluent-bit:latest
+    expose:
+      - "2020"
+      - "24221"
+      - "24224"
+    ports:
+      - "24224:24224"
+    volumes:
+      - ./init/fluent-bit/fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
+    networks:
+      sample_network:
+        aliases:
+          - fluent-bit
+
+  flume:
+    container_name: flume
+    image: probablyfine/flume:latest
+    expose:
+      - "5050"
+    environment:
+      FLUME_AGENT_NAME: forwarder
+      FLUME_JAVA_OPTS: -Dlog4j.configuration=file:///opt/flume-config/log4j.properties
+    volumes:
+      - ./init/flume/start-flume.sh:/opt/flume/bin/start-flume
+      - ./init/flume/flume.conf:/opt/flume-config/flume.conf
+      - ./init/flume/flume-env.sh:/opt/flume-config/flume-env.sh
+      - ./init/flume/log4j.properties:/opt/flume-config/log4j.properties
+      - ~/flume-logs:/var/log/flume
+    networks:
+      sample_network:
+        aliases:
+          - flume
+
 networks:
-  sample_app:
+  sample_network:
 
 volumes:
   pgdata:
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/fluent-bit/fluent-bit.conf b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/fluent-bit/fluent-bit.conf
new file mode 100644
index 0000000..170c7bd
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/fluent-bit/fluent-bit.conf
@@ -0,0 +1,28 @@
+[SERVICE]
+    Log_Level   debug
+
+    HTTP_Server  On
+    HTTP_Listen  0.0.0.0
+    HTTP_Port    2020
+    Parsers_File parsers.conf
+
+[INPUT]
+    Name        tcp
+    Listen      0.0.0.0
+    Port        24221
+    Chunk_Size  32
+    Buffer_Size 64
+
+[INPUT]
+    Name              tail
+    Tag               kube.*
+    Path              /var/log/containers/*.log
+    Parser            docker
+    DB                /var/log/flb_kube.db
+    Mem_Buf_Limit     5MB
+    Skip_Long_Lines   On
+    Refresh_Interval  10
+
+[OUTPUT]
+    Name   stdout
+    Match  *
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume-env.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume-env.sh
new file mode 100644
index 0000000..d56d932
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume-env.sh
@@ -0,0 +1 @@
+JAVA_OPTS="-Xmx200m"
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume.conf b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume.conf
new file mode 100644
index 0000000..d625a76
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/flume.conf
@@ -0,0 +1,32 @@
+# Accepts incoming requests and forwards them
+
+# Name the components on this agent
+forwarder.sources = avro
+forwarder.sinks = sink1
+forwarder.channels = channel1
+
+# Describe/configure the source
+forwarder.sources.avro.type = avro
+forwarder.sources.avro.bind = 0.0.0.0
+forwarder.sources.avro.port = 5050
+forwarder.sources.avro.compression-type = none
+
+
+# Describe the sink
+forwarder.sinks.sink1.type = logger
+
+forwarder.sinks.sink1.type = file_roll
+forwarder.sinks.sink1.sink.directory = /var/log/flume/
+forwarder.sinks.sink1.sink.pathManager.extension=log
+forwarder.sinks.sink1.channel = channel1
+forwarder.sinks.sink1.sink.rollInterval = 300
+forwarder.sinks.sink1.sink.serializer = text
+
+# Use a channel which buffers events in memory
+forwarder.channels.channel1.type = memory
+forwarder.channels.channel1.capacity = 100000
+forwarder.channels.channel1.transactionCapacity = 10000
+
+# Bind the source and sink to the channel
+forwarder.sources.avro.channels = channel1
+forwarder.sinks.sink1.channel = channel1
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/log4j.properties b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/log4j.properties
new file mode 100644
index 0000000..05928f6
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/log4j.properties
@@ -0,0 +1,10 @@
+
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=INFO, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/start-flume.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/start-flume.sh
new file mode 100755
index 0000000..071d62c
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/init/flume/start-flume.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+FLUME_CONF_DIR=/opt/flume-config
+
+[[ -d "${FLUME_CONF_DIR}"  ]]  || { echo "Flume config file not mounted in /opt/flume-config";  exit 1; }
+[[ -z "${FLUME_AGENT_NAME}" ]] && { echo "FLUME_AGENT_NAME required"; exit 1; }
+
+echo "Starting flume agent : ${FLUME_AGENT_NAME}"
+
+flume-ng agent \
+  -c ${FLUME_CONF_DIR} \
+  -f ${FLUME_CONF_DIR}/flume.conf \
+  -n ${FLUME_AGENT_NAME} \
+  $*
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
index 10a1fc9..4178b12 100755
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/docker/restartApp.sh
@@ -1,10 +1,10 @@
 #!/usr/bin/env bash
 imageName=sampleapp
 containerName=app-container
-networkName=docker_sampleapp
+networkName=docker_sample_network
 debug_port=5005
-debug_expose="-p $debug_port:$debug_port"
-exposed_ports="-p 8080:10010 $debug_expose"
+#debug_expose="-p $debug_port:$debug_port"
+exposed_ports="-p 8080:4567 $debug_expose"
 
 mvn clean package -DskipTests=true
 
@@ -15,4 +15,6 @@ docker rm -f $containerName
 
 echo Run new container...
 docker run  -e "SERVICE_PARAMS=--spring.config.location=classpath:/,classpath:/application-local-docker.yml" \
-    --network=$networkName -d $exposed_ports --name $containerName $imageName
\ No newline at end of file
+    -e "DOCKER_URI=http://socat:1234" \
+    --network=$networkName -d $exposed_ports --name $containerName -h sample $imageName
+#    --log-driver=fluentd --log-opt fluentd-address=host.docker.internal:24224 \
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
index 639a091..0122205 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/pom.xml
@@ -22,6 +22,11 @@
   </properties>
 
   <dependencies>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-jcl</artifactId>
+      <version>${project.version}</version>
+    </dependency>
     <!-- Spring Boot dependencies -->
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -81,10 +86,44 @@
       </exclusions>
     </dependency>
     <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-docker</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <!-- Required for Async Loggers -->
+    <dependency>
+      <groupId>com.lmax</groupId>
+      <artifactId>disruptor</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <!-- Required for Flume -->
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-flume-ng</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.flume</groupId>
+      <artifactId>flume-ng-sdk</artifactId>
+      <version>1.9.0</version>
+    </dependency>
+    <!-- Required for Flume embedded -->
+    <dependency>
+      <groupId>org.apache.flume</groupId>
+      <artifactId>flume-ng-embedded-agent</artifactId>
+      <version>1.9.0</version>
+    </dependency>
+    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>3.1.0</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <classifier>tests</classifier>
+      <version>${project.version}</version>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
index ceeda38..3d47218 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/java/org/apache/logging/log4j/spring/cloud/config/sample/controller/SampleController.java
@@ -17,22 +17,101 @@
 package org.apache.logging.log4j.spring.cloud.config.sample.controller;
 
 
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
+import org.apache.logging.log4j.util.Timer;
+
+
 
 @RestController
-@RequestMapping("/sample")
 public class SampleController {
 
     private static final Logger LOGGER = LogManager.getLogger(SampleController.class);
+    private static int MAX_MESSAGES = 100000;
+
+    @GetMapping("/log")
+    public ResponseEntity<String> get(@RequestParam(name="threads", defaultValue="1") int threads,
+        @RequestParam(name="messages", defaultValue="100000") int count) {
+        if (threads < 1) {
+            threads = 1;
+        }
+        if (count < threads) {
+            count = threads * 10000;
+        }
+        if ((count * threads) > MAX_MESSAGES) {
+            count = MAX_MESSAGES / threads;
+        }
+        String msg = "";
+        if (threads == 1) {
+            Timer timer = new Timer("sample");
+            timer.start();
+            for (int n = 0; n < count; ++n) {
+                LOGGER.info("Log record " + n);
+            }
+            timer.stop();
+            StringBuilder sb = new StringBuilder("Elapsed time = ");
+            timer.formatTo(sb);
+            msg = sb.toString();
+        } else {
+            ExecutorService service = Executors.newFixedThreadPool(threads);
+            Timer timer = new Timer("sample");
+            timer.start();
+            for (int i = 0; i < threads; ++i) {
+                service.submit(new Worker(i, count));
+            }
+            service.shutdown();
+            try {
+                service.awaitTermination(2, TimeUnit.MINUTES);
+                timer.stop();
+                StringBuilder sb = new StringBuilder("Elapsed time = ");
+                timer.formatTo(sb);
+                msg = sb.toString();
+            } catch (InterruptedException ex) {
+                msg = "Max time exceeded";
+            }
+        }
+
+        return ResponseEntity.ok(msg);
+    }
+
+    @GetMapping("/exception")
+    public ResponseEntity<String> exception() {
+        Throwable t = new Throwable("This is a test");
+        LOGGER.info("This is a test", t);
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        PrintStream ps = new PrintStream(os);
+        t.printStackTrace(ps);
+        String stackTrace = os.toString();
+        stackTrace = stackTrace.replaceAll("\n", "<br>");
+
+        //LOGGER.info("Hello, World");
+        return ResponseEntity.ok(stackTrace);
+    }
+
+    private static class Worker implements Runnable {
+
+        private final int id;
+        private final int count;
+
+        public Worker(int id, int count) {
+            this.id = id;
+            this.count = count;
+        }
 
-    @GetMapping
-    public ResponseEntity<String> get() {
-        LOGGER.info("Hello, World");
-        return ResponseEntity.ok("Hello, World");
+        public void run() {
+            String prefix = "Thread " + id + " record ";
+            for (int i = 0; i < count; ++i) {
+                LOGGER.info(prefix + i);
+            }
+        }
     }
 }
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
index 3ea82d1..102e941 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/bootstrap.yml
@@ -1,5 +1,5 @@
 #Spring Cloud (Hystrix) config goes here.
 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 30000
 logging:
-  config: http://host.docker.internal:8888/ConfigService/resource/samppleapp/default/master/log4j2.xml
+  config: http://host.docker.internal:8888/ConfigService/samppleapp/default/master/log4j2.xml
 
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
index c76fb7a..33e4766 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application/src/main/resources/log4j2.component.properties
@@ -1,3 +1,3 @@
-log4j.configurationFile=http://host.docker.internal:8888/ConfigService/resource/sampleapp/default/master/log4j2.xml
+log4j.configurationFile=http://host.docker.internal:8888/ConfigService/sampleapp/default/master/log4j2.xml
 log4j2.configurationUserName=guest
 log4j2.configurationPassword=guest
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt
deleted file mode 100644
index 22fdad5..0000000
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/mvn.txt
+++ /dev/null
@@ -1,135 +0,0 @@
-[INFO] Scanning for projects...
-[INFO]                                                                         
-[INFO] ------------------------------------------------------------------------
-[INFO] Building Log4j Sample Configuration Service 2.1.2.RELEASE
-[INFO] ------------------------------------------------------------------------
-Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
-Downloading: http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
-Downloading: http://repository.nextiva.xyz:8081/nexus/content/repositories/apache-snapshots/org/apache/logging/log4j/log4j-spring-cloud-config-server/2.12.0-SNAPSHOT/maven-metadata.xml
-


Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-spring-cloud-config/2.12.0-SNAPSHOT/maven-metadata.xml
-
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j/2.12.0-SNAPSHOT/maven-metadata.xml
-
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-api/2.12.0-SNAPSHOT/maven-metadata.xml
-
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-core/2.12.0-SNAPSHOT/maven-metadata.xml
-
Downloading: https://repo.spring.io/snapshot/org/apache/logging/log4j/log4j-slf4j-impl/2.12.0-SNAPSHOT/maven-metadata.xml
-
[INFO] 
-[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ log4j-spring-cloud-config-sample-server ---
-[INFO] org.apache.logging.log4j.samples:log4j-spring-cloud-config-sample-server:jar:2.1.2.RELEASE
-[INFO] +- org.springframework.boot:spring-boot-starter-log4j2:jar:2.1.2.RELEASE:compile
-[INFO] |  +- org.apache.logging.log4j:log4j-jul:jar:2.11.1:compile
-[INFO] |  \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
-[INFO] +- org.springframework.cloud:spring-cloud-starter-config:jar:2.1.0.RELEASE:compile
-[INFO] |  +- org.springframework.cloud:spring-cloud-starter:jar:2.1.0.RELEASE:compile
-[INFO] |  |  +- org.springframework.cloud:spring-cloud-context:jar:2.1.0.RELEASE:compile
-[INFO] |  |  \- org.springframework.cloud:spring-cloud-commons:jar:2.1.0.RELEASE:compile
-[INFO] |  +- org.springframework.cloud:spring-cloud-config-client:jar:2.1.0.RELEASE:compile
-[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:2.1.2.RELEASE:compile
-[INFO] |  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
-[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.9.8:compile
-[INFO] |     \- com.fasterxml.jackson.core:jackson-core:jar:2.9.8:compile
-[INFO] +- org.springframework.cloud:spring-cloud-config-server:jar:2.1.0.RELEASE:compile
-[INFO] |  +- org.springframework.security:spring-security-crypto:jar:5.1.3.RELEASE:compile
-[INFO] |  +- org.springframework.security:spring-security-rsa:jar:1.0.7.RELEASE:compile
-[INFO] |  |  \- org.bouncycastle:bcpkix-jdk15on:jar:1.60:compile
-[INFO] |  |     \- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile
-[INFO] |  +- org.eclipse.jgit:org.eclipse.jgit:jar:5.1.3.201810200350-r:compile
-[INFO] |  |  +- com.jcraft:jsch:jar:0.1.54:compile
-[INFO] |  |  +- com.jcraft:jzlib:jar:1.1.1:compile
-[INFO] |  |  \- com.googlecode.javaewah:JavaEWAH:jar:1.1.6:compile
-[INFO] |  +- org.eclipse.jgit:org.eclipse.jgit.http.apache:jar:5.1.3.201810200350-r:compile
-[INFO] |  |  +- org.apache.httpcomponents:httpclient:jar:4.5.6:compile
-[INFO] |  |  |  \- commons-codec:commons-codec:jar:1.11:compile
-[INFO] |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.10:compile
-[INFO] |  \- org.yaml:snakeyaml:jar:1.23:compile
-[INFO] +- org.springframework.cloud:spring-cloud-config-monitor:jar:2.1.0.RELEASE:compile
-[INFO] |  \- org.springframework.cloud:spring-cloud-bus:jar:2.1.0.RELEASE:compile
-[INFO] |     +- org.springframework.cloud:spring-cloud-stream:jar:2.1.0.RELEASE:compile
-[INFO] |     |  +- org.springframework.boot:spring-boot-starter-validation:jar:2.1.2.RELEASE:compile
-[INFO] |     |  +- org.springframework:spring-messaging:jar:5.1.4.RELEASE:compile
-[INFO] |     |  +- org.springframework.integration:spring-integration-jmx:jar:5.1.2.RELEASE:compile
-[INFO] |     |  +- org.springframework:spring-tuple:jar:1.0.0.RELEASE:compile
-[INFO] |     |  |  \- com.esotericsoftware:kryo-shaded:jar:3.0.3:compile
-[INFO] |     |  |     \- com.esotericsoftware:minlog:jar:1.3.0:compile
-[INFO] |     |  +- org.springframework.integration:spring-integration-tuple:jar:1.0.0.RELEASE:compile
-[INFO] |     |  +- org.springframework.retry:spring-retry:jar:1.2.3.RELEASE:compile
-[INFO] |     |  \- org.springframework.cloud:spring-cloud-function-context:jar:2.0.0.RELEASE:compile
-[INFO] |     |     \- org.springframework.cloud:spring-cloud-function-core:jar:2.0.0.RELEASE:compile
-[INFO] |     \- org.springframework.integration:spring-integration-core:jar:5.1.2.RELEASE:compile
-[INFO] |        +- org.springframework:spring-tx:jar:5.1.4.RELEASE:compile
-[INFO] |        \- io.projectreactor:reactor-core:jar:3.2.5.RELEASE:compile
-[INFO] |           \- org.reactivestreams:reactive-streams:jar:1.0.2:compile
-[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:2.1.2.RELEASE:compile
-[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.1.2.RELEASE:compile
-[INFO] |  |  \- javax.annotation:javax.annotation-api:jar:1.3.2:compile
-[INFO] |  +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:2.1.2.RELEASE:compile
-[INFO] |  |  +- org.springframework.boot:spring-boot-actuator:jar:2.1.2.RELEASE:compile
-[INFO] |  |  +- org.springframework:spring-context:jar:5.1.4.RELEASE:compile
-[INFO] |  |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.8:compile
-[INFO] |  \- io.micrometer:micrometer-core:jar:1.1.2:compile
-[INFO] |     +- org.hdrhistogram:HdrHistogram:jar:2.1.9:compile
-[INFO] |     \- org.latencyutils:LatencyUtils:jar:2.0.3:compile
-[INFO] +- org.springframework.cloud:spring-cloud-starter-bus-amqp:jar:2.1.0.RELEASE:compile
-[INFO] |  \- org.springframework.cloud:spring-cloud-starter-stream-rabbit:jar:2.1.0.RELEASE:compile
-[INFO] |     \- org.springframework.cloud:spring-cloud-stream-binder-rabbit:jar:2.1.0.RELEASE:compile
-[INFO] |        +- org.springframework.cloud:spring-cloud-stream-binder-rabbit-core:jar:2.1.0.RELEASE:compile
-[INFO] |        |  \- com.rabbitmq:http-client:jar:2.1.0.RELEASE:compile
-[INFO] |        +- org.springframework.boot:spring-boot-starter-amqp:jar:2.1.2.RELEASE:compile
-[INFO] |        |  \- org.springframework.amqp:spring-rabbit:jar:2.1.3.RELEASE:compile
-[INFO] |        |     +- org.springframework.amqp:spring-amqp:jar:2.1.3.RELEASE:compile
-[INFO] |        |     \- com.rabbitmq:amqp-client:jar:5.4.3:compile
-[INFO] |        \- org.springframework.integration:spring-integration-amqp:jar:5.1.2.RELEASE:compile
-[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.1.2.RELEASE:compile
-[INFO] |  +- org.springframework.boot:spring-boot-starter-json:jar:2.1.2.RELEASE:compile
-[INFO] |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.8:compile
-[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.9.8:compile
-[INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.1.2.RELEASE:compile
-[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.14:compile
-[INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.14:compile
-[INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.14:compile
-[INFO] |  +- org.hibernate.validator:hibernate-validator:jar:6.0.14.Final:compile
-[INFO] |  |  +- javax.validation:validation-api:jar:2.0.1.Final:compile
-[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile
-[INFO] |  |  \- com.fasterxml:classmate:jar:1.4.0:compile
-[INFO] |  +- org.springframework:spring-web:jar:5.1.4.RELEASE:compile
-[INFO] |  |  \- org.springframework:spring-beans:jar:5.1.4.RELEASE:compile
-[INFO] |  \- org.springframework:spring-webmvc:jar:5.1.4.RELEASE:compile
-[INFO] |     \- org.springframework:spring-expression:jar:5.1.4.RELEASE:compile
-[INFO] +- org.springframework.boot:spring-boot-starter-security:jar:2.1.2.RELEASE:compile
-[INFO] |  +- org.springframework:spring-aop:jar:5.1.4.RELEASE:compile
-[INFO] |  +- org.springframework.security:spring-security-config:jar:5.1.3.RELEASE:compile
-[INFO] |  |  \- org.springframework.security:spring-security-core:jar:5.1.3.RELEASE:compile
-[INFO] |  \- org.springframework.security:spring-security-web:jar:5.1.3.RELEASE:compile
-[INFO] +- org.apache.logging.log4j:log4j-spring-cloud-config-server:jar:2.12.0-SNAPSHOT:compile
-[INFO] |  +- org.springframework.boot:spring-boot:jar:2.1.2.RELEASE:compile
-[INFO] |  \- commons-logging:commons-logging:jar:1.2:compile
-[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.12.0-SNAPSHOT:compile
-[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.12.0-SNAPSHOT:compile
-[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.12.0-SNAPSHOT:compile
-[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
-[INFO] \- org.springframework.boot:spring-boot-starter-test:jar:2.1.2.RELEASE:test
-[INFO]    +- org.springframework.boot:spring-boot-test:jar:2.1.2.RELEASE:test
-[INFO]    +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.2.RELEASE:test
-[INFO]    +- com.jayway.jsonpath:json-path:jar:2.4.0:test
-[INFO]    |  \- net.minidev:json-smart:jar:2.3:test
-[INFO]    |     \- net.minidev:accessors-smart:jar:1.2:test
-[INFO]    |        \- org.ow2.asm:asm:jar:5.0.4:test
-[INFO]    +- junit:junit:jar:4.12:test
-[INFO]    +- org.assertj:assertj-core:jar:3.11.1:test
-[INFO]    +- org.mockito:mockito-core:jar:2.23.4:test
-[INFO]    |  +- net.bytebuddy:byte-buddy:jar:1.9.7:test
-[INFO]    |  +- net.bytebuddy:byte-buddy-agent:jar:1.9.7:test
-[INFO]    |  \- org.objenesis:objenesis:jar:2.6:compile
-[INFO]    +- org.hamcrest:hamcrest-core:jar:1.3:test
-[INFO]    +- org.hamcrest:hamcrest-library:jar:1.3:test
-[INFO]    +- org.skyscreamer:jsonassert:jar:1.5.0:test
-[INFO]    |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
-[INFO]    +- org.springframework:spring-core:jar:5.1.4.RELEASE:compile
-[INFO]    |  \- org.springframework:spring-jcl:jar:5.1.4.RELEASE:compile
-[INFO]    +- org.springframework:spring-test:jar:5.1.4.RELEASE:test
-[INFO]    \- org.xmlunit:xmlunit-core:jar:2.6.2:test
-[INFO] ------------------------------------------------------------------------
-[INFO] BUILD SUCCESS
-[INFO] ------------------------------------------------------------------------
-[INFO] Total time: 4.180 s
-[INFO] Finished at: 2019-03-02T14:15:03-07:00
-[INFO] Final Memory: 39M/981M
-[INFO] ------------------------------------------------------------------------
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
index 8fdadeb..684b0cf 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/pom.xml
@@ -21,8 +21,7 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <java.version>1.8</java.version>
-    <spring-cloud-config.version>2.1.0.RELEASE</spring-cloud-config.version>
-    <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
+    <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
     <log4j.version>2.12.0-SNAPSHOT</log4j.version>
 
 
@@ -68,12 +67,10 @@
     <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-config-server</artifactId>
-      <version>${spring-cloud-config.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-config-monitor</artifactId>
-      <version>${spring-cloud-config.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -99,11 +96,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-spring-cloud-config-server</artifactId>
-      <version>${log4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
       <version>${log4j.version}</version>
     </dependency>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
index badf122..1c061a7 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-server/src/main/config-repo/log4j2.xml
@@ -1,22 +1,56 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <Configuration status="DEBUG" monitorInterval="0">
-  <properties>
-    <property name="LOG_DIR">\${sys:user.dir}/logs/sample-app</property>
-  </properties>
   <Appenders>
-
-    <RollingFile name="log4j" fileName="${LOG_DIR}/log4j.txt" filePattern="${LOG_DIR}/archive/log4j.txt.%d{yyyyMMdd_HH}-%i">
-      <PatternLayout pattern="%d [%t] %-5p %C{1.}.%M:%L - %m%n"/>
-      <Policies>
-        <SizeBasedTriggeringPolicy size="30 KB"/>
-      </Policies>
-    </RollingFile>
+    <Console name="console" target="SYSTEM_OUT">
+      <JsonLayout properties="true" compact="true" eventEol="true">
+      </JsonLayout>
+    </Console>
+    <Flume name="flume" ignoreExceptions="false" type="Embedded" compress="false">
+      <Property name="channel.type">memory</Property>
+      <Property name="channel.capacity">100000</Property>
+      <Property name="channel.transactionCapacity">5000</Property>
+      <Property name="sinks">agent1</Property>
+      <Property name="agent1.type">avro</Property>
+      <Property name="agent1.hostname">flume</Property>
+      <Property name="agent1.port">5050</Property>
+      <Property name="agent1.batch-size">1000</Property>
+      <Property name="processor.type">default</Property>
+      <JsonLayout properties="true" compact="true" eventEol="true">
+        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+      </JsonLayout>
+    </Flume>
+    <Flume name="avro" ignoreExceptions="false" batchSize="100" compress="false">
+      <Agent host="flume" port="5050"/>
+      <JsonLayout properties="true" compact="true" eventEol="true">
+        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+      </JsonLayout>
+    </Flume>
+    <Socket name="fluent-bit" host="fluent-bit" port="24221">
+      <JsonLayout properties="true" compact="true" eventEol="true">
+        <KeyValuePair key="containerId" value="\${docker:containerId}"/>
+        <KeyValuePair key="containerName" value="\${docker:containerName}"/>
+        <KeyValuePair key="imageName" value="\${docker:imageName}"/>
+      </JsonLayout>
+    </Socket>
 
   </Appenders>
   <Loggers>
+    <Logger name="org.apache.flume" level="warn" additivity="false">
+      <AppenderRef ref="console"/>
+    </Logger>
+    <Logger name="org.apache.avro" level="warn" additivity="false">
+      <AppenderRef ref="console"/>
+    </Logger>
     <Root level="DEBUG">
-      <AppenderRef ref="log4j"/>
+      <AppenderRef ref="flume"/>
+      <!--<AppenderRef ref="flume"/>-->
+      <!--<AppenderRef ref="console"/>-->
+      <!--<AppenderRef ref="fluent-bit"/>-->
     </Root>
   </Loggers>
 </Configuration>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt
deleted file mode 100644
index 797f3af..0000000
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.txt
+++ /dev/null
@@ -1,7048 +0,0 @@
-[INFO] Scanning for projects...
-[INFO]                                                                         
-[INFO] ------------------------------------------------------------------------
-[INFO] Building Apache Log4j Spring Cloud Config Server Support 2.12.0-SNAPSHOT
-[INFO] ------------------------------------------------------------------------
-[INFO] 
-[INFO] --- maven-help-plugin:3.1.0:effective-pom (default-cli) @ log4j-spring-cloud-config-server ---
-[INFO] 
-Effective POMs, after inheritance, interpolation, and profiles are applied:
-
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ====================================================================== -->
-<!--                                                                        -->
-<!-- Generated by Maven Help Plugin on 2019-03-01T16:18:01-07:00            -->
-<!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
-<!--                                                                        -->
-<!-- ====================================================================== -->
-<!-- ====================================================================== -->
-<!--                                                                        -->
-<!-- Effective POM for project                                              -->
-<!-- 'org.apache.logging.log4j:log4j-spring-cloud-config-server:jar:2.12.0-SNAPSHOT' -->
-<!--                                                                        -->
-<!-- ====================================================================== -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.logging.log4j</groupId>
-    <artifactId>log4j-spring-cloud-config</artifactId>
-    <version>2.12.0-SNAPSHOT</version>
-    <relativePath>../</relativePath>
-  </parent>
-  <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j-spring-cloud-config-server</artifactId>
-  <version>2.12.0-SNAPSHOT</version>
-  <name>Apache Log4j Spring Cloud Config Server Support</name>
-  <description />
-  <url>http://maven.apache.org/log4j-spring-cloud-config-server</url>
-  <inceptionYear>1999</inceptionYear>
-  <organization>
-    <name>The Apache Software Foundation</name>
-    <url>https://www.apache.org/</url>
-  </organization>
-  <licenses>
-    <license>
-      <name>Apache License, Version 2.0</name>
-      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  <developers>
-    <developer>
-      <id>rgoers</id>
-      <name>Ralph Goers</name>
-      <email>rgoers@apache.org</email>
-      <organization>Nextiva</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Phoenix</timezone>
-    </developer>
-    <developer>
-      <id>ggregory</id>
-      <name>Gary Gregory</name>
-      <email>ggregory@apache.org</email>
-      <organization>Rocket Software</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Denver</timezone>
-    </developer>
-    <developer>
-      <id>sdeboy</id>
-      <name>Scott Deboy</name>
-      <email>sdeboy@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Los_Angeles</timezone>
-    </developer>
-    <developer>
-      <id>rpopma</id>
-      <name>Remko Popma</name>
-      <email>rpopma@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Asia/Tokyo</timezone>
-      <properties>
-        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
-      </properties>
-    </developer>
-    <developer>
-      <id>nickwilliams</id>
-      <name>Nick Williams</name>
-      <email>nickwilliams@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-    <developer>
-      <id>mattsicker</id>
-      <name>Matt Sicker</name>
-      <email>mattsicker@apache.org</email>
-      <organization>CloudBees</organization>
-      <roles>
-        <role>PMC Chair</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-    <developer>
-      <id>bbrouwer</id>
-      <name>Bruce Brouwer</name>
-      <email>bruce.brouwer@gmail.com</email>
-      <roles>
-        <role>Committer</role>
-      </roles>
-      <timezone>America/Detroit</timezone>
-    </developer>
-    <developer>
-      <id>mikes</id>
-      <name>Mikael Ståldal</name>
-      <email>mikes@apache.org</email>
-      <organization>Spotify</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Europe/Stockholm</timezone>
-    </developer>
-    <developer>
-      <id>ckozak</id>
-      <name>Carter Kozak</name>
-      <email>ckozak@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New York</timezone>
-    </developer>
-  </developers>
-  <contributors>
-    <contributor>
-      <name>Murad Ersoy</name>
-      <email>muradersoy@gmail.com</email>
-      <url>https://www.behance.net/muradersoy</url>
-      <roles>
-        <role>Illustrator and Designer</role>
-        <role>created the new Log4j 2 logo.</role>
-      </roles>
-      <timezone>Europe/Istanbul</timezone>
-      <properties>
-        <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
-      </properties>
-    </contributor>
-  </contributors>
-  <mailingLists>
-    <mailingList>
-      <name>log4j-user</name>
-      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
-      <post>log4j-user@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
-        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
-      </otherArchives>
-    </mailingList>
-    <mailingList>
-      <name>dev</name>
-      <subscribe>dev-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
-      <post>dev@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
-        <otherArchive>http://marc.info/?l=dev</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
-      </otherArchives>
-    </mailingList>
-  </mailingLists>
-  <scm>
-    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</connection>
-    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-    <tag>log4j-2.11.2</tag>
-    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</url>
-  </scm>
-  <issueManagement>
-    <system>JIRA</system>
-    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
-  </issueManagement>
-  <ciManagement>
-    <system>Jenkins</system>
-    <url>https://builds.apache.org/job/Log4j%202.x/</url>
-  </ciManagement>
-  <distributionManagement>
-    <repository>
-      <id>apache.releases.https</id>
-      <name>Apache Release Distribution Repository</name>
-      <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
-    </repository>
-    <snapshotRepository>
-      <id>apache.snapshots.https</id>
-      <name>Apache Development Snapshot Repository</name>
-      <url>https://repository.apache.org/content/repositories/snapshots</url>
-    </snapshotRepository>
-    <site>
-      <id>www.example.com</id>
-      <url>scp://www.example.com/www/docs/project/log4j-spring-cloud-config/log4j-spring-cloud-config-server/</url>
-    </site>
-    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
-  </distributionManagement>
-  <properties>
-    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
-    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
-    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
-    <activemq.version>5.14.5</activemq.version>
-    <argLine>-Xms256m -Xmx1024m</argLine>
-    <arguments />
-    <assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
-    <changes.plugin.version>2.12.1</changes.plugin.version>
-    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
-    <clirr.plugin.version>2.8</clirr.plugin.version>
-    <cobertura.plugin.version>2.7</cobertura.plugin.version>
-    <commonsLoggingVersion>1.2</commonsLoggingVersion>
-    <compiler.plugin.version>3.8.0</compiler.plugin.version>
-    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion>
-    <deploy.plugin.version>2.8.2</deploy.plugin.version>
-    <disruptorVersion>3.4.2</disruptorVersion>
-    <distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
-    <distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
-    <docLabel>Log4j Spring Cloud Config Server Documentation</docLabel>
-    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
-    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
-    <flumeVersion>1.7.0</flumeVersion>
-    <gpg.useagent>true</gpg.useagent>
-    <jackson1Version>1.9.13</jackson1Version>
-    <jackson2Version>2.9.7</jackson2Version>
-    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
-    <javaTargetVersion>1.7</javaTargetVersion>
-    <javadoc.opts>-Xdoclint:none</javadoc.opts>
-    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
-    <javax.persistence>2.1.1</javax.persistence>
-    <jctoolsVersion>1.2.1</jctoolsVersion>
-    <jxr.plugin.version>2.5</jxr.plugin.version>
-    <log4j.version>2.11.2-SNAPSHOT</log4j.version>
-    <log4jParentDir>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/..</log4jParentDir>
-    <logbackVersion>1.2.3</logbackVersion>
-    <manifestfile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestfile>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
-    <minSeverity>info</minSeverity>
-    <mockitoVersion>2.23.4</mockitoVersion>
-    <module.name>org.apache.logging.log4j.spring.cloud.config.controller</module.name>
-    <mongodb2.version>2.14.3</mongodb2.version>
-    <mongodb3.version>3.9.0</mongodb3.version>
-    <organization.logo>https://www.apache.org/images/asf_logo_wide.gif</organization.logo>
-    <osgi.api.version>4.3.1</osgi.api.version>
-    <pdf.plugin.version>1.2</pdf.plugin.version>
-    <pmd.plugin.version>3.10.0</pmd.plugin.version>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <projectDir>/log4j-spring-cloud-config-server</projectDir>
-    <rat.plugin.version>0.12</rat.plugin.version>
-    <release.plugin.version>2.5.3</release.plugin.version>
-    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
-    <revapi.plugin.version>0.10.5</revapi.plugin.version>
-    <revapi.skip>true</revapi.skip>
-    <scm.plugin.version>1.9.5</scm.plugin.version>
-    <site.plugin.version>3.4</site.plugin.version>
-    <slf4jVersion>1.7.25</slf4jVersion>
-    <sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
-    <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
-    <spring-cloud-bus.version>2.1.0.RELEASE</spring-cloud-bus.version>
-    <spring-cloud-config.version>2.0.2.RELEASE</spring-cloud-config.version>
-    <springVersion>5.0.12.RELEASE</springVersion>
-    <surefire.plugin.version>2.21.0</surefire.plugin.version>
-    <surefire.version>2.22.0</surefire.version>
-    <velocity.plugin.version>1.5</velocity.plugin.version>
-  </properties>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.12</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-ext</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>1.2.3</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>1.2.3</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>org.eclipse.osgi</artifactId>
-        <version>3.12.1.v20170821-1548</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.framework</artifactId>
-        <version>5.6.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-core</artifactId>
-        <version>3.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>1.11</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>3.7</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>1.2.3</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>1.2.3</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-java9</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core-java9</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j18-impl</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jcl</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>1.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-1.2-api</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-flume-ng</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-iostreams</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jul</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-taglib</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-web</artifactId>
-        <version>2.12.0-SNAPSHOT</version>
-      </dependency>
-      <dependency>
-        <groupId>com.sleepycat</groupId>
-        <artifactId>je</artifactId>
-        <version>5.0.73</version>
-      </dependency>
-      <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>4.3.1</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.fusesource.jansi</groupId>
-        <artifactId>jansi</artifactId>
-        <version>1.17.1</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>1.7.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>jackson-core-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-core</artifactId>
-        <version>1.7.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-embedded-agent</artifactId>
-        <version>1.7.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-core-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-node</artifactId>
-        <version>1.7.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-core-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-file-channel</artifactId>
-        <version>1.7.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>servlet-api</artifactId>
-            <groupId>org.mortbay.jetty</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>servlet-api-2.5</artifactId>
-            <groupId>org.mortbay.jetty</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>junit</artifactId>
-            <groupId>junit</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-core</artifactId>
-        <version>1.2.1</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>jackson-core-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <groupId>org.codehaus.jackson</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>servlet-api</artifactId>
-            <groupId>org.mortbay.jetty</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>junit</artifactId>
-            <groupId>junit</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-core-asl</artifactId>
-        <version>1.9.13</version>
-        <scope>runtime</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-mapper-asl</artifactId>
-        <version>1.9.13</version>
-        <scope>runtime</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-core</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-annotations</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-yaml</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-xml</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-jaxb-annotations</artifactId>
-        <version>2.9.7</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.sun.mail</groupId>
-        <artifactId>javax.mail</artifactId>
-        <version>1.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.spec.javax.jms</groupId>
-        <artifactId>jboss-jms-api_1.1_spec</artifactId>
-        <version>1.0.1.Final</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-broker</artifactId>
-        <version>5.14.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-clients</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.zeromq</groupId>
-        <artifactId>jeromq</artifactId>
-        <version>0.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>servlet-api</artifactId>
-        <version>2.5</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.lmax</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>3.4.2</version>
-      </dependency>
-      <dependency>
-        <groupId>com.conversantmedia</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>1.2.10</version>
-        <classifier>jdk7</classifier>
-      </dependency>
-      <dependency>
-        <groupId>org.jctools</groupId>
-        <artifactId>jctools-core</artifactId>
-        <version>1.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-all</artifactId>
-        <version>1.3</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-utils</artifactId>
-        <version>3.1.0</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
-        <version>2.23.4</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-aop</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-beans</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-core</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-expression</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-oxm</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-test</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-webmvc</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hsqldb</groupId>
-        <artifactId>hsqldb</artifactId>
-        <version>2.3.5</version>
-      </dependency>
-      <dependency>
-        <groupId>com.h2database</groupId>
-        <artifactId>h2</artifactId>
-        <version>1.4.197</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.jpa</artifactId>
-        <version>2.6.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>javax.persistence</artifactId>
-        <version>2.1.1</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongo-java-driver</artifactId>
-        <version>2.14.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver</artifactId>
-        <version>3.9.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>bson</artifactId>
-        <version>3.9.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.lightcouch</groupId>
-        <artifactId>lightcouch</artifactId>
-        <version>0.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.datastax.cassandra</groupId>
-        <artifactId>cassandra-driver-core</artifactId>
-        <version>3.1.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.liquibase</groupId>
-        <artifactId>liquibase-core</artifactId>
-        <version>3.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>net.javacrumbs.json-unit</groupId>
-        <artifactId>json-unit</artifactId>
-        <version>1.31.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-core</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-matchers</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>2.6</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.github.tomakehurst</groupId>
-        <artifactId>wiremock</artifactId>
-        <version>2.19.0</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>1.18</version>
-      </dependency>
-      <dependency>
-        <groupId>org.tukaani</groupId>
-        <artifactId>xz</artifactId>
-        <version>1.8</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-csv</artifactId>
-        <version>1.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.code.java-allocation-instrumenter</groupId>
-        <artifactId>java-allocation-instrumenter</artifactId>
-        <version>3.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hdrhistogram</groupId>
-        <artifactId>HdrHistogram</artifactId>
-        <version>2.1.9</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache-extras.beanshell</groupId>
-        <artifactId>bsh</artifactId>
-        <version>2.0b6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-jsr223</artifactId>
-        <version>2.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-dateutil</artifactId>
-        <version>2.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>de.flapdoodle.embed</groupId>
-        <artifactId>de.flapdoodle.embed.mongo</artifactId>
-        <version>2.1.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-aspects</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context-indexer</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context-support</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-instrument</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-jcl</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-jdbc</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-jms</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-messaging</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-orm</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-tx</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-webflux</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-websocket</artifactId>
-        <version>5.0.12.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-test</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-test-autoconfigure</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-actuator</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-actuator-autoconfigure</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-autoconfigure</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-autoconfigure-processor</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-configuration-metadata</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-configuration-processor</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-devtools</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-loader</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-loader-tools</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-properties-migrator</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-activemq</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-actuator</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-amqp</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-aop</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-artemis</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-batch</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-cache</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-cloud-connectors</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-cassandra</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-cassandra-reactive</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-couchbase</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-couchbase-reactive</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-jdbc</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-jpa</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-ldap</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-mongodb</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-redis</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-neo4j</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-rest</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-solr</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-freemarker</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-groovy-templates</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-hateoas</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-integration</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jdbc</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jersey</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jetty</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jooq</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-json</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jta-atomikos</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-jta-bitronix</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-log4j2</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-logging</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-mail</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-mustache</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-oauth2-client</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-reactor-netty</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-quartz</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-security</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-test</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-thymeleaf</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-tomcat</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-undertow</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-validation</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-web</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-webflux</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-websocket</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-web-services</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>antlr</groupId>
-        <artifactId>antlr</artifactId>
-        <version>2.7.7</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-access</artifactId>
-        <version>1.2.3</version>
-      </dependency>
-      <dependency>
-        <groupId>com.atomikos</groupId>
-        <artifactId>transactions-jdbc</artifactId>
-        <version>4.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.atomikos</groupId>
-        <artifactId>transactions-jms</artifactId>
-        <version>4.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.atomikos</groupId>
-        <artifactId>transactions-jta</artifactId>
-        <version>4.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.couchbase.client</groupId>
-        <artifactId>java-client</artifactId>
-        <version>2.7.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.couchbase.client</groupId>
-        <artifactId>couchbase-spring-cache</artifactId>
-        <version>2.1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.datastax.cassandra</groupId>
-        <artifactId>cassandra-driver-mapping</artifactId>
-        <version>3.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml</groupId>
-        <artifactId>classmate</artifactId>
-        <version>1.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.github.ben-manes.caffeine</groupId>
-        <artifactId>caffeine</artifactId>
-        <version>2.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>com.github.ben-manes.caffeine</groupId>
-        <artifactId>guava</artifactId>
-        <version>2.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>com.github.ben-manes.caffeine</groupId>
-        <artifactId>jcache</artifactId>
-        <version>2.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>com.github.ben-manes.caffeine</groupId>
-        <artifactId>simulator</artifactId>
-        <version>2.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>com.github.mxab.thymeleaf.extras</groupId>
-        <artifactId>thymeleaf-extras-data-attribute</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.appengine</groupId>
-        <artifactId>appengine-api-1.0-sdk</artifactId>
-        <version>1.9.68</version>
-      </dependency>
-      <dependency>
-        <groupId>com.google.code.gson</groupId>
-        <artifactId>gson</artifactId>
-        <version>2.8.5</version>
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>hazelcast</artifactId>
-        <version>3.11</version>
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>hazelcast-client</artifactId>
-        <version>3.11</version>
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>hazelcast-hibernate52</artifactId>
-        <version>1.2.3</version>
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>hazelcast-spring</artifactId>
-        <version>3.11</version>
-      </dependency>
-      <dependency>
-        <groupId>com.jayway.jsonpath</groupId>
-        <artifactId>json-path</artifactId>
-        <version>2.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.jayway.jsonpath</groupId>
-        <artifactId>json-path-assert</artifactId>
-        <version>2.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.microsoft.sqlserver</groupId>
-        <artifactId>mssql-jdbc</artifactId>
-        <version>6.4.0.jre8</version>
-      </dependency>
-      <dependency>
-        <groupId>com.querydsl</groupId>
-        <artifactId>querydsl-apt</artifactId>
-        <version>4.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.querydsl</groupId>
-        <artifactId>querydsl-collections</artifactId>
-        <version>4.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.querydsl</groupId>
-        <artifactId>querydsl-core</artifactId>
-        <version>4.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.querydsl</groupId>
-        <artifactId>querydsl-jpa</artifactId>
-        <version>4.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>com.querydsl</groupId>
-        <artifactId>querydsl-mongodb</artifactId>
-        <version>4.2.1</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>mongo-java-driver</artifactId>
-            <groupId>org.mongodb</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>com.rabbitmq</groupId>
-        <artifactId>amqp-client</artifactId>
-        <version>5.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>com.samskivert</groupId>
-        <artifactId>jmustache</artifactId>
-        <version>1.14</version>
-      </dependency>
-      <dependency>
-        <groupId>com.sendgrid</groupId>
-        <artifactId>sendgrid-java</artifactId>
-        <version>4.3.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.sun.xml.messaging.saaj</groupId>
-        <artifactId>saaj-impl</artifactId>
-        <version>1.5.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.timgroup</groupId>
-        <artifactId>java-statsd-client</artifactId>
-        <version>3.1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.unboundid</groupId>
-        <artifactId>unboundid-ldapsdk</artifactId>
-        <version>4.0.9</version>
-      </dependency>
-      <dependency>
-        <groupId>com.zaxxer</groupId>
-        <artifactId>HikariCP</artifactId>
-        <version>3.2.0</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-pool</groupId>
-        <artifactId>commons-pool</artifactId>
-        <version>1.6</version>
-      </dependency>
-      <dependency>
-        <groupId>dom4j</groupId>
-        <artifactId>dom4j</artifactId>
-        <version>1.6.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-annotation</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-core</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-ehcache</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-graphite</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-healthchecks</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-httpasyncclient</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jdbi</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jersey</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jersey2</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jetty8</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jetty9</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jetty9-legacy</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jmx</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-json</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-jvm</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-log4j</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-log4j2</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-logback</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-servlet</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-servlets</artifactId>
-        <version>4.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>io.lettuce</groupId>
-        <artifactId>lettuce-core</artifactId>
-        <version>5.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-core</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-jersey2</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-appoptics</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-atlas</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-azure-monitor</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-cloudwatch</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-datadog</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-dynatrace</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-elastic</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-ganglia</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-graphite</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-humio</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-influx</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-jmx</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-kairos</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-new-relic</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-prometheus</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-signalfx</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-statsd</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-registry-wavefront</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-test</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-tcnative-boringssl-static</artifactId>
-        <version>2.0.20.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.prometheus</groupId>
-        <artifactId>simpleclient_pushgateway</artifactId>
-        <version>0.5.0</version>
-      </dependency>
-      <dependency>
-        <groupId>io.reactivex</groupId>
-        <artifactId>rxjava</artifactId>
-        <version>1.3.8</version>
-      </dependency>
-      <dependency>
-        <groupId>io.reactivex</groupId>
-        <artifactId>rxjava-reactive-streams</artifactId>
-        <version>1.2.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.reactivex.rxjava2</groupId>
-        <artifactId>rxjava</artifactId>
-        <version>2.2.4</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>json-path</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>json-schema-validator</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>rest-assured</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>scala-support</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>spring-mock-mvc</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.rest-assured</groupId>
-        <artifactId>xml-path</artifactId>
-        <version>3.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.searchbox</groupId>
-        <artifactId>jest</artifactId>
-        <version>6.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>io.undertow</groupId>
-        <artifactId>undertow-core</artifactId>
-        <version>2.0.16.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.undertow</groupId>
-        <artifactId>undertow-servlet</artifactId>
-        <version>2.0.16.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.undertow</groupId>
-        <artifactId>undertow-websockets-jsr</artifactId>
-        <version>2.0.16.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.activation</groupId>
-        <artifactId>javax.activation-api</artifactId>
-        <version>1.2.0</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.annotation</groupId>
-        <artifactId>javax.annotation-api</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.cache</groupId>
-        <artifactId>cache-api</artifactId>
-        <version>1.1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.jms</groupId>
-        <artifactId>javax.jms-api</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.json</groupId>
-        <artifactId>javax.json-api</artifactId>
-        <version>1.1.4</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.json.bind</groupId>
-        <artifactId>javax.json.bind-api</artifactId>
-        <version>1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.mail</groupId>
-        <artifactId>javax.mail-api</artifactId>
-        <version>1.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.money</groupId>
-        <artifactId>money-api</artifactId>
-        <version>1.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.persistence</groupId>
-        <artifactId>javax.persistence-api</artifactId>
-        <version>2.2</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>4.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>jstl</artifactId>
-        <version>1.2</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.transaction</groupId>
-        <artifactId>javax.transaction-api</artifactId>
-        <version>1.3</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.validation</groupId>
-        <artifactId>validation-api</artifactId>
-        <version>2.0.1.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.websocket</groupId>
-        <artifactId>javax.websocket-api</artifactId>
-        <version>1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.xml.bind</groupId>
-        <artifactId>jaxb-api</artifactId>
-        <version>2.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.xml.ws</groupId>
-        <artifactId>jaxws-api</artifactId>
-        <version>2.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>jaxen</groupId>
-        <artifactId>jaxen</artifactId>
-        <version>1.1.6</version>
-      </dependency>
-      <dependency>
-        <groupId>joda-time</groupId>
-        <artifactId>joda-time</artifactId>
-        <version>2.10.1</version>
-      </dependency>
-      <dependency>
-        <groupId>mysql</groupId>
-        <artifactId>mysql-connector-java</artifactId>
-        <version>8.0.13</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>protobuf-java</artifactId>
-            <groupId>com.google.protobuf</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>net.bytebuddy</groupId>
-        <artifactId>byte-buddy</artifactId>
-        <version>1.9.5</version>
-      </dependency>
-      <dependency>
-        <groupId>net.bytebuddy</groupId>
-        <artifactId>byte-buddy-agent</artifactId>
-        <version>1.9.5</version>
-      </dependency>
-      <dependency>
-        <groupId>net.java.dev.jna</groupId>
-        <artifactId>jna</artifactId>
-        <version>4.5.2</version>
-      </dependency>
-      <dependency>
-        <groupId>net.java.dev.jna</groupId>
-        <artifactId>jna-platform</artifactId>
-        <version>4.5.2</version>
-      </dependency>
-      <dependency>
-        <groupId>net.sf.ehcache</groupId>
-        <artifactId>ehcache</artifactId>
-        <version>2.10.6</version>
-      </dependency>
-      <dependency>
-        <groupId>net.sourceforge.htmlunit</groupId>
-        <artifactId>htmlunit</artifactId>
-        <version>2.33</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>net.sourceforge.jtds</groupId>
-        <artifactId>jtds</artifactId>
-        <version>1.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>net.sourceforge.nekohtml</groupId>
-        <artifactId>nekohtml</artifactId>
-        <version>1.9.22</version>
-      </dependency>
-      <dependency>
-        <groupId>nz.net.ultraq.thymeleaf</groupId>
-        <artifactId>thymeleaf-layout-dialect</artifactId>
-        <version>2.3.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-amqp</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-blueprint</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-camel</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-client</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-console</artifactId>
-        <version>5.15.8</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-http</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-jaas</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-jdbc-store</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-jms-pool</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-kahadb-store</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-karaf</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-leveldb-store</artifactId>
-        <version>5.15.8</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-log4j-appender</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-mqtt</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-openwire-generator</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-openwire-legacy</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-osgi</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-partition</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-pool</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-ra</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-run</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-runtime-config</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-shiro</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-spring</artifactId>
-        <version>5.15.8</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-stomp</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-web</artifactId>
-        <version>5.15.8</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-amqp-protocol</artifactId>
-        <version>2.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-commons</artifactId>
-        <version>2.6.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-core-client</artifactId>
-        <version>2.6.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>geronimo-json_1.0_spec</artifactId>
-            <groupId>org.apache.geronimo.specs</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-jms-client</artifactId>
-        <version>2.6.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>geronimo-json_1.0_spec</artifactId>
-            <groupId>org.apache.geronimo.specs</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-jms-server</artifactId>
-        <version>2.6.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>geronimo-json_1.0_spec</artifactId>
-            <groupId>org.apache.geronimo.specs</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-journal</artifactId>
-        <version>2.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-native</artifactId>
-        <version>2.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-selector</artifactId>
-        <version>2.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-server</artifactId>
-        <version>2.6.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>geronimo-json_1.0_spec</artifactId>
-            <groupId>org.apache.geronimo.specs</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>artemis-service-extensions</artifactId>
-        <version>2.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-dbcp2</artifactId>
-        <version>2.5.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-pool2</artifactId>
-        <version>2.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.derby</groupId>
-        <artifactId>derby</artifactId>
-        <version>10.14.2.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpasyncclient</artifactId>
-        <version>4.1.4</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>fluent-hc</artifactId>
-        <version>4.5.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>4.5.6</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient-cache</artifactId>
-        <version>4.5.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient-osgi</artifactId>
-        <version>4.5.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient-win</artifactId>
-        <version>4.5.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpcore</artifactId>
-        <version>4.4.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpcore-nio</artifactId>
-        <version>4.4.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpmime</artifactId>
-        <version>4.5.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-core</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-jaxrs</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-jsonb</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-jsonb-extras</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-jsonschema</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-mapper</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.johnzon</groupId>
-        <artifactId>johnzon-websocket</artifactId>
-        <version>1.1.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>connect-api</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>connect-file</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>connect-json</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>connect-runtime</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>connect-transforms</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-log4j-appender</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-streams</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-tools</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka_2.11</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka_2.12</artifactId>
-        <version>2.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-to-slf4j</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-analysis-extras</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-analytics</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-cell</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-clustering</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-core</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-dataimporthandler</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-dataimporthandler-extras</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-langid</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-ltr</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-solrj</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-test-framework</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-uima</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-velocity</artifactId>
-        <version>7.4.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat</groupId>
-        <artifactId>tomcat-catalina-jmx-remote</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat</groupId>
-        <artifactId>tomcat-annotations-api</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat</groupId>
-        <artifactId>tomcat-jdbc</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat</groupId>
-        <artifactId>tomcat-jsp-api</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat.embed</groupId>
-        <artifactId>tomcat-embed-core</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat.embed</groupId>
-        <artifactId>tomcat-embed-el</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat.embed</groupId>
-        <artifactId>tomcat-embed-jasper</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.tomcat.embed</groupId>
-        <artifactId>tomcat-embed-websocket</artifactId>
-        <version>9.0.13</version>
-      </dependency>
-      <dependency>
-        <groupId>org.aspectj</groupId>
-        <artifactId>aspectjrt</artifactId>
-        <version>1.9.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.aspectj</groupId>
-        <artifactId>aspectjtools</artifactId>
-        <version>1.9.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.aspectj</groupId>
-        <artifactId>aspectjweaver</artifactId>
-        <version>1.9.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.assertj</groupId>
-        <artifactId>assertj-core</artifactId>
-        <version>3.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.btm</groupId>
-        <artifactId>btm</artifactId>
-        <version>2.1.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-ant</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-bsf</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-console</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-docgenerator</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-groovydoc</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-groovysh</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-jmx</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-json</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-nio</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-servlet</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-sql</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-swing</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-templates</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-test</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-testng</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-xml</artifactId>
-        <version>2.5.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.janino</groupId>
-        <artifactId>janino</artifactId>
-        <version>3.0.11</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-reactive-httpclient</artifactId>
-        <version>1.0.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.orbit</groupId>
-        <artifactId>javax.servlet.jsp</artifactId>
-        <version>2.2.0.v201112011158</version>
-      </dependency>
-      <dependency>
-        <groupId>org.ehcache</groupId>
-        <artifactId>ehcache</artifactId>
-        <version>3.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.ehcache</groupId>
-        <artifactId>ehcache-clustered</artifactId>
-        <version>3.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.ehcache</groupId>
-        <artifactId>ehcache-transactions</artifactId>
-        <version>3.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch</groupId>
-        <artifactId>elasticsearch</artifactId>
-        <version>6.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch.client</groupId>
-        <artifactId>transport</artifactId>
-        <version>6.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch.distribution.integ-test-zip</groupId>
-        <artifactId>elasticsearch</artifactId>
-        <version>6.4.3</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch.plugin</groupId>
-        <artifactId>transport-netty4-client</artifactId>
-        <version>6.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch.client</groupId>
-        <artifactId>elasticsearch-rest-client</artifactId>
-        <version>6.4.3</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.elasticsearch.client</groupId>
-        <artifactId>elasticsearch-rest-high-level-client</artifactId>
-        <version>6.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.firebirdsql.jdbc</groupId>
-        <artifactId>jaybird-jdk17</artifactId>
-        <version>3.0.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.firebirdsql.jdbc</groupId>
-        <artifactId>jaybird-jdk18</artifactId>
-        <version>3.0.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.flywaydb</groupId>
-        <artifactId>flyway-core</artifactId>
-        <version>5.2.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.freemarker</groupId>
-        <artifactId>freemarker</artifactId>
-        <version>2.3.28</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish</groupId>
-        <artifactId>javax.el</artifactId>
-        <version>3.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jaxb</groupId>
-        <artifactId>jaxb-runtime</artifactId>
-        <version>2.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-core</artifactId>
-        <version>1.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-library</artifactId>
-        <version>1.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-c3p0</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-core</artifactId>
-        <version>5.3.7.Final</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>xml-apis</artifactId>
-            <groupId>xml-apis</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-ehcache</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-entitymanager</artifactId>
-        <version>5.3.7.Final</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>xml-apis</artifactId>
-            <groupId>xml-apis</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-envers</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-hikaricp</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-java8</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-jcache</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-jpamodelgen</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-proxool</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-spatial</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate</groupId>
-        <artifactId>hibernate-testing</artifactId>
-        <version>5.3.7.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate.validator</groupId>
-        <artifactId>hibernate-validator</artifactId>
-        <version>6.0.13.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hibernate.validator</groupId>
-        <artifactId>hibernate-validator-annotation-processor</artifactId>
-        <version>6.0.13.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-jdbc</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-jpa</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-leveldb</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-remote</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-rest</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cachestore-rocksdb</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cdi-common</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cdi-embedded</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cdi-remote</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-client-hotrod</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-cloud</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-clustered-counter</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-clustered-lock</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-commons</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-core</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-directory-provider</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-hibernate-cache-v53</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-jcache</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-jcache-commons</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-jcache-remote</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-lucene-directory</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-objectfilter</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-osgi</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-persistence-cli</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-persistence-soft-index</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-query</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-query-dsl</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-remote-query-client</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-remote-query-server</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-scripting</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-server-core</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-server-hotrod</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-server-memcached</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-server-router</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-spring4-common</artifactId>
-        <version>9.4.3.Final</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-core</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-jcl</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-spring4-embedded</artifactId>
-        <version>9.4.3.Final</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-core</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j-jcl</artifactId>
-            <groupId>org.apache.logging.log4j</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-spring4-remote</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-tasks</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-tasks-api</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-tools</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-tree</artifactId>
-        <version>9.4.3.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.influxdb</groupId>
-        <artifactId>influxdb-java</artifactId>
-        <version>2.14</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss</groupId>
-        <artifactId>jboss-transaction-spi</artifactId>
-        <version>7.6.0.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.logging</groupId>
-        <artifactId>jboss-logging</artifactId>
-        <version>3.3.2.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jdom</groupId>
-        <artifactId>jdom2</artifactId>
-        <version>2.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-reflect</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-runtime</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-stdlib</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-stdlib-jdk7</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-stdlib-jdk8</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-stdlib-jre7</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jetbrains.kotlin</groupId>
-        <artifactId>kotlin-stdlib-jre8</artifactId>
-        <version>1.2.71</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jolokia</groupId>
-        <artifactId>jolokia-core</artifactId>
-        <version>1.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jooq</groupId>
-        <artifactId>jooq</artifactId>
-        <version>3.11.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jooq</groupId>
-        <artifactId>jooq-meta</artifactId>
-        <version>3.11.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jooq</groupId>
-        <artifactId>jooq-codegen</artifactId>
-        <version>3.11.7</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jvnet.mimepull</groupId>
-        <artifactId>mimepull</artifactId>
-        <version>1.9.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mariadb.jdbc</groupId>
-        <artifactId>mariadb-java-client</artifactId>
-        <version>2.3.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.messaginghub</groupId>
-        <artifactId>pooled-jms</artifactId>
-        <version>1.0.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-inline</artifactId>
-        <version>2.23.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-junit-jupiter</artifactId>
-        <version>2.23.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-async</artifactId>
-        <version>3.8.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-core</artifactId>
-        <version>3.8.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-reactivestreams</artifactId>
-        <version>1.9.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mortbay.jasper</groupId>
-        <artifactId>apache-el</artifactId>
-        <version>8.5.33.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.neo4j</groupId>
-        <artifactId>neo4j-ogm-api</artifactId>
-        <version>3.1.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.neo4j</groupId>
-        <artifactId>neo4j-ogm-bolt-driver</artifactId>
-        <version>3.1.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.neo4j</groupId>
-        <artifactId>neo4j-ogm-core</artifactId>
-        <version>3.1.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.neo4j</groupId>
-        <artifactId>neo4j-ogm-embedded-driver</artifactId>
-        <version>3.1.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.neo4j</groupId>
-        <artifactId>neo4j-ogm-http-driver</artifactId>
-        <version>3.1.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.postgresql</groupId>
-        <artifactId>postgresql</artifactId>
-        <version>42.2.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.projectlombok</groupId>
-        <artifactId>lombok</artifactId>
-        <version>1.18.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.quartz-scheduler</groupId>
-        <artifactId>quartz</artifactId>
-        <version>2.3.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>c3p0</artifactId>
-            <groupId>com.mchange</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>HikariCP-java6</artifactId>
-            <groupId>com.zaxxer</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.quartz-scheduler</groupId>
-        <artifactId>quartz-jobs</artifactId>
-        <version>2.3.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.reactivestreams</groupId>
-        <artifactId>reactive-streams</artifactId>
-        <version>1.0.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>htmlunit-driver</artifactId>
-        <version>2.33.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-api</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-chrome-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-edge-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-firefox-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-ie-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-java</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-opera-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-remote-driver</artifactId>
-        <version>3.14.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-safari-driver</artifactId>
-        <version>3.14.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.seleniumhq.selenium</groupId>
-        <artifactId>selenium-support</artifactId>
-        <version>3.14.0</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.skyscreamer</groupId>
-        <artifactId>jsonassert</artifactId>
-        <version>1.5.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>jcl-over-slf4j</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>jul-to-slf4j</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>log4j-over-slf4j</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-jcl</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-jdk14</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-nop</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-simple</artifactId>
-        <version>1.7.25</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.amqp</groupId>
-        <artifactId>spring-amqp</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.amqp</groupId>
-        <artifactId>spring-rabbit</artifactId>
-        <version>2.1.2.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>http-client</artifactId>
-            <groupId>com.rabbitmq</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.amqp</groupId>
-        <artifactId>spring-rabbit-junit</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.amqp</groupId>
-        <artifactId>spring-rabbit-test</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.batch</groupId>
-        <artifactId>spring-batch-core</artifactId>
-        <version>4.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.batch</groupId>
-        <artifactId>spring-batch-infrastructure</artifactId>
-        <version>4.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.batch</groupId>
-        <artifactId>spring-batch-integration</artifactId>
-        <version>4.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.batch</groupId>
-        <artifactId>spring-batch-test</artifactId>
-        <version>4.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-cloudfoundry-connector</artifactId>
-        <version>2.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-connectors-core</artifactId>
-        <version>2.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-heroku-connector</artifactId>
-        <version>2.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-localconfig-connector</artifactId>
-        <version>2.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-spring-service-connector</artifactId>
-        <version>2.0.4.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.hateoas</groupId>
-        <artifactId>spring-hateoas</artifactId>
-        <version>0.25.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-http</artifactId>
-        <version>5.1.1.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>commons-logging-api</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.kafka</groupId>
-        <artifactId>spring-kafka</artifactId>
-        <version>2.2.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.kafka</groupId>
-        <artifactId>spring-kafka-test</artifactId>
-        <version>2.2.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-core</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-core-tiger</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-ldif-batch</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-ldif-core</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-odm</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ldap</groupId>
-        <artifactId>spring-ldap-test</artifactId>
-        <version>2.3.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.plugin</groupId>
-        <artifactId>spring-plugin-core</artifactId>
-        <version>1.2.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.plugin</groupId>
-        <artifactId>spring-plugin-metadata</artifactId>
-        <version>1.2.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.restdocs</groupId>
-        <artifactId>spring-restdocs-asciidoctor</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.restdocs</groupId>
-        <artifactId>spring-restdocs-core</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.restdocs</groupId>
-        <artifactId>spring-restdocs-mockmvc</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.restdocs</groupId>
-        <artifactId>spring-restdocs-restassured</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.restdocs</groupId>
-        <artifactId>spring-restdocs-webtestclient</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.retry</groupId>
-        <artifactId>spring-retry</artifactId>
-        <version>1.2.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ws</groupId>
-        <artifactId>spring-ws-core</artifactId>
-        <version>3.0.4.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ws</groupId>
-        <artifactId>spring-ws-security</artifactId>
-        <version>3.0.4.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ws</groupId>
-        <artifactId>spring-ws-support</artifactId>
-        <version>3.0.4.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ws</groupId>
-        <artifactId>spring-ws-test</artifactId>
-        <version>3.0.4.RELEASE</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.ws</groupId>
-        <artifactId>spring-xml</artifactId>
-        <version>3.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.synchronoss.cloud</groupId>
-        <artifactId>nio-multipart-parser</artifactId>
-        <version>1.1.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.thymeleaf</groupId>
-        <artifactId>thymeleaf</artifactId>
-        <version>3.0.11.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.thymeleaf</groupId>
-        <artifactId>thymeleaf-spring5</artifactId>
-        <version>3.0.11.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.thymeleaf.extras</groupId>
-        <artifactId>thymeleaf-extras-java8time</artifactId>
-        <version>3.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.thymeleaf.extras</groupId>
-        <artifactId>thymeleaf-extras-springsecurity5</artifactId>
-        <version>3.0.4.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.webjars</groupId>
-        <artifactId>hal-browser</artifactId>
-        <version>3325375</version>
-      </dependency>
-      <dependency>
-        <groupId>org.webjars</groupId>
-        <artifactId>webjars-locator-core</artifactId>
-        <version>0.35</version>
-      </dependency>
-      <dependency>
-        <groupId>org.xerial</groupId>
-        <artifactId>sqlite-jdbc</artifactId>
-        <version>3.25.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-legacy</artifactId>
-        <version>2.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.yaml</groupId>
-        <artifactId>snakeyaml</artifactId>
-        <version>1.23</version>
-      </dependency>
-      <dependency>
-        <groupId>redis.clients</groupId>
-        <artifactId>jedis</artifactId>
-        <version>2.9.0</version>
-      </dependency>
-      <dependency>
-        <groupId>wsdl4j</groupId>
-        <artifactId>wsdl4j</artifactId>
-        <version>1.6.3</version>
-      </dependency>
-      <dependency>
-        <groupId>xml-apis</groupId>
-        <artifactId>xml-apis</artifactId>
-        <version>1.4.01</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-avro</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-cbor</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-csv</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-ion</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-properties</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-protobuf</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-smile</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-guava</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-hibernate3</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-hibernate4</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-hibernate5</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-hppc</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-jaxrs</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-joda</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-jdk8</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-json-org</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-jsr310</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-jsr353</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.datatype</groupId>
-        <artifactId>jackson-datatype-pcollections</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-base</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-cbor-provider</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-json-provider</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-smile-provider</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-xml-provider</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jaxrs</groupId>
-        <artifactId>jackson-jaxrs-yaml-provider</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jr</groupId>
-        <artifactId>jackson-jr-all</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jr</groupId>
-        <artifactId>jackson-jr-objects</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jr</groupId>
-        <artifactId>jackson-jr-retrofit2</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.jr</groupId>
-        <artifactId>jackson-jr-stree</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-afterburner</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-guice</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-jsonSchema</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-kotlin</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-mrbean</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-osgi</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-parameter-names</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-paranamer</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-scala_2.10</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-scala_2.11</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-scala_2.12</artifactId>
-        <version>2.9.7</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-buffer</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-dns</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-haproxy</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-http</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-http2</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-memcache</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-mqtt</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-redis</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-smtp</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-socks</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-stomp</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-codec-xml</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-common</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-dev-tools</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-handler</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-handler-proxy</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-resolver</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-resolver-dns</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-rxtx</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-sctp</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-udt</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-example</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-all</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-unix-common</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-unix-common</artifactId>
-        <version>4.1.31.Final</version>
-        <classifier>linux-x86_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-unix-common</artifactId>
-        <version>4.1.31.Final</version>
-        <classifier>osx-x86_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-epoll</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-epoll</artifactId>
-        <version>4.1.31.Final</version>
-        <classifier>linux-x86_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-kqueue</artifactId>
-        <version>4.1.31.Final</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-transport-native-kqueue</artifactId>
-        <version>4.1.31.Final</version>
-        <classifier>osx-x86_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor</groupId>
-        <artifactId>reactor-core</artifactId>
-        <version>3.2.3.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor</groupId>
-        <artifactId>reactor-test</artifactId>
-        <version>3.2.3.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.addons</groupId>
-        <artifactId>reactor-extra</artifactId>
-        <version>3.2.0.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.addons</groupId>
-        <artifactId>reactor-adapter</artifactId>
-        <version>3.2.0.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.addons</groupId>
-        <artifactId>reactor-logback</artifactId>
-        <version>3.2.0.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.netty</groupId>
-        <artifactId>reactor-netty</artifactId>
-        <version>0.8.3.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>io.projectreactor.kafka</groupId>
-        <artifactId>reactor-kafka</artifactId>
-        <version>1.1.0.RELEASE</version>
-        <scope>compile</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jmx-gui</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-couchdb</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-mongodb2</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-mongodb3</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-cassandra</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jpa</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-liquibase</artifactId>
-        <version>2.11.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>apache-jsp</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>apache-jstl</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-java-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-java-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-openjdk8-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-openjdk8-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-conscrypt-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-conscrypt-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-alpn-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-annotations</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-ant</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.cdi</groupId>
-        <artifactId>cdi-core</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.cdi</groupId>
-        <artifactId>cdi-servlet</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-continuation</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-deploy</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-distribution</artifactId>
-        <version>9.4.12.v20180830</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-distribution</artifactId>
-        <version>9.4.12.v20180830</version>
-        <type>tar.gz</type>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.fcgi</groupId>
-        <artifactId>fcgi-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.fcgi</groupId>
-        <artifactId>fcgi-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.gcloud</groupId>
-        <artifactId>jetty-gcloud-session-manager</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-home</artifactId>
-        <version>9.4.12.v20180830</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-home</artifactId>
-        <version>9.4.12.v20180830</version>
-        <type>tar.gz</type>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-http</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.http2</groupId>
-        <artifactId>http2-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.http2</groupId>
-        <artifactId>http2-common</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.http2</groupId>
-        <artifactId>http2-hpack</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.http2</groupId>
-        <artifactId>http2-http-client-transport</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.http2</groupId>
-        <artifactId>http2-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-http-spi</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-infinispan</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-hazelcast</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-io</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jaas</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jaspi</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jmx</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jndi</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.memcached</groupId>
-        <artifactId>jetty-memcached-sessions</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-nosql</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.osgi</groupId>
-        <artifactId>jetty-osgi-boot</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.osgi</groupId>
-        <artifactId>jetty-osgi-boot-jsp</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.osgi</groupId>
-        <artifactId>jetty-osgi-boot-warurl</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.osgi</groupId>
-        <artifactId>jetty-httpservice</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-plus</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-proxy</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-quickstart</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-rewrite</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-security</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-servlet</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-servlets</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-spring</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-unixsocket</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-util</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-util-ajax</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-webapp</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>javax-websocket-client-impl</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>javax-websocket-server-impl</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>websocket-api</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>websocket-client</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>websocket-common</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>websocket-server</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty.websocket</groupId>
-        <artifactId>websocket-servlet</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-xml</artifactId>
-        <version>9.4.12.v20180830</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.core</groupId>
-        <artifactId>jersey-common</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.core</groupId>
-        <artifactId>jersey-client</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.core</groupId>
-        <artifactId>jersey-server</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.bundles</groupId>
-        <artifactId>jaxrs-ri</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.connectors</groupId>
-        <artifactId>jersey-apache-connector</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.connectors</groupId>
-        <artifactId>jersey-grizzly-connector</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.connectors</groupId>
-        <artifactId>jersey-jetty-connector</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.connectors</groupId>
-        <artifactId>jersey-jdk-connector</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.connectors</groupId>
-        <artifactId>jersey-netty-connector</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-jetty-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-grizzly2-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-grizzly2-servlet</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-jetty-servlet</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-jdk-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-netty-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-servlet</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-servlet-core</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers</groupId>
-        <artifactId>jersey-container-simple-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.containers.glassfish</groupId>
-        <artifactId>jersey-gf-ejb</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-bean-validation</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-entity-filtering</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-metainf-services</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-mvc</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-mvc-bean-validation</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-mvc-freemarker</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-mvc-jsp</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-mvc-mustache</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-proxy-client</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-servlet-portability</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-spring4</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-declarative-linking</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext</groupId>
-        <artifactId>jersey-wadl-doclet</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-weld2-se</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-cdi1x</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-cdi1x-transaction</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-cdi1x-validation</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-cdi1x-servlet</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.cdi</groupId>
-        <artifactId>jersey-cdi1x-ban-custom-hk2-binding</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.rx</groupId>
-        <artifactId>jersey-rx-client-guava</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.rx</groupId>
-        <artifactId>jersey-rx-client-rxjava</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.ext.rx</groupId>
-        <artifactId>jersey-rx-client-rxjava2</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-jaxb</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-json-jackson</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-json-jackson1</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-json-jettison</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-json-processing</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-json-binding</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-kryo</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-moxy</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-multipart</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.media</groupId>
-        <artifactId>jersey-media-sse</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.security</groupId>
-        <artifactId>oauth1-client</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.security</groupId>
-        <artifactId>oauth1-server</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.security</groupId>
-        <artifactId>oauth1-signature</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.security</groupId>
-        <artifactId>oauth2-client</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.inject</groupId>
-        <artifactId>jersey-hk2</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.inject</groupId>
-        <artifactId>jersey-cdi2-se</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework</groupId>
-        <artifactId>jersey-test-framework-core</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-bundle</artifactId>
-        <version>2.27</version>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-external</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-inmemory</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-jdk-http</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-simple</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
-        <artifactId>jersey-test-framework-provider-jetty</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.glassfish.jersey.test-framework</groupId>
-        <artifactId>jersey-test-framework-util</artifactId>
-        <version>2.27</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-api</artifactId>
-        <version>5.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-engine</artifactId>
-        <version>5.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-migrationsupport</artifactId>
-        <version>5.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.jupiter</groupId>
-        <artifactId>junit-jupiter-params</artifactId>
-        <version>5.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-commons</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-console</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-engine</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-launcher</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-runner</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-suite-api</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.platform</groupId>
-        <artifactId>junit-platform-surefire-provider</artifactId>
-        <version>1.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.junit.vintage</groupId>
-        <artifactId>junit-vintage-engine</artifactId>
-        <version>5.3.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-cassandra</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-commons</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-couchbase</artifactId>
-        <version>3.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-elasticsearch</artifactId>
-        <version>3.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-gemfire</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-geode</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-jdbc</artifactId>
-        <version>1.0.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-jpa</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-mongodb</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-mongodb-cross-store</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-neo4j</artifactId>
-        <version>5.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-redis</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-rest-webmvc</artifactId>
-        <version>3.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-rest-core</artifactId>
-        <version>3.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-rest-hal-browser</artifactId>
-        <version>3.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-solr</artifactId>
-        <version>4.0.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-keyvalue</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-envers</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.data</groupId>
-        <artifactId>spring-data-ldap</artifactId>
-        <version>2.1.3.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-amqp</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-core</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-event</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-feed</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-file</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-ftp</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-gemfire</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-groovy</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-ip</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-jdbc</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-jms</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-jmx</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-jpa</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-mail</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-mongodb</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-mqtt</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-redis</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-rmi</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-scripting</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-security</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-sftp</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-stomp</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-stream</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-syslog</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-test</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-test-support</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-webflux</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-websocket</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-ws</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-xml</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-xmpp</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.integration</groupId>
-        <artifactId>spring-integration-zookeeper</artifactId>
-        <version>5.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-acl</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-aspects</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-cas</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-config</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-core</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-crypto</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-data</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-ldap</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-messaging</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-oauth2-client</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-oauth2-core</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-oauth2-jose</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-oauth2-resource-server</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-openid</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-remoting</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-taglibs</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-test</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.security</groupId>
-        <artifactId>spring-security-web</artifactId>
-        <version>5.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-data-gemfire</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-jdbc</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-data-geode</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-hazelcast</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-data-mongodb</artifactId>
-        <version>2.1.1.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-core</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.session</groupId>
-        <artifactId>spring-session-data-redis</artifactId>
-        <version>2.1.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-starter-config</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-config-client</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-config-server</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-config-monitor</artifactId>
-        <version>2.0.2.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jgit</groupId>
-        <artifactId>org.eclipse.jgit</artifactId>
-        <version>4.11.0.201803080745-r</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jgit</groupId>
-        <artifactId>org.eclipse.jgit.junit.http</artifactId>
-        <version>4.11.0.201803080745-r</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.jgit</groupId>
-        <artifactId>org.eclipse.jgit.http.apache</artifactId>
-        <version>4.11.0.201803080745-r</version>
-      </dependency>
-      <dependency>
-        <groupId>com.jcraft</groupId>
-        <artifactId>jsch</artifactId>
-        <version>0.1.54</version>
-      </dependency>
-      <dependency>
-        <groupId>org.tmatesoft.svnkit</groupId>
-        <artifactId>svnkit</artifactId>
-        <version>1.8.12</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
-        <version>2.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-starter-bus-kafka</artifactId>
-        <version>2.1.0.RELEASE</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework.cloud</groupId>
-        <artifactId>spring-cloud-bus</artifactId>
-        <version>2.1.0.RELEASE</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.12</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-config-server</artifactId>
-      <version>2.0.2.RELEASE</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot</artifactId>
-      <version>2.1.1.RELEASE</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-      <version>5.0.12.RELEASE</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc</artifactId>
-      <version>5.0.12.RELEASE</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-all</artifactId>
-      <version>1.3</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>1.2</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-api</artifactId>
-      <version>2.12.0-SNAPSHOT</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <version>2.12.0-SNAPSHOT</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-core</artifactId>
-      <version>2.12.0-SNAPSHOT</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <repositories>
-    <repository>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <id>central</id>
-      <name>nextiva-public</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/groups/public</url>
-    </repository>
-    <repository>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <id>thirdparty</id>
-      <name>ThirdParty</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/thirdparty</url>
-    </repository>
-    <repository>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-      <id>apache.snapshots.https</id>
-      <name>apache-snapshots</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/apache-snapshots/</url>
-    </repository>
-    <repository>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <id>releases</id>
-      <name>nextiva-releases</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/releases</url>
-    </repository>
-    <repository>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-      <id>snapshots</id>
-      <name>snapshots</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots</url>
-    </repository>
-    <repository>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <id>apache.snapshots</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/snapshots</url>
-    </repository>
-  </repositories>
-  <pluginRepositories>
-    <pluginRepository>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-      <id>central</id>
-      <name>nextiva-public</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/groups/public</url>
-    </pluginRepository>
-    <pluginRepository>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-      <id>snapshots</id>
-      <name>nextiva-snapshots</name>
-      <url>http://repository.nextiva.xyz:8081/nexus/content/repositories/snapshots</url>
-    </pluginRepository>
-    <pluginRepository>
-      <id>apache</id>
-      <url>https://repository.apache.org/content/repositories/releases/</url>
-    </pluginRepository>
-  </pluginRepositories>
-  <build>
-    <sourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java</sourceDirectory>
-    <scriptSourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/scripts</scriptSourceDirectory>
-    <testSourceDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/test/java</testSourceDirectory>
-    <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes</outputDirectory>
-    <testOutputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/test-classes</testOutputDirectory>
-    <resources>
-      <resource>
-        <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/resources</directory>
-      </resource>
-    </resources>
-    <testResources>
-      <testResource>
-        <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/test/resources</directory>
-      </testResource>
-    </testResources>
-    <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target</directory>
-    <finalName>log4j-spring-cloud-config-server-2.12.0-SNAPSHOT</finalName>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <artifactId>maven-antrun-plugin</artifactId>
-          <version>1.8</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>2.5</version>
-        </plugin>
-        <plugin>
-          <groupId>org.eluder.coveralls</groupId>
-          <artifactId>coveralls-maven-plugin</artifactId>
-          <version>4.3.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>0.8.1</version>
-          <executions>
-            <execution>
-              <id>prepare-agent</id>
-              <goals>
-                <goal>prepare-agent</goal>
-              </goals>
-            </execution>
-            <execution>
-              <id>default-report</id>
-              <phase>prepare-package</phase>
-              <goals>
-                <goal>report</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-pmd-plugin</artifactId>
-          <version>3.10.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.0</version>
-          <configuration>
-            <source>1.7</source>
-            <target>1.7</target>
-            <showDeprecation>true</showDeprecation>
-            <showWarnings>true</showWarnings>
-            <encoding>UTF-8</encoding>
-            <fork>true</fork>
-            <meminitial>256</meminitial>
-            <maxmem>1024</maxmem>
-            <compilerArguments>
-              <Xmaxwarns>10000</Xmaxwarns>
-              <Xlint />
-            </compilerArguments>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-dependency-plugin</artifactId>
-          <version>3.1.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-deploy-plugin</artifactId>
-          <version>2.8.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-docck-plugin</artifactId>
-          <version>1.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-ear-plugin</artifactId>
-          <version>3.0.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-enforcer-plugin</artifactId>
-          <version>1.4.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-failsafe-plugin</artifactId>
-          <version>2.21.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-gpg-plugin</artifactId>
-          <version>1.6</version>
-          <configuration>
-            <gpgArguments>
-              <arg>--digest-algo=SHA512</arg>
-            </gpgArguments>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-help-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-install-plugin</artifactId>
-          <version>2.5.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-invoker-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.1.0</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-              <configuration>
-                <archive>
-                  <manifestFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestFile>
-                  <manifestEntries>
-                    <Specification-Title>Apache Log4j Spring Cloud Config Server Support</Specification-Title>
-                    <Specification-Version>2.12.0-SNAPSHOT</Specification-Version>
-                    <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
-                    <Implementation-Title>Apache Log4j Spring Cloud Config Server Support</Implementation-Title>
-                    <Implementation-Version>2.12.0-SNAPSHOT</Implementation-Version>
-                    <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
-                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    <X-Compile-Source-JDK>1.7</X-Compile-Source-JDK>
-                    <X-Compile-Target-JDK>1.7</X-Compile-Target-JDK>
-                    <Automatic-Module-Name>org.apache.logging.log4j.spring.cloud.config.controller</Automatic-Module-Name>
-                  </manifestEntries>
-                  <manifest>
-                    <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                  </manifest>
-                </archive>
-              </configuration>
-            </execution>
-          </executions>
-          <configuration>
-            <archive>
-              <manifest>
-                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-              </manifest>
-            </archive>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.0.1</version>
-          <configuration>
-            <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-            <doclint>none</doclint>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-plugin-plugin</artifactId>
-          <version>3.5.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.felix</groupId>
-          <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.5.0</version>
-          <extensions>true</extensions>
-          <executions>
-            <execution>
-              <phase>process-classes</phase>
-              <goals>
-                <goal>manifest</goal>
-              </goals>
-            </execution>
-          </executions>
-          <inherited>true</inherited>
-        </plugin>
-        <plugin>
-          <artifactId>maven-changes-plugin</artifactId>
-          <version>2.12.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>2.5.3</version>
-          <configuration>
-            <useReleaseProfile>false</useReleaseProfile>
-            <goals>deploy</goals>
-            <arguments>-Papache-release</arguments>
-            <waitBeforeTagging>10</waitBeforeTagging>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-remote-resources-plugin</artifactId>
-          <version>1.5</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-resources-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-scm-plugin</artifactId>
-          <version>1.9.5</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-scm-publish-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>3.7.1</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-source-plugin</artifactId>
-          <version>3.0.1</version>
-          <executions>
-            <execution>
-              <id>attach-sources</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>jar-no-fork</goal>
-                <goal>test-jar-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.21.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-surefire-report-plugin</artifactId>
-          <version>2.22.0</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-war-plugin</artifactId>
-          <version>3.2.2</version>
-        </plugin>
-        <plugin>
-          <artifactId>maven-shade-plugin</artifactId>
-          <version>3.1.1</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <version>0.12</version>
-        </plugin>
-        <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>clirr-maven-plugin</artifactId>
-          <version>2.8</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <version>1.5</version>
-        <executions>
-          <execution>
-            <id>process-resource-bundles</id>
-            <goals>
-              <goal>process</goal>
-            </goals>
-            <configuration>
-              <resourceBundles>
-                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
-              </resourceBundles>
-            </configuration>
-          </execution>
-          <execution>
-            <goals>
-              <goal>process</goal>
-            </goals>
-            <configuration>
-              <skip>false</skip>
-              <resourceBundles />
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-enforcer-plugin</artifactId>
-        <version>1.4.1</version>
-        <executions>
-          <execution>
-            <id>enforce-maven-version</id>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
-            <configuration>
-              <rules>
-                <requireMavenVersion>
-                  <version>3.0.5</version>
-                </requireMavenVersion>
-              </rules>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>3.0.0</version>
-      </plugin>
-      <plugin>
-        <artifactId>maven-clean-plugin</artifactId>
-        <version>3.1.0</version>
-        <executions>
-          <execution>
-            <id>default-clean</id>
-            <phase>clean</phase>
-            <goals>
-              <goal>clean</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>3.0.2</version>
-        <executions>
-          <execution>
-            <id>default-testResources</id>
-            <phase>process-test-resources</phase>
-            <goals>
-              <goal>testResources</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>default-resources</id>
-            <phase>process-resources</phase>
-            <goals>
-              <goal>resources</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>copy-sitecss</id>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site/resources</directory>
-                  <includes>
-                    <include>**/*</include>
-                  </includes>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.21.0</version>
-        <executions>
-          <execution>
-            <id>default-test</id>
-            <phase>test</phase>
-            <goals>
-              <goal>test</goal>
-            </goals>
-            <configuration>
-              <systemPropertyVariables>
-                <java.awt.headless>true</java.awt.headless>
-              </systemPropertyVariables>
-              <forkCount>1</forkCount>
-              <reuseForks>false</reuseForks>
-              <excludes>
-                <exclude>${log4j.skip.test1}</exclude>
-                <exclude>${log4j.skip.test2}</exclude>
-              </excludes>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <excludes>
-            <exclude>${log4j.skip.test1}</exclude>
-            <exclude>${log4j.skip.test2}</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.21.0</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>integration-test</goal>
-              <goal>verify</goal>
-            </goals>
-            <configuration>
-              <systemPropertyVariables>
-                <java.awt.headless>true</java.awt.headless>
-              </systemPropertyVariables>
-              <argLine>-Xms256m -Xmx1024m</argLine>
-              <forkCount>1</forkCount>
-              <reuseForks>false</reuseForks>
-              <encoding>UTF-8</encoding>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <argLine>-Xms256m -Xmx1024m</argLine>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>3.4</version>
-        <executions>
-          <execution>
-            <id>default-site</id>
-            <phase>site</phase>
-            <goals>
-              <goal>site</goal>
-            </goals>
-            <configuration>
-              <locales>en</locales>
-              <moduleExcludes>
-                <xdoc>navigation.xml,changes.xml</xdoc>
-              </moduleExcludes>
-              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
-              <template>site.vm</template>
-              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-              <reportPlugins>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-changes-plugin</artifactId>
-                  <version>2.12.1</version>
-                  <configuration>
-                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                    <useJql>true</useJql>
-                    <statusIds>Resolved, Closed</statusIds>
-                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                        <useJql>true</useJql>
-                        <statusIds>Resolved, Closed</statusIds>
-                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                      </configuration>
-                      <reports>
-                        <report>changes-report</report>
-                        <report>changes-report</report>
-                        <report>jira-report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-project-info-reports-plugin</artifactId>
-                  <version>2.9</version>
-                  <configuration>
-                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                    <scmTag>log4j-2.11.2</scmTag>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                        <scmTag>log4j-2.11.2</scmTag>
-                      </configuration>
-                      <reports>
-                        <report>index</report>
-                        <report>dependencies</report>
-                        <report>dependency-info</report>
-                        <report>dependency-convergence</report>
-                        <report>dependency-management</report>
-                        <report>project-team</report>
-                        <report>mailing-list</report>
-                        <report>issue-tracking</report>
-                        <report>license</report>
-                        <report>scm</report>
-                        <report>summary</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-surefire-report-plugin</artifactId>
-                  <version>2.21.0</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>integration-tests</id>
-                      <reports>
-                        <report>failsafe-report-only</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.rat</groupId>
-                  <artifactId>apache-rat-plugin</artifactId>
-                  <version>0.12</version>
-                  <configuration>
-                    <excludes>
-                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                      <exclude>.idea/**/*</exclude>
-                      <exclude>src/test/resources/**/*</exclude>
-                      <exclude>src/ide/**</exclude>
-                      <exclude>**/*.asc</exclude>
-                      <exclude>src/site/resources/js/jquery.js</exclude>
-                      <exclude>src/site/resources/js/jquery.min.js</exclude>
-                      <exclude>log4j-distribution/target/**/*</exclude>
-                      <exclude>log4j-distribution/.project</exclude>
-                      <exclude>log4j-distribution/.settings/**</exclude>
-                      <exclude>velocity.log</exclude>
-                      <exclude>felix-cache/**</exclude>
-                      <exclude>RELEASE-NOTES.txt</exclude>
-                      <exclude>**/revapi.json</exclude>
-                    </excludes>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.revapi</groupId>
-                  <artifactId>revapi-maven-plugin</artifactId>
-                  <version>0.10.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <reports>
-                        <report>report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-checkstyle-plugin</artifactId>
-                  <version>3.0.0</version>
-                  <configuration>
-                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
-                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
-                    <enableRulesSummary>false</enableRulesSummary>
-                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
-                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-javadoc-plugin</artifactId>
-                  <version>3.0.1</version>
-                  <configuration>
-                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                    <detectOfflineLinks>false</detectOfflineLinks>
-                    <linksource>true</linksource>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <configuration>
-                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                        <detectOfflineLinks>false</detectOfflineLinks>
-                        <linksource>true</linksource>
-                      </configuration>
-                      <reports>
-                        <report>javadoc</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.codehaus.mojo</groupId>
-                  <artifactId>findbugs-maven-plugin</artifactId>
-                  <version>3.0.5</version>
-                  <configuration>
-                    <fork>true</fork>
-                    <jvmArgs>-Duser.language=en</jvmArgs>
-                    <threshold>Normal</threshold>
-                    <effort>Default</effort>
-                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-jxr-plugin</artifactId>
-                  <version>2.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <reports>
-                        <report>jxr</report>
-                      </reports>
-                    </reportSet>
-                    <reportSet>
-                      <id>aggregate</id>
-                      <reports>
-                        <report>aggregate</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-pmd-plugin</artifactId>
-                  <version>3.10.0</version>
-                  <configuration>
-                    <targetJdk>1.7</targetJdk>
-                  </configuration>
-                </reportPlugin>
-              </reportPlugins>
-            </configuration>
-          </execution>
-          <execution>
-            <id>default-deploy</id>
-            <phase>site-deploy</phase>
-            <goals>
-              <goal>deploy</goal>
-            </goals>
-            <configuration>
-              <locales>en</locales>
-              <moduleExcludes>
-                <xdoc>navigation.xml,changes.xml</xdoc>
-              </moduleExcludes>
-              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
-              <template>site.vm</template>
-              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-              <reportPlugins>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-changes-plugin</artifactId>
-                  <version>2.12.1</version>
-                  <configuration>
-                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                    <useJql>true</useJql>
-                    <statusIds>Resolved, Closed</statusIds>
-                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                        <useJql>true</useJql>
-                        <statusIds>Resolved, Closed</statusIds>
-                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                      </configuration>
-                      <reports>
-                        <report>changes-report</report>
-                        <report>changes-report</report>
-                        <report>jira-report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-project-info-reports-plugin</artifactId>
-                  <version>2.9</version>
-                  <configuration>
-                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                    <scmTag>log4j-2.11.2</scmTag>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                        <scmTag>log4j-2.11.2</scmTag>
-                      </configuration>
-                      <reports>
-                        <report>index</report>
-                        <report>dependencies</report>
-                        <report>dependency-info</report>
-                        <report>dependency-convergence</report>
-                        <report>dependency-management</report>
-                        <report>project-team</report>
-                        <report>mailing-list</report>
-                        <report>issue-tracking</report>
-                        <report>license</report>
-                        <report>scm</report>
-                        <report>summary</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-surefire-report-plugin</artifactId>
-                  <version>2.21.0</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>integration-tests</id>
-                      <reports>
-                        <report>failsafe-report-only</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.rat</groupId>
-                  <artifactId>apache-rat-plugin</artifactId>
-                  <version>0.12</version>
-                  <configuration>
-                    <excludes>
-                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                      <exclude>.idea/**/*</exclude>
-                      <exclude>src/test/resources/**/*</exclude>
-                      <exclude>src/ide/**</exclude>
-                      <exclude>**/*.asc</exclude>
-                      <exclude>src/site/resources/js/jquery.js</exclude>
-                      <exclude>src/site/resources/js/jquery.min.js</exclude>
-                      <exclude>log4j-distribution/target/**/*</exclude>
-                      <exclude>log4j-distribution/.project</exclude>
-                      <exclude>log4j-distribution/.settings/**</exclude>
-                      <exclude>velocity.log</exclude>
-                      <exclude>felix-cache/**</exclude>
-                      <exclude>RELEASE-NOTES.txt</exclude>
-                      <exclude>**/revapi.json</exclude>
-                    </excludes>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.revapi</groupId>
-                  <artifactId>revapi-maven-plugin</artifactId>
-                  <version>0.10.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <reports>
-                        <report>report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-checkstyle-plugin</artifactId>
-                  <version>3.0.0</version>
-                  <configuration>
-                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
-                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
-                    <enableRulesSummary>false</enableRulesSummary>
-                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
-                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-javadoc-plugin</artifactId>
-                  <version>3.0.1</version>
-                  <configuration>
-                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                    <detectOfflineLinks>false</detectOfflineLinks>
-                    <linksource>true</linksource>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <configuration>
-                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                        <detectOfflineLinks>false</detectOfflineLinks>
-                        <linksource>true</linksource>
-                      </configuration>
-                      <reports>
-                        <report>javadoc</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.codehaus.mojo</groupId>
-                  <artifactId>findbugs-maven-plugin</artifactId>
-                  <version>3.0.5</version>
-                  <configuration>
-                    <fork>true</fork>
-                    <jvmArgs>-Duser.language=en</jvmArgs>
-                    <threshold>Normal</threshold>
-                    <effort>Default</effort>
-                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-jxr-plugin</artifactId>
-                  <version>2.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <reports>
-                        <report>jxr</report>
-                      </reports>
-                    </reportSet>
-                    <reportSet>
-                      <id>aggregate</id>
-                      <reports>
-                        <report>aggregate</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-pmd-plugin</artifactId>
-                  <version>3.10.0</version>
-                  <configuration>
-                    <targetJdk>1.7</targetJdk>
-                  </configuration>
-                </reportPlugin>
-              </reportPlugins>
-            </configuration>
-          </execution>
-          <execution>
-            <id>attach-descriptor</id>
-            <goals>
-              <goal>attach-descriptor</goal>
-            </goals>
-            <configuration>
-              <locales>en</locales>
-              <moduleExcludes>
-                <xdoc>navigation.xml,changes.xml</xdoc>
-              </moduleExcludes>
-              <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
-              <template>site.vm</template>
-              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-              <reportPlugins>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-changes-plugin</artifactId>
-                  <version>2.12.1</version>
-                  <configuration>
-                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                    <useJql>true</useJql>
-                    <statusIds>Resolved, Closed</statusIds>
-                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                        <useJql>true</useJql>
-                        <statusIds>Resolved, Closed</statusIds>
-                        <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                      </configuration>
-                      <reports>
-                        <report>changes-report</report>
-                        <report>changes-report</report>
-                        <report>jira-report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-project-info-reports-plugin</artifactId>
-                  <version>2.9</version>
-                  <configuration>
-                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                    <scmTag>log4j-2.11.2</scmTag>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <configuration>
-                        <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                        <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                        <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                        <scmTag>log4j-2.11.2</scmTag>
-                      </configuration>
-                      <reports>
-                        <report>index</report>
-                        <report>dependencies</report>
-                        <report>dependency-info</report>
-                        <report>dependency-convergence</report>
-                        <report>dependency-management</report>
-                        <report>project-team</report>
-                        <report>mailing-list</report>
-                        <report>issue-tracking</report>
-                        <report>license</report>
-                        <report>scm</report>
-                        <report>summary</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-surefire-report-plugin</artifactId>
-                  <version>2.21.0</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>integration-tests</id>
-                      <reports>
-                        <report>failsafe-report-only</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.rat</groupId>
-                  <artifactId>apache-rat-plugin</artifactId>
-                  <version>0.12</version>
-                  <configuration>
-                    <excludes>
-                      <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                      <exclude>.idea/**/*</exclude>
-                      <exclude>src/test/resources/**/*</exclude>
-                      <exclude>src/ide/**</exclude>
-                      <exclude>**/*.asc</exclude>
-                      <exclude>src/site/resources/js/jquery.js</exclude>
-                      <exclude>src/site/resources/js/jquery.min.js</exclude>
-                      <exclude>log4j-distribution/target/**/*</exclude>
-                      <exclude>log4j-distribution/.project</exclude>
-                      <exclude>log4j-distribution/.settings/**</exclude>
-                      <exclude>velocity.log</exclude>
-                      <exclude>felix-cache/**</exclude>
-                      <exclude>RELEASE-NOTES.txt</exclude>
-                      <exclude>**/revapi.json</exclude>
-                    </excludes>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.revapi</groupId>
-                  <artifactId>revapi-maven-plugin</artifactId>
-                  <version>0.10.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>default</id>
-                      <reports>
-                        <report>report</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-checkstyle-plugin</artifactId>
-                  <version>3.0.0</version>
-                  <configuration>
-                    <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
-                    <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
-                    <enableRulesSummary>false</enableRulesSummary>
-                    <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
-                    <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-javadoc-plugin</artifactId>
-                  <version>3.0.1</version>
-                  <configuration>
-                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                    <detectOfflineLinks>false</detectOfflineLinks>
-                    <linksource>true</linksource>
-                  </configuration>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <configuration>
-                        <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                        <detectOfflineLinks>false</detectOfflineLinks>
-                        <linksource>true</linksource>
-                      </configuration>
-                      <reports>
-                        <report>javadoc</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.codehaus.mojo</groupId>
-                  <artifactId>findbugs-maven-plugin</artifactId>
-                  <version>3.0.5</version>
-                  <configuration>
-                    <fork>true</fork>
-                    <jvmArgs>-Duser.language=en</jvmArgs>
-                    <threshold>Normal</threshold>
-                    <effort>Default</effort>
-                    <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
-                  </configuration>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-jxr-plugin</artifactId>
-                  <version>2.5</version>
-                  <reportSets>
-                    <reportSet>
-                      <id>non-aggregate</id>
-                      <reports>
-                        <report>jxr</report>
-                      </reports>
-                    </reportSet>
-                    <reportSet>
-                      <id>aggregate</id>
-                      <reports>
-                        <report>aggregate</report>
-                      </reports>
-                    </reportSet>
-                  </reportSets>
-                </reportPlugin>
-                <reportPlugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-pmd-plugin</artifactId>
-                  <version>3.10.0</version>
-                  <configuration>
-                    <targetJdk>1.7</targetJdk>
-                  </configuration>
-                </reportPlugin>
-              </reportPlugins>
-            </configuration>
-          </execution>
-        </executions>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity</artifactId>
-            <version>1.5</version>
-            <scope>compile</scope>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.maven.wagon</groupId>
-            <artifactId>wagon-ssh</artifactId>
-            <version>3.1.0</version>
-            <scope>compile</scope>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <locales>en</locales>
-          <moduleExcludes>
-            <xdoc>navigation.xml,changes.xml</xdoc>
-          </moduleExcludes>
-          <templateDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../src/site</templateDirectory>
-          <template>site.vm</template>
-          <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-          <reportPlugins>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-changes-plugin</artifactId>
-              <version>2.12.1</version>
-              <configuration>
-                <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                <useJql>true</useJql>
-                <statusIds>Resolved, Closed</statusIds>
-                <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-              </configuration>
-              <reportSets>
-                <reportSet>
-                  <id>default</id>
-                  <configuration>
-                    <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-                    <useJql>true</useJql>
-                    <statusIds>Resolved, Closed</statusIds>
-                    <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-                  </configuration>
-                  <reports>
-                    <report>changes-report</report>
-                    <report>changes-report</report>
-                    <report>jira-report</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-project-info-reports-plugin</artifactId>
-              <version>2.9</version>
-              <configuration>
-                <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                <scmTag>log4j-2.11.2</scmTag>
-              </configuration>
-              <reportSets>
-                <reportSet>
-                  <id>default</id>
-                  <configuration>
-                    <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-                    <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-                    <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-                    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-                    <scmTag>log4j-2.11.2</scmTag>
-                  </configuration>
-                  <reports>
-                    <report>index</report>
-                    <report>dependencies</report>
-                    <report>dependency-info</report>
-                    <report>dependency-convergence</report>
-                    <report>dependency-management</report>
-                    <report>project-team</report>
-                    <report>mailing-list</report>
-                    <report>issue-tracking</report>
-                    <report>license</report>
-                    <report>scm</report>
-                    <report>summary</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-surefire-report-plugin</artifactId>
-              <version>2.21.0</version>
-              <reportSets>
-                <reportSet>
-                  <id>integration-tests</id>
-                  <reports>
-                    <report>failsafe-report-only</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.rat</groupId>
-              <artifactId>apache-rat-plugin</artifactId>
-              <version>0.12</version>
-              <configuration>
-                <excludes>
-                  <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                  <exclude>.idea/**/*</exclude>
-                  <exclude>src/test/resources/**/*</exclude>
-                  <exclude>src/ide/**</exclude>
-                  <exclude>**/*.asc</exclude>
-                  <exclude>src/site/resources/js/jquery.js</exclude>
-                  <exclude>src/site/resources/js/jquery.min.js</exclude>
-                  <exclude>log4j-distribution/target/**/*</exclude>
-                  <exclude>log4j-distribution/.project</exclude>
-                  <exclude>log4j-distribution/.settings/**</exclude>
-                  <exclude>velocity.log</exclude>
-                  <exclude>felix-cache/**</exclude>
-                  <exclude>RELEASE-NOTES.txt</exclude>
-                  <exclude>**/revapi.json</exclude>
-                </excludes>
-              </configuration>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.revapi</groupId>
-              <artifactId>revapi-maven-plugin</artifactId>
-              <version>0.10.5</version>
-              <reportSets>
-                <reportSet>
-                  <id>default</id>
-                  <reports>
-                    <report>report</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-checkstyle-plugin</artifactId>
-              <version>3.0.0</version>
-              <configuration>
-                <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
-                <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
-                <enableRulesSummary>false</enableRulesSummary>
-                <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
-                <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
-              </configuration>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-javadoc-plugin</artifactId>
-              <version>3.0.1</version>
-              <configuration>
-                <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                <detectOfflineLinks>false</detectOfflineLinks>
-                <linksource>true</linksource>
-              </configuration>
-              <reportSets>
-                <reportSet>
-                  <id>non-aggregate</id>
-                  <configuration>
-                    <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-                    <detectOfflineLinks>false</detectOfflineLinks>
-                    <linksource>true</linksource>
-                  </configuration>
-                  <reports>
-                    <report>javadoc</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.codehaus.mojo</groupId>
-              <artifactId>findbugs-maven-plugin</artifactId>
-              <version>3.0.5</version>
-              <configuration>
-                <fork>true</fork>
-                <jvmArgs>-Duser.language=en</jvmArgs>
-                <threshold>Normal</threshold>
-                <effort>Default</effort>
-                <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
-              </configuration>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-jxr-plugin</artifactId>
-              <version>2.5</version>
-              <reportSets>
-                <reportSet>
-                  <id>non-aggregate</id>
-                  <reports>
-                    <report>jxr</report>
-                  </reports>
-                </reportSet>
-                <reportSet>
-                  <id>aggregate</id>
-                  <reports>
-                    <report>aggregate</report>
-                  </reports>
-                </reportSet>
-              </reportSets>
-            </reportPlugin>
-            <reportPlugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-pmd-plugin</artifactId>
-              <version>3.10.0</version>
-              <configuration>
-                <targetJdk>1.7</targetJdk>
-              </configuration>
-            </reportPlugin>
-          </reportPlugins>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-pdf-plugin</artifactId>
-        <version>1.2</version>
-        <executions>
-          <execution>
-            <id>pdf</id>
-            <phase>site</phase>
-            <goals>
-              <goal>pdf</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-source-plugin</artifactId>
-        <version>3.0.1</version>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <phase>verify</phase>
-            <goals>
-              <goal>jar-no-fork</goal>
-              <goal>test-jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>0.12</version>
-        <configuration>
-          <excludes>
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <exclude>src/ide/**</exclude>
-            <exclude>**/*.asc</exclude>
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <exclude>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.md</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-doap-plugin</artifactId>
-        <version>1.2</version>
-        <executions>
-          <execution>
-            <id>site</id>
-            <phase>site</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-            <configuration>
-              <doapOptions>
-                <programmingLanguage>Java</programmingLanguage>
-                <category>library</category>
-              </doapOptions>
-              <asfExtOptions>
-                <charter>The Apache Logging Services Project creates and maintains open-source software related to the logging of
-              application behavior and released at no charge to the public.</charter>
-                <pmc>https://logging.apache.org</pmc>
-              </asfExtOptions>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <doapOptions>
-            <programmingLanguage>Java</programmingLanguage>
-            <category>library</category>
-          </doapOptions>
-          <asfExtOptions>
-            <charter>The Apache Logging Services Project creates and maintains open-source software related to the logging of
-              application behavior and released at no charge to the public.</charter>
-            <pmc>https://logging.apache.org</pmc>
-          </asfExtOptions>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.revapi</groupId>
-        <artifactId>revapi-maven-plugin</artifactId>
-        <version>0.10.5</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>check</goal>
-            </goals>
-            <configuration>
-              <checkDependencies>false</checkDependencies>
-              <skip>true</skip>
-              <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
-              <analysisConfigurationFiles>
-                <path>revapi.json</path>
-              </analysisConfigurationFiles>
-              <analysisConfiguration>[
-  {
-     "extension": "revapi.java",
-     "configuration": {
-       "missing-classes": {
-         "behavior": "report",
-         "ignoreMissingAnnotations": false
-       },
-       "reportUsesFor": [
-          "java.missing.newClass",
-          "java.class.nonPublicPartOfAPI"
-       ],
-       "filter": {
-         "classes": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         },
-         "packages": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         }
-       }
-     }
-  }
-]</analysisConfiguration>
-            </configuration>
-          </execution>
-        </executions>
-        <dependencies>
-          <dependency>
-            <groupId>org.revapi</groupId>
-            <artifactId>revapi-java</artifactId>
-            <version>0.18.2</version>
-            <scope>compile</scope>
-          </dependency>
-        </dependencies>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <version>3.5.0</version>
-        <extensions>true</extensions>
-        <executions>
-          <execution>
-            <phase>process-classes</phase>
-            <goals>
-              <goal>manifest</goal>
-            </goals>
-            <configuration>
-              <instructions>
-                <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
-              </instructions>
-            </configuration>
-          </execution>
-        </executions>
-        <inherited>true</inherited>
-        <configuration>
-          <instructions>
-            <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <version>3.1.0</version>
-        <executions>
-          <execution>
-            <id>default-jar</id>
-            <phase>package</phase>
-            <goals>
-              <goal>jar</goal>
-            </goals>
-            <configuration>
-              <archive>
-                <manifestFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/classes/META-INF/MANIFEST.MF</manifestFile>
-                <manifestEntries>
-                  <Specification-Title>Apache Log4j Spring Cloud Config Server Support</Specification-Title>
-                  <Specification-Version>2.12.0-SNAPSHOT</Specification-Version>
-                  <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
-                  <Implementation-Title>Apache Log4j Spring Cloud Config Server Support</Implementation-Title>
-                  <Implementation-Version>2.12.0-SNAPSHOT</Implementation-Version>
-                  <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
-                  <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                  <X-Compile-Source-JDK>1.7</X-Compile-Source-JDK>
-                  <X-Compile-Target-JDK>1.7</X-Compile-Target-JDK>
-                  <Automatic-Module-Name>org.apache.logging.log4j.spring.cloud.config.controller</Automatic-Module-Name>
-                </manifestEntries>
-                <manifest>
-                  <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                  <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                </manifest>
-              </archive>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <archive>
-            <manifest>
-              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-            </manifest>
-          </archive>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.8.0</version>
-        <executions>
-          <execution>
-            <id>default-compile</id>
-            <phase>compile</phase>
-            <goals>
-              <goal>compile</goal>
-            </goals>
-            <configuration>
-              <source>1.7</source>
-              <target>1.7</target>
-              <showDeprecation>true</showDeprecation>
-              <showWarnings>true</showWarnings>
-              <encoding>UTF-8</encoding>
-              <fork>true</fork>
-              <meminitial>256</meminitial>
-              <maxmem>1024</maxmem>
-              <compilerArguments>
-                <Xmaxwarns>10000</Xmaxwarns>
-                <Xlint />
-              </compilerArguments>
-            </configuration>
-          </execution>
-          <execution>
-            <id>default-testCompile</id>
-            <phase>test-compile</phase>
-            <goals>
-              <goal>testCompile</goal>
-            </goals>
-            <configuration>
-              <source>1.7</source>
-              <target>1.7</target>
-              <showDeprecation>true</showDeprecation>
-              <showWarnings>true</showWarnings>
-              <encoding>UTF-8</encoding>
-              <fork>true</fork>
-              <meminitial>256</meminitial>
-              <maxmem>1024</maxmem>
-              <compilerArguments>
-                <Xmaxwarns>10000</Xmaxwarns>
-                <Xlint />
-              </compilerArguments>
-            </configuration>
-          </execution>
-        </executions>
-        <configuration>
-          <source>1.7</source>
-          <target>1.7</target>
-          <showDeprecation>true</showDeprecation>
-          <showWarnings>true</showWarnings>
-          <encoding>UTF-8</encoding>
-          <fork>true</fork>
-          <meminitial>256</meminitial>
-          <maxmem>1024</maxmem>
-          <compilerArguments>
-            <Xmaxwarns>10000</Xmaxwarns>
-            <Xlint />
-          </compilerArguments>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-install-plugin</artifactId>
-        <version>2.5.2</version>
-        <executions>
-          <execution>
-            <id>default-install</id>
-            <phase>install</phase>
-            <goals>
-              <goal>install</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-deploy-plugin</artifactId>
-        <version>2.8.2</version>
-        <executions>
-          <execution>
-            <id>default-deploy</id>
-            <phase>deploy</phase>
-            <goals>
-              <goal>deploy</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <reporting>
-    <outputDirectory>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/target/site</outputDirectory>
-    <plugins>
-      <plugin>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>2.12.1</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-              <report>changes-report</report>
-              <report>jira-report</report>
-            </reports>
-            <configuration>
-              <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-              <useJql>true</useJql>
-              <statusIds>Resolved, Closed</statusIds>
-              <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-            </configuration>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
-          <useJql>true</useJql>
-          <statusIds>Resolved, Closed</statusIds>
-          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.9</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>dependencies</report>
-              <report>dependency-info</report>
-              <report>dependency-convergence</report>
-              <report>dependency-management</report>
-              <report>project-team</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>scm</report>
-              <report>summary</report>
-            </reports>
-            <configuration>
-              <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-              <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-              <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-              <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-              <scmTag>log4j-2.11.2</scmTag>
-            </configuration>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <customBundle>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/site/custom/project-info-report.properties</customBundle>
-          <webAccessUrl>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary/log4j-spring-cloud-config/log4j-spring-cloud-config-server</webAccessUrl>
-          <anonymousConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</anonymousConnection>
-          <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git/log4j-spring-cloud-config/log4j-spring-cloud-config-server</developerConnection>
-          <scmTag>log4j-2.11.2</scmTag>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>2.21.0</version>
-        <reportSets>
-          <reportSet>
-            <id>integration-tests</id>
-            <reports>
-              <report>failsafe-report-only</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>0.12</version>
-        <configuration>
-          <excludes>
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <exclude>src/ide/**</exclude>
-            <exclude>**/*.asc</exclude>
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <exclude>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.txt</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.revapi</groupId>
-        <artifactId>revapi-maven-plugin</artifactId>
-        <version>0.10.5</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>3.0.0</version>
-        <configuration>
-          <configLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle.xml</configLocation>
-          <suppressionsLocation>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-suppressions.xml</suppressionsLocation>
-          <enableRulesSummary>false</enableRulesSummary>
-          <propertyExpansion>basedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server</propertyExpansion>
-          <propertyExpansion>licensedir=/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../checkstyle-header.txt</propertyExpansion>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>3.0.1</version>
-        <reportSets>
-          <reportSet>
-            <id>non-aggregate</id>
-            <reports>
-              <report>javadoc</report>
-            </reports>
-            <configuration>
-              <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-              <detectOfflineLinks>false</detectOfflineLinks>
-              <linksource>true</linksource>
-            </configuration>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <bottom>&lt;p align="center"&gt;Copyright &amp;#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.&lt;br /&gt;
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.&lt;/p&gt;</bottom>
-          <detectOfflineLinks>false</detectOfflineLinks>
-          <linksource>true</linksource>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>3.0.5</version>
-        <configuration>
-          <fork>true</fork>
-          <jvmArgs>-Duser.language=en</jvmArgs>
-          <threshold>Normal</threshold>
-          <effort>Default</effort>
-          <excludeFilterFile>/Users/rgoers/projects/apache/logging/log4j/release-2.x/log4j-spring-cloud-config/log4j-spring-cloud-config-server/../findbugs-exclude-filter.xml</excludeFilterFile>
-        </configuration>
-      </plugin>
-      <plugin>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.5</version>
-        <reportSets>
-          <reportSet>
-            <id>non-aggregate</id>
-            <reports>
-              <report>jxr</report>
-            </reports>
-          </reportSet>
-          <reportSet>
-            <id>aggregate</id>
-            <reports>
-              <report>aggregate</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <artifactId>maven-pmd-plugin</artifactId>
-        <version>3.10.0</version>
-        <configuration>
-          <targetJdk>1.7</targetJdk>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
-
-
-[INFO] ------------------------------------------------------------------------
-[INFO] BUILD SUCCESS
-[INFO] ------------------------------------------------------------------------
-[INFO] Total time: 3.315 s
-[INFO] Finished at: 2019-03-01T16:18:01-07:00
-[INFO] Final Memory: 26M/981M
-[INFO] ------------------------------------------------------------------------
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
deleted file mode 100644
index dbfc198..0000000
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright 2015-2016 the original author or authors.
- *
- * Licensed 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.spring.cloud.config.server.controller;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.config.environment.Environment;
-import org.springframework.cloud.config.server.environment.EnvironmentRepository;
-import org.springframework.cloud.config.server.resource.NoSuchResourceException;
-import org.springframework.cloud.config.server.resource.ResourceRepository;
-import org.springframework.core.io.Resource;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.util.StreamUtils;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.context.request.ServletWebRequest;
-import org.springframework.web.util.UrlPathHelper;
-
-import static org.springframework.cloud.config.server.support.EnvironmentPropertySource.prepareEnvironment;
-import static org.springframework.cloud.config.server.support.EnvironmentPropertySource.resolvePlaceholders;
-
-/**
- * Modified version of Spring Cloud Config's ResourceController to support If-Modified-Since.
- * Should be dropeed when Spring implements this.
- * <p>
- * An HTTP endpoint for serving up templated plain text resources from an underlying
- * repository. Can be used to supply config files for consumption by a wide variety of
- * applications and services. A {@link ResourceRepository} is used to locate a
- * {@link Resource}, specific to an application, and the contents are transformed to text.
- * Then an {@link EnvironmentRepository} is used to supply key-value pairs which are used
- * to replace placeholders in the resource text.
- *
- * @author Dave Syer
- * @author Daniel Lavoie
- */
-@RestController
-@RequestMapping(method = RequestMethod.GET, path = "${spring.cloud.config.server.prefix:}/resource")
-public class Log4jResourceController {
-
-    @Autowired
-    private ResourceRepository resourceRepository;
-
-    @Autowired
-    private EnvironmentRepository environmentRepository;
-
-    private UrlPathHelper helper = new UrlPathHelper();
-
-    public Log4jResourceController(ResourceRepository resourceRepository, EnvironmentRepository environmentRepository) {
-        this.resourceRepository = resourceRepository;
-        this.environmentRepository = environmentRepository;
-        this.helper.setAlwaysUseFullPath(true);
-    }
-
-    @RequestMapping("/{name}/{profile}/{label}/**")
-    public String retrieve(@PathVariable String name, @PathVariable String profile, @PathVariable String label,
-        ServletWebRequest request, @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
-        throws IOException {
-        String path = getFilePath(request, name, profile, label);
-        return retrieve(request, name, profile, label, path, resolvePlaceholders);
-    }
-
... 142 lines suppressed ...


[logging-log4j2] 01/12: LOG4J2-913 - Access configurations by HTTP/S. Support Spring Cloud Config

Posted by rg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 22a0ca71e6220b37ce0c76bc8ab3399c8fb6012f
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Thu Jan 24 20:41:26 2019 -0700

    LOG4J2-913 - Access configurations by HTTP/S. Support Spring Cloud Config
    
    LOG4J2-913 - App works with Cloud Config
    
    LOG4j2-913 - Integration with Spring Cloud Config
---
 .../apache/logging/log4j/util/PropertiesUtil.java  |   15 +
 .../logging/log4j/util/PropertiesUtilTest.java     |   15 +-
 .../src/test/resources/log4j2.system.properties    |    1 +
 log4j-core/revapi.json                             |  346 +-
 .../log4j/core/config/AbstractConfiguration.java   |   26 +
 .../log4j/core/config/ConfigurationFactory.java    |   25 +-
 .../core/config/ConfigurationFileWatcher.java      |   72 +
 .../log4j/core/config/ConfigurationSource.java     |  107 +-
 .../logging/log4j/core/config/HttpWatcher.java     |  186 ++
 .../config/builder/impl/BuiltConfiguration.java    |   18 +-
 .../builder/impl/DefaultConfigurationBuilder.java  |    2 +-
 .../config/composite/CompositeConfiguration.java   |   24 +-
 .../log4j/core/config/json/JsonConfiguration.java  |   16 +-
 .../log4j/core/config/xml/XmlConfiguration.java    |   19 +-
 .../log4j/core/net/ssl/SslConfiguration.java       |   29 +-
 .../core/net/ssl/SslConfigurationFactory.java      |   79 +
 .../AbstractWatcher.java}                          |   42 +-
 .../org/apache/logging/log4j/core/util/Source.java |  135 +
 .../logging/log4j/core/util/WatchManager.java      |  152 +-
 .../apache/logging/log4j/core/util/Watcher.java    |   78 +
 .../logging/log4j/core/util/WatcherFactory.java    |   89 +
 .../log4j/core/util/WrappedFileWatcher.java        |   90 +
 .../logging/log4j/core/util/WatchHttpTest.java     |  175 +
 .../src/test/resources/__files/log4j-test1.xml     |   58 +
 .../log4j-spring-cloud-config-client/pom.xml       |  196 ++
 .../client/Log4j2CloudConfigLoggingSystem.java     |  127 +
 .../src/main/resources/log4j2.system.properties    |    1 +
 .../log4j-spring-cloud-config-server/pom.xml       |  205 ++
 .../server/controller/Log4jResourceController.java |  200 ++
 .../src/main/resources/META-INF/spring.factories   |    1 +
 log4j-spring-cloud-config/pom.xml                  |   95 +
 pom.xml                                            | 3439 ++++++++++----------
 32 files changed, 4199 insertions(+), 1864 deletions(-)

diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
index c4104f7..4feb207 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
@@ -46,6 +46,8 @@ import java.util.concurrent.ConcurrentHashMap;
 public final class PropertiesUtil {
 
     private static final String LOG4J_PROPERTIES_FILE_NAME = "log4j2.component.properties";
+    private static final String LOG4J_SYSTEM_PROPERTIES_FILE_NAME = "log4j2.system.properties";
+    private static final String SYSTEM = "system:";
     private static final PropertiesUtil LOG4J_PROPERTIES = new PropertiesUtil(LOG4J_PROPERTIES_FILE_NAME);
 
     private final Environment environment;
@@ -315,6 +317,19 @@ public final class PropertiesUtil {
         private final Map<List<CharSequence>, String> tokenized = new ConcurrentHashMap<>();
 
         private Environment(final PropertySource propertySource) {
+            PropertyFilePropertySource sysProps = new PropertyFilePropertySource(LOG4J_SYSTEM_PROPERTIES_FILE_NAME);
+            try {
+                sysProps.forEach(new BiConsumer<String, String>() {
+                    @Override
+                    public void accept(String key, String value) {
+                        if (System.getProperty(key) == null) {
+                            System.setProperty(key, value);
+                        }
+                    }
+                });
+            } catch (SecurityException ex) {
+                // Access to System Properties is restricted so just skip it.
+            }
             sources.add(propertySource);
 			for (final ClassLoader classLoader : LoaderUtil.getClassLoaders()) {
 				try {
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
index 3ac9c92..a5dc873 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
@@ -17,14 +17,14 @@
 
 package org.apache.logging.log4j.util;
 
-import org.junit.Before;
-import org.junit.Test;
-
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Properties;
 
+import org.junit.Before;
+import org.junit.Test;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -108,4 +108,13 @@ public class PropertiesUtilTest {
             System.getProperties().remove(key2);
         }
     }
+
+    @Test
+    public void testPublish() {
+        final Properties props = new Properties();
+        final PropertiesUtil util = new PropertiesUtil(props);
+        String value = System.getProperty("Application");
+        assertNotNull("System property was not published", value);
+        assertEquals("Log4j", value);
+    }
 }
diff --git a/log4j-api/src/test/resources/log4j2.system.properties b/log4j-api/src/test/resources/log4j2.system.properties
new file mode 100644
index 0000000..6e4f8ae
--- /dev/null
+++ b/log4j-api/src/test/resources/log4j2.system.properties
@@ -0,0 +1 @@
+Application=Log4j
\ No newline at end of file
diff --git a/log4j-core/revapi.json b/log4j-core/revapi.json
index fb4b256..3c12553 100644
--- a/log4j-core/revapi.json
+++ b/log4j-core/revapi.json
@@ -31,58 +31,332 @@
     "extension": "revapi.ignore",
     "configuration": [
       {
-        "code": "java.method.numberOfParametersChanged",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.config.ConfiguratonFileWatcher",
+        "justification": "LOG4J2-913 - This class name was misspelled"
       },
       {
-        "code": "java.method.nowStatic",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.AsyncAppender.Builder org.apache.logging.log4j.core.appender.AsyncAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Buil [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
-        "code": "java.method.numberOfParametersChanged",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
-        "code": "java.method.noLongerStatic",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException @ org.apache.logging.log4j.core.net.SslSocketManager",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.SslSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
-        "code": "java.method.numberOfParametersChanged",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
-        "code": "java.method.nowStatic",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.annotation.attributeAdded",
+        "old": "parameter org.apache.logging.log4j.core.appender.NullAppender org.apache.logging.log4j.core.appender.NullAppender::createAppender(===java.lang.String===)",
+        "new": "parameter org.apache.logging.log4j.core.appender.NullAppender org.apache.logging.log4j.core.appender.NullAppender::createAppender(===java.lang.String===)",
+        "annotation": "@org.apache.logging.log4j.core.config.plugins.PluginAttribute(value = \"name\", defaultString = \"null\")",
+        "attribute": "defaultString",
+        "justification": "LOG4J2-2447 - Allow NullAppender to default its name to null"
+
       },
       {
-        "code": "java.method.numberOfParametersChanged",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.Outp [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
-        "code": "java.method.noLongerStatic",
-        "old": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.lang.String, int, org.apache.logging.log4j.core.net.SocketOptions, int) throws java.io.IOException",
-        "new": "method java.net.Socket org.apache.logging.log4j.core.net.TcpSocketManager::createSocket(java.net.InetSocketAddress) throws java.io.IOException",
-        "justification": "LOG4J2-2586 - Support the host name resolving to mulitple ip addresses"
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setFollow(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>>::setFollow(boolean)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Bu [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache. [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Build [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setTarget(java.io.OutputStream)",
+        "new": "method B org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>>::setTarget(java.io.OutputStream)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.B [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setFollow(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>::setFollow(boolean)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setLayout(===org.apache.logging.log4j.core.StringLayout===)",
+        "new": "parameter B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(===org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>===) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.log [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setLayout(org.apache.logging.log4j.core.StringLayout)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4 [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setTarget(java.io.Writer)",
+        "new": "method B org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>::setTarget(java.io.Writer)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "new": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
       },
       {
         "code": "java.method.numberOfParametersChanged",
-        "old": "method void org.apache.logging.log4j.core.layout.JsonLayout::<init>(org.apache.logging.log4j.core.config.Configuration, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.nio.charset.Charset, boolean)",
-        "new": "method void org.apache.logging.log4j.core.layout.JsonLayout::<init>(org.apache.logging.log4j.core.config.Configuration, boolean, boolean, boolean, boolean, boolean, boolean, java.lang.String, java.lang.String, java.lang.String, java.nio.charset.Charset, boolean)",
-        "justification": "LOG4J2-2337 - Allow to specify custom end-of-line for JSON layout"
+        "old": "method org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager::getManager(java.lang.String, int, org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource, java.lang.String, org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig[], org.apache.logging.log4j.core.appender.db.ColumnMapping[])",
+        "new": "method org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager::getManager(java.lang.String, int, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource, java.lang.String, org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig[], org.apache.logging.log4j.core.appender.db.ColumnMapping[], boolean, long)",
+        "justification": "LOG4J2-2500 - Allow a JDBC Appender to truncate string to match a table's metadata column length limit"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppende [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.lo [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.Property[] org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B>>>::getProperties()",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B>>>::setProperties(org.apache.logging.log4j.core.config.Property[])",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method void org.apache.logging.log4j.core.util.Closer::close(java.lang.AutoCloseable) throws java.lang.Exception",
+        "new": "method boolean org.apache.logging.log4j.core.util.Closer::close(java.lang.AutoCloseable) throws java.lang.Exception",
+        "justification": "LOG4J2-2496 - JDBC Appender should reconnect to the database when a connection goes stale"
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "typeParameter": "T",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.field.enumConstantOrderChanged",
+        "old": "field org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat.ISO8601_PERIOD",
+        "new": "field org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat.ISO8601_PERIOD",
+        "justification": "LOG4J2-1247 - PatternLayout %date conversion pattern should render time zone designator"
+
+      },
+      {
+        "code": "java.method.addedToInterface",
+        "new": "method void org.apache.logging.log4j.core.appender.rolling.DirectFileRolloverStrategy::clearCurrentFileName()",
+        "justification": "Required to reset file name so it can be calculated at the appropriate time"
       },
       {
         "code": "java.method.returnTypeTypeParametersChanged",
@@ -102,7 +376,7 @@
         "new": "method <B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>> B org.apache.logging.log4j.core.appender.WriterAppender::newBuilder()",
         "typeParameter": "B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
         "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
-      }  
+      }
     ]
   }
 ]
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index ecaf4b3..de0d6eb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -67,7 +67,10 @@ import org.apache.logging.log4j.core.util.DummyNanoClock;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.NameUtil;
 import org.apache.logging.log4j.core.util.NanoClock;
+import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.WatchManager;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.core.util.WatcherFactory;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
@@ -240,6 +243,29 @@ public abstract class AbstractConfiguration extends AbstractFilterable implement
         LOGGER.debug("Configuration {} initialized", this);
     }
 
+    protected void initializeWatchers(Reconfigurable reconfigurable, ConfigurationSource configSource,
+        int monitorIntervalSeconds) {
+        if ((configSource.getFile() != null || configSource.getURL() != null) && monitorIntervalSeconds > 0) {
+            watchManager.setIntervalSeconds(monitorIntervalSeconds);
+            if (configSource.getFile() != null) {
+                final Source cfgSource = new Source(configSource);
+                final long lastModifeid = configSource.getFile().lastModified();
+                final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(this, reconfigurable,
+                    listeners, lastModifeid);
+                watchManager.watch(cfgSource, watcher);
+            } else if (configSource.getURL() != null) {
+                if (configSource.getLastModified() > 0) {
+                    final Source cfgSource = new Source(configSource);
+                    final Watcher watcher = WatcherFactory.getInstance(pluginPackages)
+                        .newWatcher(cfgSource, this, reconfigurable, listeners, configSource.getLastModified());
+                    watchManager.watch(cfgSource, watcher);
+                } else {
+                    LOGGER.info("{} does not support dynamic reconfiguration", configSource.getURI());
+                }
+            }
+        }
+    }
+
 	/**
      * Start the configuration.
      */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index 8c05959..f4adea0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -21,6 +21,7 @@ import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.net.URI;
 import java.net.URL;
+import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -29,6 +30,8 @@ import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import javax.net.ssl.HttpsURLConnection;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -38,6 +41,9 @@ import org.apache.logging.log4j.core.config.plugins.util.PluginManager;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
 import org.apache.logging.log4j.core.lookup.Interpolator;
 import org.apache.logging.log4j.core.lookup.StrSubstitutor;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.NetUtils;
@@ -128,6 +134,8 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
 
     private static final Lock LOCK = new ReentrantLock();
 
+    private static final String HTTPS = "https";
+
     /**
      * Returns the ConfigurationFactory.
      * @return the ConfigurationFactory.
@@ -294,7 +302,22 @@ public abstract class ConfigurationFactory extends ConfigurationBuilderFactory {
     protected ConfigurationSource getInputFromString(final String config, final ClassLoader loader) {
         try {
             final URL url = new URL(config);
-            return new ConfigurationSource(url.openStream(), FileUtils.fileFromUri(url.toURI()));
+            URLConnection urlConnection = url.openConnection();
+            if (url.getProtocol().equals(HTTPS)) {
+                SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+                if (sslConfiguration != null) {
+                    ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
+                    if (!sslConfiguration.isVerifyHostName()) {
+                        ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+                    }
+                }
+            }
+            File file = FileUtils.fileFromUri(url.toURI());
+            if (file != null) {
+                return new ConfigurationSource(urlConnection.getInputStream(), FileUtils.fileFromUri(url.toURI()));
+            } else {
+                return new ConfigurationSource(urlConnection.getInputStream(), url, urlConnection.getLastModified());
+            }
         } catch (final Exception ex) {
             final ConfigurationSource source = ConfigurationSource.fromResource(config, loader);
             if (source == null) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
new file mode 100644
index 0000000..e777fbf
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFileWatcher.java
@@ -0,0 +1,72 @@
+/*
+ * 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.core.config;
+
+import java.io.File;
+import java.util.List;
+
+import org.apache.logging.log4j.core.util.AbstractWatcher;
+import org.apache.logging.log4j.core.util.FileWatcher;
+import org.apache.logging.log4j.core.util.Source;
+import org.apache.logging.log4j.core.util.Watcher;
+
+/**
+ * Watcher for configuration files. Causes a reconfiguration when a file changes.
+ */
+public class ConfigurationFileWatcher extends AbstractWatcher implements FileWatcher {
+
+    private File file;
+    private long lastModifiedMillis;
+
+    public ConfigurationFileWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
+            final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+        super(configuration, reconfigurable, configurationListeners);
+        this.lastModifiedMillis = lastModifiedMillis;
+    }
+
+    public long getLastModified() {
+        return file != null ? file.lastModified() : 0;
+    }
+
+    @Override
+    public void fileModified(final File file) {
+        lastModifiedMillis = file.lastModified();
+    }
+
+    @Override
+    public void watching(Source source) {
+        file = source.getFile();
+        lastModifiedMillis = file.lastModified();
+        super.watching(source);
+    }
+
+    @Override
+    public boolean isModified() {
+        return lastModifiedMillis != file.lastModified();
+    }
+
+    @Override
+    public Watcher newWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners,
+        long lastModifiedMillis) {
+        ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(getConfiguration(), reconfigurable, listeners,
+            lastModifiedMillis);
+        if (getSource() != null) {
+            watcher.watching(getSource());
+        }
+        return watcher;
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
index 21558fc..d7c1808 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java
@@ -28,11 +28,18 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.net.URLConnection;
 import java.util.Objects;
 
+import javax.net.ssl.HttpsURLConnection;
+
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
 import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Loader;
+import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.util.LoaderUtil;
 
 /**
@@ -43,13 +50,18 @@ public class ConfigurationSource {
     /**
      * ConfigurationSource to use with Configurations that do not require a "real" configuration source.
      */
-    public static final ConfigurationSource NULL_SOURCE = new ConfigurationSource(new byte[0]);
+    public static final ConfigurationSource NULL_SOURCE = new ConfigurationSource(new byte[0], null, 0);
+    private static final String HTTPS = "https";
 
     private final File file;
     private final URL url;
     private final String location;
     private final InputStream stream;
-    private final byte[] data;
+    private volatile byte[] data;
+    private volatile Source source = null;
+    private final long lastModified;
+    // Set when the configuration has been updated so reset can use it for the next lastModified timestamp.
+    private volatile long modifiedMillis;
 
     /**
      * Constructs a new {@code ConfigurationSource} with the specified input stream that originated from the specified
@@ -64,6 +76,13 @@ public class ConfigurationSource {
         this.location = file.getAbsolutePath();
         this.url = null;
         this.data = null;
+        long modified = 0;
+        try {
+            modified = file.lastModified();
+        } catch (Exception ex) {
+            // There is a problem with the file. It will be handled somewhere else.
+        }
+        this.lastModified = modified;
     }
 
     /**
@@ -79,6 +98,24 @@ public class ConfigurationSource {
         this.location = url.toString();
         this.file = null;
         this.data = null;
+        this.lastModified = 0;
+    }
+
+    /**
+     * Constructs a new {@code ConfigurationSource} with the specified input stream that originated from the specified
+     * url.
+     *
+     * @param stream the input stream
+     * @param url the URL where the input stream originated
+     * @param lastModified when the source was last modified.
+     */
+    public ConfigurationSource(final InputStream stream, final URL url, long lastModified) {
+        this.stream = Objects.requireNonNull(stream, "stream is null");
+        this.url = Objects.requireNonNull(url, "URL is null");
+        this.location = url.toString();
+        this.file = null;
+        this.data = null;
+        this.lastModified = lastModified;
     }
 
     /**
@@ -89,15 +126,26 @@ public class ConfigurationSource {
      * @throws IOException if an exception occurred reading from the specified stream
      */
     public ConfigurationSource(final InputStream stream) throws IOException {
-        this(toByteArray(stream));
+        this(toByteArray(stream), null, 0);
     }
 
-    private ConfigurationSource(final byte[] data) {
+    public ConfigurationSource(final Source source, final byte[] data, long lastModified) throws IOException {
+        Objects.requireNonNull(source, "source is null");
         this.data = Objects.requireNonNull(data, "data is null");
         this.stream = new ByteArrayInputStream(data);
+        this.file = source.getFile();
+        this.url = source.getURI().toURL();
+        this.location = source.getLocation();
+        this.lastModified = lastModified;
+    }
+
+    private ConfigurationSource(final byte[] data, final URL url, long lastModified) {
+        Objects.requireNonNull(data, "data is null");
+        this.stream = new ByteArrayInputStream(data);
         this.file = null;
-        this.url = null;
+        this.url = url;
         this.location = null;
+        this.lastModified = lastModified;
     }
 
     /**
@@ -140,6 +188,18 @@ public class ConfigurationSource {
         return url;
     }
 
+    public void setSource(Source source) {
+        this.source = source;
+    }
+
+    public void setData(byte[] data) {
+        this.data = data;
+    }
+
+    public void setModifiedMillis(long modifiedMillis) {
+        this.modifiedMillis = modifiedMillis;
+    }
+
     /**
      * Returns a URI representing the configuration resource or null if it cannot be determined.
      * @return The URI.
@@ -172,6 +232,14 @@ public class ConfigurationSource {
     }
 
     /**
+     * Returns the time the resource was last modified or 0 if it is not available.
+     * @return the last modified time of the resource.
+     */
+    public long getLastModified() {
+        return lastModified;
+    }
+
+    /**
      * Returns a string describing the configuration source file or URL, or {@code null} if this configuration source
      * has neither a file nor an URL.
      *
@@ -197,13 +265,19 @@ public class ConfigurationSource {
      * @throws IOException if a problem occurred while opening the new input stream
      */
     public ConfigurationSource resetInputStream() throws IOException {
-        if (file != null) {
+        if (source != null) {
+            return new ConfigurationSource(source, data, this.lastModified);
+        } else if (file != null) {
             return new ConfigurationSource(new FileInputStream(file), file);
+        } else if (url != null && data != null) {
+            // Creates a ConfigurationSource without accessing the URL since the data was provided.
+            return new ConfigurationSource(data, url, modifiedMillis == 0 ? lastModified : modifiedMillis);
         } else if (url != null) {
-            return new ConfigurationSource(url.openStream(), url);
-        } else {
-            return new ConfigurationSource(data);
+            return fromUri(getURI());
+        } else if (data != null) {
+            return new ConfigurationSource(data, null, lastModified);
         }
+        return null;
     }
 
     @Override
@@ -245,7 +319,20 @@ public class ConfigurationSource {
             return null;
         }
         try {
-            return new ConfigurationSource(configLocation.toURL().openStream(), configLocation.toURL());
+            URL url = configLocation.toURL();
+            URLConnection urlConnection = url.openConnection();
+            if (url.getProtocol().equals(HTTPS)) {
+                SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+                if (sslConfiguration != null) {
+                    ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
+                    if (!sslConfiguration.isVerifyHostName()) {
+                        ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+                    }
+                }
+            }
+            InputStream is = urlConnection.getInputStream();
+            long lastModified = urlConnection.getLastModified();
+            return new ConfigurationSource(configLocation.toURL().openStream(), configLocation.toURL(), lastModified);
         } catch (final MalformedURLException ex) {
             ConfigurationFactory.LOGGER.error("Invalid URL {}", configLocation.toString(), ex);
         } catch (final Exception ex) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
new file mode 100644
index 0000000..a2d1220
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/HttpWatcher.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2019 Nextiva, Inc. to Present.
+ * All rights reserved.
+ */
+package org.apache.logging.log4j.core.config;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+import java.util.Properties;
+
+import javax.net.ssl.HttpsURLConnection;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAliases;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.AbstractWatcher;
+import org.apache.logging.log4j.core.util.Source;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+
+/**
+ *
+ */
+@Plugin(name = "http", category = Watcher.CATEGORY, printObject = true)
+@PluginAliases("https")
+public class HttpWatcher extends AbstractWatcher {
+
+    private Logger LOGGER = StatusLogger.getLogger();
+
+    private static int DEFAULT_TIMEOUT = 60000;
+    private int connectTimeoutMillis = DEFAULT_TIMEOUT;
+    private int readTimeoutMillis = DEFAULT_TIMEOUT;
+    private SslConfiguration sslConfiguration;
+    private URL url;
+    private volatile long lastModifiedMillis;
+    private static final String JSON = "application/json";
+    private static final String XML = "application/xml";
+    private static final String PROPERTIES = "text/x-java-properties";
+    private static final String TEXT = "text/plain";
+    private static final int NOT_MODIFIED = 304;
+    private static final int OK = 200;
+    private static final int BUF_SIZE = 1024;
+    private static final String HTTP = "http";
+    private static final String HTTPS = "https";
+
+    public HttpWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
+        final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+        super(configuration, reconfigurable, configurationListeners);
+        sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+        this.lastModifiedMillis = lastModifiedMillis;
+    }
+
+    @Override
+    public long getLastModified() {
+        return lastModifiedMillis;
+    }
+
+    @Override
+    public boolean isModified() {
+        return refreshConfiguration();
+    }
+
+    @Override
+    public void watching(Source source) {
+        if (!source.getURI().getScheme().equals(HTTP) && !source.getURI().getScheme().equals(HTTPS)) {
+            throw new IllegalArgumentException("HttpWatcher requires a url using the HTTP or HTTPS protocol, not " +
+                source.getURI().getScheme());
+        }
+        try {
+            url = source.getURI().toURL();
+        } catch (MalformedURLException ex) {
+            throw new IllegalArgumentException("Invalid URL for HttpWatcher " + source.getURI(), ex);
+        }
+        super.watching(source);
+    }
+
+    @Override
+    public Watcher newWatcher(Reconfigurable reconfigurable, List<ConfigurationListener> listeners,
+        long lastModifiedMillis) {
+        HttpWatcher watcher = new HttpWatcher(getConfiguration(), reconfigurable, listeners, lastModifiedMillis);
+        if (getSource() != null) {
+            watcher.watching(getSource());
+        }
+        return watcher;
+    }
+
+    private boolean refreshConfiguration() {
+        try {
+            final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+            urlConnection.setAllowUserInteraction(false);
+            urlConnection.setDoOutput(true);
+            urlConnection.setDoInput(true);
+            urlConnection.setRequestMethod("GET");
+            if (connectTimeoutMillis > 0) {
+                urlConnection.setConnectTimeout(connectTimeoutMillis);
+            }
+            if (readTimeoutMillis > 0) {
+                urlConnection.setReadTimeout(readTimeoutMillis);
+            }
+            String[] fileParts = url.getFile().split("\\.");
+            String type = fileParts[fileParts.length - 1].trim();
+            String contentType = isXml(type) ? XML : isJson(type) ? JSON : isProperties(type) ? PROPERTIES : TEXT;
+            urlConnection.setRequestProperty("Content-Type", contentType);
+            urlConnection.setIfModifiedSince(lastModifiedMillis);
+            if (url.getProtocol().equals(HTTPS) && sslConfiguration != null) {
+                ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
+                if (!sslConfiguration.isVerifyHostName()) {
+                    ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+                }
+            }
+
+            urlConnection.connect();
+
+            try {
+                int code = urlConnection.getResponseCode();
+                switch (code) {
+                    case NOT_MODIFIED: {
+                        return false;
+                    }
+                    case OK: {
+                        try (InputStream is = urlConnection.getInputStream()) {
+                            ConfigurationSource configSource = getConfiguration().getConfigurationSource();
+                            configSource.setData(readStream(is));
+                            lastModifiedMillis = urlConnection.getLastModified();
+                            configSource.setModifiedMillis(lastModifiedMillis);
+                            LOGGER.debug("Content was modified for {}", url.toString());
+                            return true;
+                        } catch (final IOException e) {
+                            try (InputStream es = urlConnection.getErrorStream()) {
+                                LOGGER.info("Error accessing configuration at {}: {}", url,
+                                    readStream(es));
+                            } catch (final IOException ioe) {
+                                LOGGER.error("Error accessing configuration at {}: {}", url, e.getMessage());
+                            }
+                            return false;
+                        }
+                    }
+                    default : {
+                        if (code < 0) {
+                            LOGGER.info("Invalid response code returned");
+                        } else {
+                            LOGGER.info("Unexpected response code returned {}", code);
+                        }
+                        return false;
+                    }
+                }
+            } catch (final IOException ioe) {
+                LOGGER.error("Error accessing configuration at {}: {}", url, ioe.getMessage());
+            }
+        } catch (final IOException ioe) {
+            LOGGER.error("Error connecting to configuration at {}: {}", url, ioe.getMessage());
+        }
+        return false;
+    }
+
+    private byte[] readStream(InputStream is) throws IOException {
+        ByteArrayOutputStream result = new ByteArrayOutputStream();
+        byte[] buffer = new byte[BUF_SIZE];
+        int length;
+        while ((length = is.read(buffer)) != -1) {
+            result.write(buffer, 0, length);
+        }
+        return result.toByteArray();
+    }
+
+    private boolean isXml(String type) {
+        return type.equalsIgnoreCase("xml");
+    }
+
+    private boolean isJson(String type) {
+        return type.equalsIgnoreCase("json") || type.equalsIgnoreCase("jsn");
+    }
+
+    private boolean isProperties(String type) {
+        return type.equalsIgnoreCase("properties");
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
index ae932ee..741859c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.core.config.builder.impl;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
@@ -25,7 +24,7 @@ import java.util.List;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfiguratonFileWatcher;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.builder.api.Component;
@@ -35,6 +34,9 @@ import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
 import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.core.util.Source;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.core.util.WatcherFactory;
 
 /**
  * This is the general version of the Configuration created by the Builder. It may be extended to
@@ -153,17 +155,7 @@ public class BuiltConfiguration extends AbstractConfiguration {
 
     public void setMonitorInterval(final int intervalSeconds) {
         if (this instanceof Reconfigurable && intervalSeconds > 0) {
-            final ConfigurationSource configSource = getConfigurationSource();
-            if (configSource != null) {
-                final File configFile = configSource.getFile();
-                if (intervalSeconds > 0) {
-                    getWatchManager().setIntervalSeconds(intervalSeconds);
-                    if (configFile != null) {
-                        final FileWatcher watcher = new ConfiguratonFileWatcher((Reconfigurable) this, listeners);
-                        getWatchManager().watchFile(configFile, watcher);
-                    }
-                }
-            }
+            initializeWatchers((Reconfigurable) this, getConfigurationSource(), intervalSeconds);
         }
     }
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
index c0595d7..0a6c2d1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java
@@ -170,7 +170,6 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
             }
             final Constructor<T> constructor = clazz.getConstructor(LoggerContext.class, ConfigurationSource.class, Component.class);
             configuration = constructor.newInstance(loggerContext, source, root);
-            configuration.setMonitorInterval(monitorInterval);
             configuration.getRootNode().getAttributes().putAll(root.getAttributes());
             if (name != null) {
                 configuration.setName(name);
@@ -196,6 +195,7 @@ public class DefaultConfigurationBuilder<T extends BuiltConfiguration> implement
             if (advertiser != null) {
                 configuration.createAdvertiser(advertiser, source);
             }
+            configuration.setMonitorInterval(monitorInterval);
         } catch (final Exception ex) {
             throw new IllegalArgumentException("Invalid Configuration class specified", ex);
         }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
index 9b6b11a..2267639 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java
@@ -29,7 +29,7 @@ import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfiguratonFileWatcher;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
@@ -37,7 +37,10 @@ import org.apache.logging.log4j.core.config.status.StatusConfiguration;
 import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.WatchManager;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.core.util.WatcherFactory;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
@@ -106,14 +109,12 @@ public class CompositeConfiguration extends AbstractConfiguration implements Rec
         staffChildConfiguration(targetConfiguration);
         final WatchManager watchManager = getWatchManager();
         final WatchManager targetWatchManager = targetConfiguration.getWatchManager();
-        final FileWatcher fileWatcher = new ConfiguratonFileWatcher(this, listeners);
         if (targetWatchManager.getIntervalSeconds() > 0) {
             watchManager.setIntervalSeconds(targetWatchManager.getIntervalSeconds());
-            final Map<File, FileWatcher> watchers = targetWatchManager.getWatchers();
-            for (final Map.Entry<File, FileWatcher> entry : watchers.entrySet()) {
-                if (entry.getValue() instanceof ConfiguratonFileWatcher) {
-                    watchManager.watchFile(entry.getKey(), fileWatcher);
-                }
+            final Map<Source, Watcher> watchers = targetWatchManager.getConfigurationWatchers();
+            for (final Map.Entry<Source, Watcher> entry : watchers.entrySet()) {
+                watchManager.watch(entry.getKey(), entry.getValue().newWatcher(this, listeners,
+                    entry.getValue().getLastModified()));
             }
         }
         for (final AbstractConfiguration sourceConfiguration : configurations.subList(1, configurations.size())) {
@@ -132,11 +133,10 @@ public class CompositeConfiguration extends AbstractConfiguration implements Rec
                     watchManager.setIntervalSeconds(monitorInterval);
                 }
                 final WatchManager sourceWatchManager = sourceConfiguration.getWatchManager();
-                final Map<File, FileWatcher> watchers = sourceWatchManager.getWatchers();
-                for (final Map.Entry<File, FileWatcher> entry : watchers.entrySet()) {
-                    if (entry.getValue() instanceof ConfiguratonFileWatcher) {
-                        watchManager.watchFile(entry.getKey(), fileWatcher);
-                    }
+                final Map<Source, Watcher> watchers = sourceWatchManager.getConfigurationWatchers();
+                for (final Map.Entry<Source, Watcher> entry : watchers.entrySet()) {
+                    watchManager.watch(entry.getKey(), entry.getValue().newWatcher(this, listeners,
+                        entry.getValue().getLastModified()));
                 }
             }
         }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
index 5b38dfb..c9d7162 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
@@ -33,7 +33,7 @@ import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfiguratonFileWatcher;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
@@ -42,6 +42,9 @@ import org.apache.logging.log4j.core.config.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.core.config.status.StatusConfiguration;
 import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.core.util.Source;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.core.util.WatcherFactory;
 
 /**
  * Creates a Node hierarchy from a JSON file.
@@ -70,6 +73,7 @@ public class JsonConfiguration extends AbstractConfiguration implements Reconfig
             processAttributes(rootNode, root);
             final StatusConfiguration statusConfig = new StatusConfiguration().withVerboseClasses(VERBOSE_CLASSES)
                     .withStatus(getDefaultStatus());
+            int monitorIntervalSeconds = 0;
             for (final Map.Entry<String, String> entry : rootNode.getAttributes().entrySet()) {
                 final String key = entry.getKey();
                 final String value = getStrSubstitutor().replace(entry.getValue());
@@ -89,18 +93,12 @@ public class JsonConfiguration extends AbstractConfiguration implements Reconfig
                 } else if ("name".equalsIgnoreCase(key)) {
                     setName(value);
                 } else if ("monitorInterval".equalsIgnoreCase(key)) {
-                    final int intervalSeconds = Integer.parseInt(value);
-                    if (intervalSeconds > 0) {
-                        getWatchManager().setIntervalSeconds(intervalSeconds);
-                        if (configFile != null) {
-                            final FileWatcher watcher = new ConfiguratonFileWatcher(this, listeners);
-                            getWatchManager().watchFile(configFile, watcher);
-                        }
-                    }
+                    monitorIntervalSeconds = Integer.parseInt(value);
                 } else if ("advertiser".equalsIgnoreCase(key)) {
                     createAdvertiser(value, configSource, buffer, "application/json");
                 }
             }
+            initializeWatchers(this, configSource, monitorIntervalSeconds);
             statusConfig.initialize();
             if (getName() == null) {
                 setName(configSource.getLocation());
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
index 6b0e79a..0e5fa98 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
@@ -28,7 +28,6 @@ import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
@@ -38,7 +37,7 @@ import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
-import org.apache.logging.log4j.core.config.ConfiguratonFileWatcher;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.core.config.plugins.util.PluginType;
@@ -48,7 +47,10 @@ import org.apache.logging.log4j.core.util.Closer;
 import org.apache.logging.log4j.core.util.FileWatcher;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.core.util.Source;
 import org.apache.logging.log4j.core.util.Throwables;
+import org.apache.logging.log4j.core.util.Watcher;
+import org.apache.logging.log4j.core.util.WatcherFactory;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -110,6 +112,7 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
             final Map<String, String> attrs = processAttributes(rootNode, rootElement);
             final StatusConfiguration statusConfig = new StatusConfiguration().withVerboseClasses(VERBOSE_CLASSES)
                     .withStatus(getDefaultStatus());
+            int monitorIntervalSeconds = 0;
             for (final Map.Entry<String, String> entry : attrs.entrySet()) {
                 final String key = entry.getKey();
                 final String value = getStrSubstitutor().replace(entry.getValue());
@@ -132,18 +135,12 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
                 } else if ("schema".equalsIgnoreCase(key)) {
                     schemaResource = value;
                 } else if ("monitorInterval".equalsIgnoreCase(key)) {
-                    final int intervalSeconds = Integer.parseInt(value);
-                    if (intervalSeconds > 0) {
-                        getWatchManager().setIntervalSeconds(intervalSeconds);
-                        if (configFile != null) {
-                            final FileWatcher watcher = new ConfiguratonFileWatcher(this, listeners);
-                            getWatchManager().watchFile(configFile, watcher);
-                        }
-                    }
+                    monitorIntervalSeconds = Integer.parseInt(value);
                 } else if ("advertiser".equalsIgnoreCase(key)) {
                     createAdvertiser(value, configSource, buffer, "text/xml");
                 }
             }
+            initializeWatchers(this, configSource, monitorIntervalSeconds);
             statusConfig.initialize();
         } catch (final SAXException | IOException | ParserConfigurationException e) {
             LOGGER.error("Error parsing " + configSource.getLocation(), e);
@@ -151,7 +148,7 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
         if (strict && schemaResource != null && buffer != null) {
             try (InputStream is = Loader.getResourceAsStream(schemaResource, XmlConfiguration.class.getClassLoader())) {
                 if (is != null) {
-                    final Source src = new StreamSource(is, LOG4J_XSD);
+                    final javax.xml.transform.Source src = new StreamSource(is, LOG4J_XSD);
                     final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
                     Schema schema = null;
                     try {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
index 5603e89..5d341d6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfiguration.java
@@ -46,13 +46,15 @@ public class SslConfiguration {
     private final TrustStoreConfiguration trustStoreConfig;
     private final SSLContext sslContext;
     private final String protocol;
+    private final boolean verifyHostName;
 
     private SslConfiguration(final String protocol, final KeyStoreConfiguration keyStoreConfig,
-            final TrustStoreConfiguration trustStoreConfig) {
+            final TrustStoreConfiguration trustStoreConfig, boolean verifyHostName) {
         this.keyStoreConfig = keyStoreConfig;
         this.trustStoreConfig = trustStoreConfig;
         this.protocol = protocol == null ? SslConfigurationDefaults.PROTOCOL : protocol;
         this.sslContext = this.createSslContext();
+        this.verifyHostName = verifyHostName;
     }
 
     /**
@@ -232,7 +234,26 @@ public class SslConfiguration {
             @PluginElement("KeyStore") final KeyStoreConfiguration keyStoreConfig,
             @PluginElement("TrustStore") final TrustStoreConfiguration trustStoreConfig) {
             // @formatter:on
-        return new SslConfiguration(protocol, keyStoreConfig, trustStoreConfig);
+        return new SslConfiguration(protocol, keyStoreConfig, trustStoreConfig, false);
+    }
+
+    /**
+     * Creates an SslConfiguration from a KeyStoreConfiguration and a TrustStoreConfiguration.
+     *
+     * @param protocol The protocol, see http://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#SSLContext
+     * @param keyStoreConfig The KeyStoreConfiguration.
+     * @param trustStoreConfig The TrustStoreConfiguration.
+     * @return a new SslConfiguration
+     * @since 2.12
+     */
+    public static SslConfiguration createSSLConfiguration(
+        // @formatter:off
+        @PluginAttribute("protocol") final String protocol,
+        @PluginElement("KeyStore") final KeyStoreConfiguration keyStoreConfig,
+        @PluginElement("TrustStore") final TrustStoreConfiguration trustStoreConfig,
+        @PluginElement("verifyHostName") final boolean verifyHostName) {
+        // @formatter:on
+        return new SslConfiguration(protocol, keyStoreConfig, trustStoreConfig, verifyHostName);
     }
 
     @Override
@@ -304,4 +325,8 @@ public class SslConfiguration {
     public String getProtocol() {
         return protocol;
     }
+
+    public boolean isVerifyHostName() {
+        return verifyHostName;
+    }
 }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
new file mode 100644
index 0000000..e3cc4d3
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/SslConfigurationFactory.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2019 Nextiva, Inc. to Present.
+ * All rights reserved.
+ */
+package org.apache.logging.log4j.core.net.ssl;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+
+/**
+ * Creates an SSL configuration from Log4j properties.
+ */
+public class SslConfigurationFactory {
+
+    private static final Logger LOGGER = StatusLogger.getLogger();
+    private static SslConfiguration sslConfiguration = null;
+
+    private static final String trustStorelocation = "log4j2.trustStore.location";
+    private static final String trustStorePassword = "log4j2.trustStore.password";
+    private static final String trustStorePasswordFile = "log4j2.trustStore.passwordFile";
+    private static final String trustStorePasswordEnvVar = "log4j2.trustStore.passwordEnvironmentVariable";
+    private static final String trustStoreKeyStoreType = "log4j2.trustStore.keyStoreType";
+    private static final String trustStoreKeyManagerFactoryAlgorithm = "log4j2.trustStore.keyManagerFactoryAlgorithm";
+    private static final String keyStoreLocation = "log4j2.keyStore.location";
+    private static final String keyStorePassword = "log4j2.keyStorePassword";
+    private static final String keyStorePasswordFile = "log4j2.keyStorePasswordFile";
+    private static final String keyStorePasswordEnvVar = "log4j2.keyStorePasswordEnvironmentVariable";
+    private static final String keyStoreType = "log4j2.keyStore.type";
+    private static final String keyStoreKeyManagerFactoryAlgorithm = "log4j2.keyStore.keyManagerFactoryAlgorithm";
+    private static final String verifyHostName = "log4j2.ssl.verifyHostName";
+
+    static {
+        PropertiesUtil props = PropertiesUtil.getProperties();
+        KeyStoreConfiguration keyStoreConfiguration = null;
+        TrustStoreConfiguration trustStoreConfiguration = null;
+        String location = props.getStringProperty(trustStorelocation);
+        if (location != null) {
+            String password = props.getStringProperty(trustStorePassword);
+            char[] passwordChars = null;
+            if (password != null) {
+                passwordChars = password.toCharArray();
+            }
+            try {
+                trustStoreConfiguration = TrustStoreConfiguration.createKeyStoreConfiguration(location, passwordChars,
+                    props.getStringProperty(trustStorePasswordEnvVar), props.getStringProperty(trustStorePasswordFile),
+                    props.getStringProperty(trustStoreKeyStoreType), props.getStringProperty(trustStoreKeyManagerFactoryAlgorithm));
+            } catch (Exception ex) {
+                LOGGER.warn("Unable to create trust store configuration due to: {} {}", ex.getClass().getName(),
+                    ex.getMessage());
+            }
+        }
+        location = props.getStringProperty(keyStoreLocation);
+        if (location != null) {
+            String password = props.getStringProperty(keyStorePassword);
+            char[] passwordChars = null;
+            if (password != null) {
+                passwordChars = password.toCharArray();
+            }
+            try {
+                keyStoreConfiguration = KeyStoreConfiguration.createKeyStoreConfiguration(location, passwordChars,
+                    props.getStringProperty(keyStorePasswordEnvVar), props.getStringProperty(keyStorePasswordFile),
+                    props.getStringProperty(keyStoreType), props.getStringProperty(keyStoreKeyManagerFactoryAlgorithm));
+            } catch (Exception ex) {
+                LOGGER.warn("Unable to create key store configuration due to: {} {}", ex.getClass().getName(),
+                    ex.getMessage());
+            }
+        }
+        if (trustStoreConfiguration != null || keyStoreConfiguration != null) {
+            boolean isVerifyHostName = props.getBooleanProperty(verifyHostName, false);
+            sslConfiguration = SslConfiguration.createSSLConfiguration("https", keyStoreConfiguration,
+                trustStoreConfiguration, isVerifyHostName);
+        }
+    }
+
+    public static SslConfiguration getSslConfiguration() {
+        return sslConfiguration;
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfiguratonFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
similarity index 65%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfiguratonFileWatcher.java
rename to log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
index 38491f2..3dbb111 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfiguratonFileWatcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/AbstractWatcher.java
@@ -14,46 +14,70 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-package org.apache.logging.log4j.core.config;
+package org.apache.logging.log4j.core.util;
 
 import java.io.File;
 import java.util.List;
 
-import org.apache.logging.log4j.core.util.FileWatcher;
-import org.apache.logging.log4j.core.util.Log4jThreadFactory;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationListener;
+import org.apache.logging.log4j.core.config.Reconfigurable;
 
 /**
  * Watcher for configuration files. Causes a reconfiguration when a file changes.
  */
-public class ConfiguratonFileWatcher implements FileWatcher {
+public abstract class AbstractWatcher implements Watcher {
 
     private final Reconfigurable reconfigurable;
     private final List<ConfigurationListener> configurationListeners;
     private final Log4jThreadFactory threadFactory;
+    private final Configuration configuration;
+    private Source source;
 
-    public ConfiguratonFileWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> configurationListeners) {
+    public AbstractWatcher(final Configuration configuration, final Reconfigurable reconfigurable,
+            final List<ConfigurationListener> configurationListeners) {
+        this.configuration = configuration;
         this.reconfigurable = reconfigurable;
         this.configurationListeners = configurationListeners;
-        this.threadFactory = Log4jThreadFactory.createDaemonThreadFactory("ConfiguratonFileWatcher");
+        this.threadFactory = configurationListeners != null ?
+            Log4jThreadFactory.createDaemonThreadFactory("ConfiguratonFileWatcher") : null;
     }
 
+    @Override
     public List<ConfigurationListener> getListeners() {
         return configurationListeners;
     }
 
-
     @Override
-    public void fileModified(final File file) {
+    public void modified() {
         for (final ConfigurationListener configurationListener : configurationListeners) {
             final Thread thread = threadFactory.newThread(new ReconfigurationRunnable(configurationListener, reconfigurable));
             thread.start();
         }
     }
 
+    public Configuration getConfiguration() {
+        return configuration;
+    }
+
+    public abstract long getLastModified();
+
+    public abstract boolean isModified();
+
+    @Override
+    public void watching(Source source) {
+        this.source = source;
+    }
+
+    @Override
+    public Source getSource() {
+        return source;
+    }
+
     /**
      * Helper class for triggering a reconfiguration in a background thread.
      */
-    private static class ReconfigurationRunnable implements Runnable {
+    public static class ReconfigurationRunnable implements Runnable {
 
         private final ConfigurationListener configurationListener;
         private final Reconfigurable reconfigurable;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
new file mode 100644
index 0000000..a0aa548
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java
@@ -0,0 +1,135 @@
+/*
+ * 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.core.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Objects;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.util.LoaderUtil;
+
+/**
+ * Represents the source for the logging configuration.
+ */
+public class Source {
+
+    /**
+     * Captures a URI or File.
+     */
+
+    private final File file;
+    private final URI uri;
+    private final String location;
+
+    /**
+     * Constructs a Source from a ConfigurationSource.
+     * @param source The ConfigurationSource.
+     */
+    public Source(ConfigurationSource source) {
+        this.file = source.getFile();
+        this.uri = source.getURI();
+        this.location = source.getLocation();
+    }
+
+    /**
+     * Constructs a new {@code Source} with the specified file.
+     * file.
+     *
+     * @param file the file where the input stream originated
+     */
+    public Source(final File file) {
+        this.file = Objects.requireNonNull(file, "file is null");
+        this.location = file.getAbsolutePath();
+        this.uri = null;
+    }
+
+    /**
+     * Constructs a new {@code Source} from the specified URI.
+     *
+     * @param uri the URL where the input stream originated
+     */
+    public Source(final URI uri, final long lastModified) {
+        this.uri = Objects.requireNonNull(uri, "URI is null");
+        this.location = uri.toString();
+        this.file = null;
+    }
+
+    /**
+     * Returns the file configuration source, or {@code null} if this configuration source is based on an URL or has
+     * neither a file nor an URL.
+     *
+     * @return the configuration source file, or {@code null}
+     */
+    public File getFile() {
+        return file;
+    }
+
+    /**
+     * Returns the configuration source URL, or {@code null} if this configuration source is based on a file or has
+     * neither a file nor an URL.
+     *
+     * @return the configuration source URL, or {@code null}
+     */
+    public URI getURI() {
+        return uri;
+    }
+
+    /**
+     * Returns a string describing the configuration source file or URL, or {@code null} if this configuration source
+     * has neither a file nor an URL.
+     *
+     * @return a string describing the configuration source file or URL, or {@code null}
+     */
+    public String getLocation() {
+        return location;
+    }
+
+    @Override
+    public String toString() {
+        return location;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof Source)) {
+            return false;
+        }
+        Source source = (Source) o;
+        return Objects.equals(location, source.location);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(location);
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
index 31a98ef..37e0a44 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatchManager.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.AbstractLifeCycle;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
 import org.apache.logging.log4j.core.config.ConfigurationScheduler;
 import org.apache.logging.log4j.status.StatusLogger;
 
@@ -39,7 +40,7 @@ import org.apache.logging.log4j.status.StatusLogger;
 public class WatchManager extends AbstractLifeCycle {
 
     private static Logger logger = StatusLogger.getLogger();
-    private final ConcurrentMap<File, FileMonitor> watchers = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Source, ConfigurationMonitor> watchers = new ConcurrentHashMap<>();
     private int intervalSeconds = 0;
     private ScheduledFuture<?> future;
     private final ConfigurationScheduler scheduler;
@@ -60,8 +61,8 @@ public class WatchManager extends AbstractLifeCycle {
      */
     public void reset() {
         logger.debug("Resetting {}", this);
-        for (final File file : watchers.keySet()) {
-            reset(file);
+        for (final Source source: watchers.keySet()) {
+            reset(source);
         }
     }
 
@@ -81,16 +82,38 @@ public class WatchManager extends AbstractLifeCycle {
         if (file == null) {
             return;
         }
-        final FileMonitor fileMonitor = watchers.get(file);
-        if (fileMonitor != null) {
-            final long lastModifiedMillis = file.lastModified();
-            if (lastModifiedMillis != fileMonitor.lastModifiedMillis) {
+        Source source = new Source(file);
+        reset(source);
+    }
+
+
+    /**
+     * Resets the configuration monitor for the given file being watched to its current last modified time. If this
+     * manager does not watch the given configuration, nothing happens.
+     * <p>
+     * This allows you to start, stop, reset and start again a manager, without triggering file modified events if the
+     * given watched configuration has changed during the period of time when the manager was stopped.
+     * </p>
+     *
+     * @param source
+     *            the Source for the monitor to reset.
+     * @since 2.11.2
+     */
+    public void reset(final Source source) {
+        if (source == null) {
+            return;
+        }
+        final ConfigurationMonitor monitor = watchers.get(source);
+        if (monitor != null) {
+            Watcher watcher = monitor.getWatcher();
+            if (watcher.isModified()) {
+                final long lastModifiedMillis = watcher.getLastModified();
                 if (logger.isDebugEnabled()) {
-                    logger.debug("Resetting file monitor for '{}' from {} ({}) to {} ({})", file,
-                            millisToString(fileMonitor.lastModifiedMillis), fileMonitor.lastModifiedMillis,
-                            millisToString(lastModifiedMillis), lastModifiedMillis);
+                    logger.debug("Resetting file monitor for '{}' from {} ({}) to {} ({})", source.getLocation(),
+                        millisToString(monitor.lastModifiedMillis), monitor.lastModifiedMillis,
+                        millisToString(lastModifiedMillis), lastModifiedMillis);
                 }
-                fileMonitor.setLastModifiedMillis(lastModifiedMillis);
+                monitor.setLastModifiedMillis(lastModifiedMillis);
             }
         }
     }
@@ -140,8 +163,20 @@ public class WatchManager extends AbstractLifeCycle {
      * @since 2.11.0
      */
     public void unwatchFile(final File file) {
-        logger.debug("Unwatching file '{}'", file);
-        watchers.remove(file);
+        Source source = new Source(file);
+        unwatch(source);
+    }
+
+    /**
+     * Unwatches the given file.
+     *
+     * @param source the Source to stop watching.
+     *            the file to stop watching.
+     * @since 2.11.2
+     */
+    public void unwatch(final Source source) {
+        logger.debug("Unwatching configuration {}", source);
+        watchers.remove(source);
     }
 
     /**
@@ -149,21 +184,62 @@ public class WatchManager extends AbstractLifeCycle {
      *
      * @param file
      *            the file to watch.
+     * @param fileWatcher
+     *            the watcher to notify of file changes.
+     */
+    public void watchFile(final File file, final FileWatcher fileWatcher) {
+        Watcher watcher;
+        if (fileWatcher instanceof Watcher) {
+            watcher = (Watcher) fileWatcher;
+        } else {
+            watcher = new WrappedFileWatcher(fileWatcher);
+        }
+        Source source = new Source(file);
+        watch(source, watcher);
+    }
+
+    /**
+     * Watches the given file.
+     *
+     * @param source the source to watch.
      * @param watcher
      *            the watcher to notify of file changes.
      */
-    public void watchFile(final File file, final FileWatcher watcher) {
-        final long lastModified = file.lastModified();
+    public void watch(final Source source, final Watcher watcher) {
+        watcher.watching(source);
+        final long lastModified = watcher.getLastModified();
         if (logger.isDebugEnabled()) {
-            logger.debug("Watching file '{}' for lastModified {} ({})", file, millisToString(lastModified), lastModified);
+            logger.debug("Watching configuration '{}' for lastModified {} ({})", source, millisToString(lastModified), lastModified);
         }
-        watchers.put(file, new FileMonitor(lastModified, watcher));
+        watchers.put(source, new ConfigurationMonitor(lastModified, watcher));
     }
 
+    /**
+     * Returns a Map of the file watchers.
+     * @return A Map of the file watchers.
+     * @deprecated use getConfigurationWatchers.
+     */
     public Map<File, FileWatcher> getWatchers() {
         final Map<File, FileWatcher> map = new HashMap<>(watchers.size());
-        for (final Map.Entry<File, FileMonitor> entry : watchers.entrySet()) {
-            map.put(entry.getKey(), entry.getValue().fileWatcher);
+        for (Map.Entry<Source, ConfigurationMonitor> entry : watchers.entrySet()) {
+            if (entry.getValue().getWatcher() instanceof ConfigurationFileWatcher) {
+                map.put(entry.getKey().getFile(), (FileWatcher) entry.getValue().getWatcher());
+            } else {
+                map.put(entry.getKey().getFile(), new WrappedFileWatcher((FileWatcher)entry.getValue().getWatcher()));
+            }
+        }
+        return map;
+    }
+
+    /**
+     * Return the ConfigurationWaatchers.
+     * @return the ConfigurationWatchers.
+     * @since 2.11.2
+     */
+    public Map<Source, Watcher> getConfigurationWatchers() {
+        final Map<Source, Watcher> map = new HashMap<>(watchers.size());
+        for (final Map.Entry<Source, ConfigurationMonitor> entry : watchers.entrySet()) {
+            map.put(entry.getKey(), entry.getValue().getWatcher());
         }
         return map;
     }
@@ -180,34 +256,34 @@ public class WatchManager extends AbstractLifeCycle {
         @Override
         public void run() {
             logger.trace("{} run triggered.", SIMPLE_NAME);
-            for (final Map.Entry<File, FileMonitor> entry : watchers.entrySet()) {
-                final File file = entry.getKey();
-                final FileMonitor fileMonitor = entry.getValue();
-                final long lastModfied = file.lastModified();
-                if (fileModified(fileMonitor, lastModfied)) {
+            for (final Map.Entry<Source, ConfigurationMonitor> entry : watchers.entrySet()) {
+                final Source source = entry.getKey();
+                final ConfigurationMonitor monitor = entry.getValue();
+                if (monitor.getWatcher().isModified()) {
+                    final long lastModified = monitor.getWatcher().getLastModified();
                     if (logger.isInfoEnabled()) {
-                        logger.info("File '{}' was modified on {} ({}), previous modification was on {} ({})", file,
-                                millisToString(lastModfied), lastModfied, millisToString(fileMonitor.lastModifiedMillis),
-                                fileMonitor.lastModifiedMillis);
+                        logger.info("Source '{}' was modified on {} ({}), previous modification was on {} ({})", source,
+                                millisToString(lastModified), lastModified, millisToString(monitor.lastModifiedMillis),
+                                monitor.lastModifiedMillis);
                     }
-                    fileMonitor.lastModifiedMillis = lastModfied;
-                    fileMonitor.fileWatcher.fileModified(file);
+                    monitor.lastModifiedMillis = lastModified;
+                    monitor.getWatcher().modified();
                 }
             }
             logger.trace("{} run ended.", SIMPLE_NAME);
         }
-
-        private boolean fileModified(final FileMonitor fileMonitor, final long lastModifiedMillis) {
-            return lastModifiedMillis != fileMonitor.lastModifiedMillis;
-        }
     }
 
-    private final class FileMonitor {
-        private final FileWatcher fileWatcher;
+    private final class ConfigurationMonitor {
+        private final Watcher watcher;
         private volatile long lastModifiedMillis;
 
-        public FileMonitor(final long lastModifiedMillis, final FileWatcher fileWatcher) {
-            this.fileWatcher = fileWatcher;
+        public Watcher getWatcher() {
+            return watcher;
+        }
+
+        public ConfigurationMonitor(final long lastModifiedMillis, final Watcher watcher) {
+            this.watcher = watcher;
             this.lastModifiedMillis = lastModifiedMillis;
         }
 
@@ -217,7 +293,7 @@ public class WatchManager extends AbstractLifeCycle {
 
         @Override
         public String toString() {
-            return "FileMonitor [fileWatcher=" + fileWatcher + ", lastModifiedMillis=" + lastModifiedMillis + "]";
+            return "ConfigurationMonitor [watcher=" + watcher + ", lastModifiedMillis=" + lastModifiedMillis + "]";
         }
 
     }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
new file mode 100644
index 0000000..7ae9cd0
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
@@ -0,0 +1,78 @@
+/*
+ * 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.core.util;
+
+import java.util.List;
+
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationListener;
+import org.apache.logging.log4j.core.config.Reconfigurable;
+
+/**
+ * Watches for changes in a Source and performs an action when it is modified.
+ *
+ * @see WatchManager
+ */
+public interface Watcher {
+
+    public static final String CATEGORY = "Watcher";
+
+    /**
+     * Returns the list of listeners for this configuration.
+     * @return The list of listeners.
+     */
+    List<ConfigurationListener> getListeners();
+
+    /**
+     * Called when the configuration has been modified.
+     * @param source The location of the configuration that was modified.
+     */
+    void modified();
+
+    /**
+     * Periodically called to determine if the configuration has been modified.
+     * @return true if the configuration was modified, false otherwise.
+     */
+    boolean isModified();
+
+    /**
+     * Returns the time the source was last modified or 0 if it is not available.
+     * @return the time the soruce was last modified.
+     */
+    long getLastModified();
+
+    /**
+     * Called when the Watcher is registered.
+     * @param source the Source that is being watched.
+     */
+    void watching(Source source);
+
+    /**
+     * Returns the Source being monitored.
+     * @return the Source.
+     */
+    Source getSource();
+
+    /**
+     * Creates a new Watcher by copying the original and using the new Reconfigurable and listeners.
+     * @param reconfigurable The Reconfigurable.
+     * @param listeners the listeners.
+     * @param lastModifiedMillis The time the resource was last modified in milliseconds.
+     * @return A new Watcher.
+     */
+    Watcher newWatcher(Reconfigurable reconfigurable, List<ConfigurationListener> listeners, long lastModifiedMillis);
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
new file mode 100644
index 0000000..ab9e86c
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2019 Nextiva, Inc. to Present.
+ * All rights reserved.
+ */
+package org.apache.logging.log4j.core.util;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
+import org.apache.logging.log4j.core.config.ConfigurationListener;
+import org.apache.logging.log4j.core.config.Reconfigurable;
+import org.apache.logging.log4j.core.config.plugins.util.PluginManager;
+import org.apache.logging.log4j.core.config.plugins.util.PluginType;
+import org.apache.logging.log4j.status.StatusLogger;
+
+/**
+ * Creates Watchers of various types.
+ */
+public class WatcherFactory {
+
+    private static Logger LOGGER = StatusLogger.getLogger();
+    private static PluginManager pluginManager = new PluginManager(Watcher.CATEGORY);
+
+    private static volatile WatcherFactory factory = null;
+
+    private final Map<String, PluginType<?>> plugins;
+
+    private WatcherFactory(List<String> packages) {
+        pluginManager.collectPlugins(packages);
+        plugins = pluginManager.getPlugins();
+    }
+
+    public static WatcherFactory getInstance(List<String> packages) {
+        if (factory == null) {
+            synchronized(pluginManager) {
+                if (factory == null) {
+                    factory = new WatcherFactory(packages);
+                }
+            }
+        }
+        return factory;
+    }
+
+    @SuppressWarnings("unchecked")
+    public Watcher newWatcher(Source source, final Configuration configuration, final Reconfigurable reconfigurable,
+        final List<ConfigurationListener> configurationListeners, long lastModifiedMillis) {
+        if (source.getFile() != null) {
+            return new ConfigurationFileWatcher(configuration, reconfigurable, configurationListeners,
+                lastModifiedMillis);
+        } else {
+            String name = source.getURI().getScheme();
+            PluginType<?> pluginType = plugins.get(name);
+            if (pluginType != null) {
+                return instantiate(name, (Class<? extends Watcher>) pluginType.getPluginClass(),
+                    configuration, reconfigurable, configurationListeners, lastModifiedMillis);
+            }
+            LOGGER.info("No Watcher plugin is available for protocol '{}'", name);
+            return null;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    public static <T extends Watcher> T instantiate(String name, final Class<T> clazz, final Configuration configuration,
+        final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners, long lastModifiedMillis) {
+        Objects.requireNonNull(clazz, "No class provided");
+        try {
+            Constructor constructor = clazz.getConstructor(Configuration.class, Reconfigurable.class, List.class, long.class);
+            return (T) constructor.newInstance(configuration, reconfigurable, listeners, lastModifiedMillis);
+        } catch (NoSuchMethodException ex) {
+            throw new IllegalArgumentException("No valid constructor for Watcher plugin " + name, ex);
+        } catch (final LinkageError | InstantiationException e) {
+            // LOG4J2-1051
+            // On platforms like Google App Engine and Android, some JRE classes are not supported: JMX, JNDI, etc.
+            throw new IllegalArgumentException(e);
+        } catch (final IllegalAccessException e) {
+            throw new IllegalStateException(e);
+        } catch (final InvocationTargetException e) {
+            Throwables.rethrow(e.getCause());
+            throw new InternalError("Unreachable");
+        }
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
new file mode 100644
index 0000000..ffab8bb
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WrappedFileWatcher.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2019 Nextiva, Inc. to Present.
+ * All rights reserved.
+ */
+package org.apache.logging.log4j.core.util;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationListener;
+import org.apache.logging.log4j.core.config.Reconfigurable;
+
+/**
+ *
+ */
+public class WrappedFileWatcher extends AbstractWatcher implements FileWatcher {
+
+    private final FileWatcher watcher;
+    private volatile long lastModifiedMillis;
+
+    public WrappedFileWatcher(FileWatcher watcher, final Configuration configuration,
+        final Reconfigurable reconfigurable, final List<ConfigurationListener> configurationListeners,
+        final long lastModifiedMillis) {
+        super(configuration, reconfigurable, configurationListeners);
+        this.watcher = watcher;
+        this.lastModifiedMillis = lastModifiedMillis;
+    }
+
+
+    public WrappedFileWatcher(FileWatcher watcher) {
+        super(null, null, null);
+        this.watcher = watcher;
+    }
+
+    public long getLastModified() {
+        return lastModifiedMillis;
+    }
+
+    @Override
+    public void fileModified(File file) {
+        watcher.fileModified(file);
+    }
+
+    @Override
+    public boolean isModified() {
+        long lastModified = getSource().getFile().lastModified();
+        if (lastModifiedMillis != lastModified) {
+            lastModifiedMillis = lastModified;
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public List<ConfigurationListener> getListeners() {
+        if (super.getListeners() != null) {
+            return Collections.unmodifiableList(super.getListeners());
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public void modified() {
+        if (getListeners() != null) {
+            super.modified();
+        }
+        fileModified(getSource().getFile());
+        lastModifiedMillis = getSource().getFile().lastModified();
+    }
+
+    @Override
+    public void watching(Source source) {
+        lastModifiedMillis = source.getFile().lastModified();
+        super.watching(source);
+    }
+
+    @Override
+    public Watcher newWatcher(final Reconfigurable reconfigurable, final List<ConfigurationListener> listeners,
+        long lastModifiedMillis) {
+        WrappedFileWatcher watcher = new WrappedFileWatcher(this.watcher, getConfiguration(), reconfigurable, listeners,
+            lastModifiedMillis);
+        if (getSource() != null) {
+            watcher.watching(getSource());
+        }
+        return watcher;
+    }
+}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
new file mode 100644
index 0000000..f9b5abf
--- /dev/null
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/util/WatchHttpTest.java
@@ -0,0 +1,175 @@
+/*
+ * 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.core.util;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Queue;
+import java.util.TimeZone;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.ConfigurationListener;
+import org.apache.logging.log4j.core.config.ConfigurationScheduler;
+import org.apache.logging.log4j.core.config.DefaultConfiguration;
+import org.apache.logging.log4j.core.config.HttpWatcher;
+import org.apache.logging.log4j.core.config.Reconfigurable;
+import org.apache.logging.log4j.core.net.ssl.TestConstants;
+import org.apache.logging.log4j.core.util.datetime.FastDateFormat;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.junit.After;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule;
+import com.github.tomakehurst.wiremock.stubbing.StubMapping;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.removeStub;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+/**
+ * Test the WatchManager
+ */
+public class WatchHttpTest {
+
+    private static final String FORCE_RUN_KEY = WatchHttpTest.class.getSimpleName() + ".forceRun";
+    private final String file = "log4j-test1.xml";
+    private static FastDateFormat formatter;
+    private static final String XML = "application/xml";
+
+    private static final boolean IS_WINDOWS = PropertiesUtil.getProperties().isOsWindows();
+
+    @BeforeClass
+    public static void beforeClass() {
+        try {
+            formatter = FastDateFormat.getInstance("EEE, dd MMM yyyy HH:mm:ss", TimeZone.getTimeZone("UTC"));
+        } catch (Exception ex) {
+            System.err.println("Unable to create date format.");
+            ex.printStackTrace();
+            throw ex;
+        }
+    }
+
+    @Rule
+    public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort().dynamicHttpsPort()
+        .keystorePath(TestConstants.KEYSTORE_FILE)
+        .keystorePassword(String.valueOf(TestConstants.KEYSTORE_PWD()))
+        .keystoreType(TestConstants.KEYSTORE_TYPE));
+
+    @Test
+    public void testWatchManager() throws Exception {
+        BlockingQueue<String> queue = new LinkedBlockingQueue<>();
+        List<ConfigurationListener> listeners = new ArrayList<>();
+        listeners.add(new TestConfigurationListener(queue, "log4j-test1.xml"));
+        TimeZone timeZone = TimeZone.getTimeZone("UTC");
+        Calendar now = Calendar.getInstance(timeZone);
+        Calendar previous = now;
+        previous.add(Calendar.MINUTE, -5);
+        Configuration configuration = new DefaultConfiguration();
+        Assume.assumeTrue(!IS_WINDOWS || Boolean.getBoolean(FORCE_RUN_KEY));
+        URL url = new URL("http://localhost:" + wireMockRule.port() + "/log4j-test1.xml");
+        StubMapping stubMapping = stubFor(get(urlPathEqualTo("/log4j-test1.xml"))
+            .willReturn(aResponse()
+            .withBodyFile(file)
+            .withStatus(200)
+            .withHeader("Last-Modified", formatter.format(previous) + " GMT")
+            .withHeader("Content-Type", XML)));
+        final ConfigurationScheduler scheduler = new ConfigurationScheduler();
+        scheduler.incrementScheduledItems();
+        final WatchManager watchManager = new WatchManager(scheduler);
+        watchManager.setIntervalSeconds(1);
+        scheduler.start();
+        watchManager.start();
+        try {
+            watchManager.watch(new Source(url.toURI(), previous.getTimeInMillis()), new HttpWatcher(configuration, null,
+                listeners, previous.getTimeInMillis()));
+            Thread.sleep(1500);
+            final String str = queue.poll(1, TimeUnit.SECONDS);
+            assertNotNull("File change not detected", str);
+        } finally {
+            removeStub(stubMapping);
+            watchManager.stop();
+            scheduler.stop();
+        }
+    }
+
+    @Test
+    public void testNotModified() throws Exception {
+        BlockingQueue<String> queue = new LinkedBlockingQueue<>();
+        List<ConfigurationListener> listeners = new ArrayList<>();
+        listeners.add(new TestConfigurationListener(queue, "log4j-test2.xml"));
+        TimeZone timeZone = TimeZone.getTimeZone("UTC");
+        Calendar now = Calendar.getInstance(timeZone);
+        Calendar previous = now;
+        previous.add(Calendar.MINUTE, -5);
+        Configuration configuration = new DefaultConfiguration();
+        Assume.assumeTrue(!IS_WINDOWS || Boolean.getBoolean(FORCE_RUN_KEY));
+        URL url = new URL("http://localhost:" + wireMockRule.port() + "/log4j-test2.xml");
+        StubMapping stubMapping = stubFor(get(urlPathEqualTo("/log4j-test2.xml"))
+            .willReturn(aResponse()
+                .withBodyFile(file)
+                .withStatus(304)
+                .withHeader("Last-Modified", formatter.format(now) + " GMT")
+                .withHeader("Content-Type", XML)));
+        final ConfigurationScheduler scheduler = new ConfigurationScheduler();
+        scheduler.incrementScheduledItems();
+        final WatchManager watchManager = new WatchManager(scheduler);
+        watchManager.setIntervalSeconds(1);
+        scheduler.start();
+        watchManager.start();
+        try {
+            watchManager.watch(new Source(url.toURI(), previous.getTimeInMillis()), new HttpWatcher(configuration, null,
+                listeners, previous.getTimeInMillis()));
+            Thread.sleep(1500);
+            final String str = queue.poll(1, TimeUnit.SECONDS);
+            assertNull("File changed.", str);
+        } finally {
+            removeStub(stubMapping);
+            watchManager.stop();
+            scheduler.stop();
+        }
+    }
+
+    private class TestConfigurationListener implements ConfigurationListener {
+        private final Queue<String> queue;
+        private final String name;
+
+        public TestConfigurationListener(final Queue<String> queue, String name) {
+            this.queue = queue;
+            this.name = name;
+        }
+
+        @Override
+        public void onChange(Reconfigurable reconfigurable) {
+            //System.out.println("Reconfiguration detected for " + name);
+            queue.add(name);
+        }
+    }
+}
diff --git a/log4j-core/src/test/resources/__files/log4j-test1.xml b/log4j-core/src/test/resources/__files/log4j-test1.xml
new file mode 100644
index 0000000..3598aec
--- /dev/null
+++ b/log4j-core/src/test/resources/__files/log4j-test1.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+
+-->
+<Configuration status="OFF" name="XMLConfigTest">
+  <Properties>
+    <Property name="filename">target/test-xml.log</Property>
+  </Properties>
+  <ThresholdFilter level="debug"/>
+
+  <Appenders>
+    <Console name="STDOUT">
+      <PatternLayout pattern="%m%n"/>
+    </Console>
+    <File name="File" fileName="${filename}" bufferedIO="false">
+      <PatternLayout>
+        <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
+      </PatternLayout>
+    </File>
+    <List name="List">
+      <Filters>
+        <ThresholdFilter level="error"/>
+      </Filters>
+    </List>
+  </Appenders>
+
+  <Loggers>
+    <Logger name="org.apache.logging.log4j.test1" level="debug" additivity="false">
+        <ThreadContextMapFilter>
+          <KeyValuePair key="test" value="123"/>
+        </ThreadContextMapFilter>
+      <AppenderRef ref="STDOUT"/>
+    </Logger>
+
+    <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
+      <AppenderRef ref="File"/>
+    </Logger>
+
+    <Root level="error">
+      <AppenderRef ref="STDOUT"/>
+    </Root>
+  </Loggers>
+
+</Configuration>
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
new file mode 100644
index 0000000..8799078
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/pom.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-spring-cloud-config</artifactId>
+    <version>2.11.2-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>log4j-spring-cloud-config-client</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Log4j Spring Cloud Config Client Support</name>
+  <description></description>
+  <properties>
+    <log4jParentDir>${basedir}/..</log4jParentDir>
+    <docLabel>Log4j Spring Cloud Config Client Documentation</docLabel>
+    <projectDir>/log4j-spring-cloud-config-client</projectDir>
+    <module.name>org.apache.logging.log4j.spring.cloud.config.client</module.name>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-config-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <!-- Include the standard NOTICE and LICENSE -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>false</skip>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>${changes.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+          <useJql>true</useJql>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.plugin.version}</version>
+        <configuration>
+          <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
+          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>
+          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>
+          <enableRulesSummary>false</enableRulesSummary>
+          <propertyExpansion>basedir=${basedir}</propertyExpansion>
+          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>${javadoc.plugin.version}</version>
+        <configuration>
+          <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
+          <!-- module link generation is completely broken in the javadoc plugin for a multi-module non-aggregating
+               project -->
+          <detectOfflineLinks>false</detectOfflineLinks>
+          <linksource>true</linksource>
+        </configuration>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>javadoc</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <version>${findbugs.plugin.version}</version>
+        <configuration>
+          <fork>true</fork>
+          <jvmArgs>-Duser.language=en</jvmArgs>
+          <threshold>Normal</threshold>
+          <effort>Default</effort>
+          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+        <version>${jxr.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>jxr</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <id>aggregate</id>
+            <reports>
+              <report>aggregate</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pmd-plugin</artifactId>
+        <version>${pmd.plugin.version}</version>
+        <configuration>
+          <targetJdk>${maven.compiler.target}</targetJdk>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
new file mode 100644
index 0000000..05b02f9
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/java/org/apache/logging/log4j/spring/cloud/config/client/Log4j2CloudConfigLoggingSystem.java
@@ -0,0 +1,127 @@
+/*
+ * 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.spring.cloud.config.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+import javax.net.ssl.HttpsURLConnection;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.FileUtils;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.springframework.boot.logging.LogFile;
+import org.springframework.boot.logging.LoggingInitializationContext;
+import org.springframework.boot.logging.log4j2.Log4J2LoggingSystem;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.util.Assert;
+import org.springframework.util.ClassUtils;
+import org.springframework.util.ResourceUtils;
+
+/**
+ *
+ */
+public class Log4j2CloudConfigLoggingSystem extends Log4J2LoggingSystem {
+    private static final String FILE_PROTOCOL = "file";
+    private static final String HTTPS = "https";
+    private Logger LOGGER = StatusLogger.getLogger();
+
+    public Log4j2CloudConfigLoggingSystem(ClassLoader loader) {
+        super(loader);
+    }
+
+    @Override
+    protected String[] getStandardConfigLocations() {
+        String[] locations = super.getStandardConfigLocations();
+        PropertiesUtil props = new PropertiesUtil(new Properties());
+        String location = props.getStringProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY);
+        if (location != null) {
+            List<String> list = Arrays.asList(super.getStandardConfigLocations());
+            list.add(location);
+            locations = list.toArray(new String[list.size()]);
+        }
+        return locations;
+    }
+
+    @Override
+    protected void loadDefaults(LoggingInitializationContext initializationContext, LogFile logFile) {
+        if (logFile != null) {
+            this.loadConfiguration(this.getBootPackagedConfigFile("log4j2-file.xml"), logFile);
+        } else {
+            this.loadConfiguration(this.getBootPackagedConfigFile("log4j2.xml"), logFile);
+        }
+    }
+
+    private String getBootPackagedConfigFile(String fileName) {
+        String defaultPath = ClassUtils.getPackageName(Log4J2LoggingSystem.class);
+        defaultPath = defaultPath.replace('.', '/');
+        defaultPath = defaultPath + "/" + fileName;
+        defaultPath = "classpath:" + defaultPath;
+        return defaultPath;
+    }
+
+    @Override
+    protected void loadConfiguration(String location, LogFile logFile) {
+        Assert.notNull(location, "Location must not be null");
+        try {
+            LoggerContext ctx = getLoggerContext();
+            URL url = ResourceUtils.getURL(location);
+            ConfigurationSource source = getConfigurationSource(url);
+            ctx.start(ConfigurationFactory.getInstance().getConfiguration(ctx, source));
+        }
+        catch (Exception ex) {
+            throw new IllegalStateException(
+                "Could not initialize Log4J2 logging from " + location, ex);
+        }
+    }
+
+    private ConfigurationSource getConfigurationSource(URL url) throws IOException, URISyntaxException {
+        URLConnection urlConnection = url.openConnection();
+        if (url.getProtocol().equals(HTTPS)) {
+            SslConfiguration sslConfiguration = SslConfigurationFactory.getSslConfiguration();
+            if (sslConfiguration != null) {
+                ((HttpsURLConnection) urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
+                if (!sslConfiguration.isVerifyHostName()) {
+                    ((HttpsURLConnection) urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+                }
+            }
+        }
+        File file = FileUtils.fileFromUri(url.toURI());
+        if (file != null) {
+            return new ConfigurationSource(urlConnection.getInputStream(), FileUtils.fileFromUri(url.toURI()));
+        } else {
+            return new ConfigurationSource(urlConnection.getInputStream(), url, urlConnection.getLastModified());
+        }
+    }
+
+    private LoggerContext getLoggerContext() {
+        return (LoggerContext) LogManager.getContext(false);
+    }
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.system.properties b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.system.properties
new file mode 100644
index 0000000..918a074
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-client/src/main/resources/log4j2.system.properties
@@ -0,0 +1 @@
+org.springframework.boot.logging.LoggingSystem=org.apache.logging.log4j.spring.cloud.config.client.Log4j2CloudConfigLoggingSystem
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
new file mode 100644
index 0000000..6a31ce6
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/pom.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-spring-cloud-config</artifactId>
+    <version>2.11.2-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>log4j-spring-cloud-config-server</artifactId>
+  <packaging>jar</packaging>
+  <name>Apache Log4j Spring Cloud Config Server Support</name>
+  <description></description>
+  <properties>
+    <log4jParentDir>${basedir}/..</log4jParentDir>
+    <docLabel>Log4j Spring Cloud Config Server Documentation</docLabel>
+    <projectDir>/log4j-spring-cloud-config-server</projectDir>
+    <module.name>org.apache.logging.log4j.spring.cloud.config.controller</module.name>
+    <log4j.version>2.11.2-SNAPSHOT</log4j.version>
+  </properties>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-config-server</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-webmvc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <!-- Include the standard NOTICE and LICENSE -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>false</skip>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <configuration>
+          <instructions>
+            <Export-Package>org.apache.logging.log4j.spring.cloud.config.controller</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>${changes.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate>
+          <useJql>true</useJql>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.plugin.version}</version>
+        <configuration>
+          <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
+          <configLocation>${log4jParentDir}/checkstyle.xml</configLocation>
+          <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation>
+          <enableRulesSummary>false</enableRulesSummary>
+          <propertyExpansion>basedir=${basedir}</propertyExpansion>
+          <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>${javadoc.plugin.version}</version>
+        <configuration>
+          <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
+          <!-- module link generation is completely broken in the javadoc plugin for a multi-module non-aggregating
+               project -->
+          <detectOfflineLinks>false</detectOfflineLinks>
+          <linksource>true</linksource>
+        </configuration>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>javadoc</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <version>${findbugs.plugin.version}</version>
+        <configuration>
+          <fork>true</fork>
+          <jvmArgs>-Duser.language=en</jvmArgs>
+          <threshold>Normal</threshold>
+          <effort>Default</effort>
+          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+        <version>${jxr.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <id>non-aggregate</id>
+            <reports>
+              <report>jxr</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <id>aggregate</id>
+            <reports>
+              <report>aggregate</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pmd-plugin</artifactId>
+        <version>${pmd.plugin.version}</version>
+        <configuration>
+          <targetJdk>${maven.compiler.target}</targetJdk>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
new file mode 100644
index 0000000..e6bdd66
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/java/org/apache/logging/log4j/spring/cloud/config/server/controller/Log4jResourceController.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2015-2016 the original author or authors.
+ *
+ * Licensed 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.spring.cloud.config.server.controller;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.config.environment.Environment;
+import org.springframework.cloud.config.server.environment.EnvironmentRepository;
+import org.springframework.cloud.config.server.resource.NoSuchResourceException;
+import org.springframework.cloud.config.server.resource.ResourceRepository;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.util.StreamUtils;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.context.request.ServletWebRequest;
+import org.springframework.web.util.UrlPathHelper;
+
+import static org.springframework.cloud.config.server.support.EnvironmentPropertySource.prepareEnvironment;
+import static org.springframework.cloud.config.server.support.EnvironmentPropertySource.resolvePlaceholders;
+
+/**
+ * Modified version of Spring Cloud Config's ResourceController to support If-Modified-Since.
+ * Should be dropeed when Spring implements this.
+ *
+ * An HTTP endpoint for serving up templated plain text resources from an underlying
+ * repository. Can be used to supply config files for consumption by a wide variety of
+ * applications and services. A {@link ResourceRepository} is used to locate a
+ * {@link Resource}, specific to an application, and the contents are transformed to text.
+ * Then an {@link EnvironmentRepository} is used to supply key-value pairs which are used
+ * to replace placeholders in the resource text.
+ *
+ * @author Dave Syer
+ * @author Daniel Lavoie
+ *
+ */
+@RestController
+@RequestMapping(method = RequestMethod.GET, path = "${spring.cloud.config.server.prefix:}/resource")
+public class Log4jResourceController {
+
+    @Autowired
+	private ResourceRepository resourceRepository;
+
+    @Autowired
+	private EnvironmentRepository environmentRepository;
+
+	private UrlPathHelper helper = new UrlPathHelper();
+
+	public Log4jResourceController(ResourceRepository resourceRepository,
+			EnvironmentRepository environmentRepository) {
+		this.resourceRepository = resourceRepository;
+		this.environmentRepository = environmentRepository;
+		this.helper.setAlwaysUseFullPath(true);
+	}
+
+	@RequestMapping("/{name}/{profile}/{label}/**")
+	public String retrieve(@PathVariable String name, @PathVariable String profile,
+			@PathVariable String label, ServletWebRequest request,
+            @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
+			throws IOException {
+		String path = getFilePath(request, name, profile, label);
+		return retrieve(request, name, profile, label, path, resolvePlaceholders);
+	}
+
+	@RequestMapping(value = "/{name}/{profile}/**", params = "useDefaultLabel")
+	public String retrieve(@PathVariable String name, @PathVariable String profile,
+			ServletWebRequest request, @RequestParam(defaultValue = "true") boolean resolvePlaceholders)
+			throws IOException {
+		String path = getFilePath(request, name, profile, null);
+		return retrieve(request, name, profile, null, path, resolvePlaceholders);
+	}
+
+	private String getFilePath(ServletWebRequest request, String name, String profile,
+			String label) {
+		String stem;
+		if(label != null ) {
+			stem = String.format("/%s/%s/%s/", name, profile, label);
+		}else {
+			stem = String.format("/%s/%s/", name, profile);
+		}
+		String path = this.helper.getPathWithinApplication(request.getRequest());
+		path = path.substring(path.indexOf(stem) + stem.length());
+		return path;
+	}
+
+    private synchronized String retrieve(ServletWebRequest request, String name, String profile, String label,
+        String path, boolean resolvePlaceholders) throws IOException {
+        name = resolveName(name);
+        label = resolveLabel(label);
+        Resource resource = this.resourceRepository.findOne(name, profile, label, path);
+        if (checkNotModified(request, resource)) {
+            // Content was not modified. Just return.
+            return null;
+        }
+        // ensure InputStream will be closed to prevent file locks on Windows
+        try (InputStream is = resource.getInputStream()) {
+            String text = StreamUtils.copyToString(is, Charset.forName("UTF-8"));
+            if (resolvePlaceholders) {
+                Environment environment = this.environmentRepository.findOne(name, profile, label);
+                text = resolvePlaceholders(prepareEnvironment(environment), text);
+            }
+            return text;
+        }
+    }
+
+    /*
+     * Used only for unit tests.
+     */
+    String retrieve(String name, String profile, String label, String path,
+        boolean resolvePlaceholders) throws IOException {
+	    return retrieve(null, name, profile, label, path, resolvePlaceholders);
+    }
+
+	@RequestMapping(value = "/{name}/{profile}/{label}/**", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
+	public synchronized byte[] binary(@PathVariable String name,
+			@PathVariable String profile, @PathVariable String label,
+			ServletWebRequest request) throws IOException {
+		String path = getFilePath(request, name, profile, label);
+		return binary(request, name, profile, label, path);
+	}
+
+	/*
+	 * Used only for unit tests.
+	 */
+	byte[] binary(String name, String profile, String label, String path) throws IOException {
+        return binary(null, name, profile, label, path);
+    }
+
+	private synchronized byte[] binary(ServletWebRequest request, String name, String profile, String label,
+        String path) throws IOException {
+        name = resolveName(name);
+        label = resolveLabel(label);
+        Resource resource = this.resourceRepository.findOne(name, profile, label, path);
+        if (checkNotModified(request, resource)) {
+            // Content was not modified. Just return.
+            return null;
+        }
+		// TODO: is this line needed for side effects?
+		prepareEnvironment(this.environmentRepository.findOne(name, profile, label));
+		try (InputStream is = resource.getInputStream()) {
+			return StreamUtils.copyToByteArray(is);
+		}
+	}
+
+	private boolean checkNotModified(ServletWebRequest request, Resource resource) {
+        try {
+            return request != null && request.checkNotModified(resource.lastModified());
+        } catch (Exception ex) {
+            // Ignore the exception since caching is optional.
+        }
+        return false;
+    }
+
+	private String resolveName(String name) {
+        if (name != null && name.contains("(_)")) {
+            // "(_)" is uncommon in a git repo name, but "/" cannot be matched
+            // by Spring MVC
+            name = name.replace("(_)", "/");
+        }
+        return name;
+    }
+
+    private String resolveLabel(String label) {
+        if (label != null && label.contains("(_)")) {
+            // "(_)" is uncommon in a git branch name, but "/" cannot be matched
+            // by Spring MVC
+            label = label.replace("(_)", "/");
+        }
+        return label;
+    }
+
+	@ExceptionHandler(NoSuchResourceException.class)
+	@ResponseStatus(HttpStatus.NOT_FOUND)
+	public void notFound(NoSuchResourceException e) {
+	}
+
+}
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/resources/META-INF/spring.factories b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..dadd13c
--- /dev/null
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-server/src/main/resources/META-INF/spring.factories
@@ -0,0 +1 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.apache.logging.log4j.spring.cloud.config.server.controller.Log4jResourceController
\ No newline at end of file
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
new file mode 100644
index 0000000..a736e86
--- /dev/null
+++ b/log4j-spring-cloud-config/pom.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j</artifactId>
+    <version>2.11.2-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <groupId>org.apache.logging.log4j</groupId>
+  <artifactId>log4j-spring-cloud-config</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache Log4j Spring Cloud Config Support</name>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <revapi.skip>true</revapi.skip>
+    <spring-cloud-config.version>2.0.3.BUILD-SNAPSHOT</spring-cloud-config.version>
+    <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
+    <spring.version>5.0.5.RELEASE</spring.version>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.springframework.cloud</groupId>
+        <artifactId>spring-cloud-config-dependencies</artifactId>
+        <version>${spring-cloud-config.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot</artifactId>
+        <version>${spring-boot.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-web</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webmvc</artifactId>
+        <version>${spring.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <modules>
+    <module>log4j-spring-cloud-config-server</module>
+    <module>log4j-spring-cloud-config-client</module>
+  </modules>
+  <build>
+    <plugins>
+      <!-- Include the standard NOTICE and LICENSE -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>false</skip>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/pom.xml b/pom.xml
index 3b9a7c4..04f33cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,1719 +1,1720 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Log4j 2</name>
-  <version>2.12.0-SNAPSHOT</version>
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>21</version>
-  </parent>
-  <prerequisites>
-    <maven>3.0.5</maven>
-  </prerequisites>
-  <description>Apache Log4j 2</description>
-  <url>https://logging.apache.org/log4j/2.x/</url>
-  <issueManagement>
-    <system>JIRA</system>
-    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
-  </issueManagement>
-  <ciManagement>
-    <system>Jenkins</system>
-    <url>https://builds.apache.org/job/Log4j%202.x/</url>
-  </ciManagement>
-  <inceptionYear>1999</inceptionYear>
-  <developers>
-    <developer>
-      <id>rgoers</id>
-      <name>Ralph Goers</name>
-      <email>rgoers@apache.org</email>
-      <organization>Nextiva</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Phoenix</timezone>
-    </developer>
-    <developer>
-      <id>ggregory</id>
-      <name>Gary Gregory</name>
-      <email>ggregory@apache.org</email>
-      <organization>Rocket Software</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Denver</timezone>
-    </developer>
-    <developer>
-      <id>sdeboy</id>
-      <name>Scott Deboy</name>
-      <email>sdeboy@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Los_Angeles</timezone>
-    </developer>
-    <developer>
-      <id>rpopma</id>
-      <name>Remko Popma</name>
-      <email>rpopma@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Asia/Tokyo</timezone>
-      <properties>
-        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
-      </properties>
-    </developer>
-    <developer>
-      <id>nickwilliams</id>
-      <name>Nick Williams</name>
-      <email>nickwilliams@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-    <developer>
-      <id>mattsicker</id>
-      <name>Matt Sicker</name>
-      <email>mattsicker@apache.org</email>
-      <organization>CloudBees</organization>
-      <roles>
-        <role>PMC Chair</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-    <developer>
-      <id>bbrouwer</id>
-      <name>Bruce Brouwer</name>
-      <email>bruce.brouwer@gmail.com</email>
-      <roles>
-        <role>Committer</role>
-      </roles>
-      <timezone>America/Detroit</timezone>
-    </developer>
-    <developer>
-      <id>mikes</id>
-      <name>Mikael Ståldal</name>
-      <email>mikes@apache.org</email>
-      <organization>Spotify</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Europe/Stockholm</timezone>
-    </developer>
-    <developer>
-      <id>ckozak</id>
-      <name>Carter Kozak</name>
-      <email>ckozak@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New York</timezone>
-    </developer>
-  </developers>
-  <!-- Contributors -->
-  <contributors>
-      <contributor>
-        <name>Murad Ersoy</name>
-        <email>muradersoy@gmail.com</email>
-        <url>https://www.behance.net/muradersoy</url>
-        <roles>
-          <role>Illustrator and Designer</role>
-          <role>created the new Log4j 2 logo.</role>
-        </roles>
-        <timezone>Europe/Istanbul</timezone>
-        <properties>
-          <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
-        </properties>
-      </contributor>
-   </contributors>
-  <mailingLists>
-    <mailingList>
-      <name>log4j-user</name>
-      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
-      <post>log4j-user@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
-        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
-      </otherArchives>
-    </mailingList>
-    <mailingList>
-      <name>dev</name>
-      <subscribe>dev-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
-      <post>dev@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
-        <otherArchive>http://marc.info/?l=dev</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
-      </otherArchives>
-    </mailingList>
-  </mailingLists>
-  <scm>
-    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</connection>
-    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</developerConnection>
-    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary</url>
-    <tag>log4j-${Log4jReleaseVersion}</tag>
-  </scm>
-  <properties>
-    <!-- make sure to update these for each release! -->
-    <log4jParentDir>${basedir}</log4jParentDir>
-    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
-    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
-    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
-    <!--<Log4jReleaseManager>Matt Sicker</Log4jReleaseManager> -->
-    <!--<Log4jReleaseKey>748F15B2CF9BA8F024155E6ED7C92B70FA1C814D</Log4jReleaseKey> -->
-    <!-- note that any properties you want available in velocity templates must not use periods! -->
-    <slf4jVersion>1.7.25</slf4jVersion>
-    <logbackVersion>1.2.3</logbackVersion>
-    <jackson1Version>1.9.13</jackson1Version>
-    <jackson2Version>2.9.8</jackson2Version>
-    <springVersion>3.2.18.RELEASE</springVersion>
-    <flumeVersion>1.7.0</flumeVersion> <!-- Version 1.8.0 requires Java 8 -->
-    <disruptorVersion>3.4.2</disruptorVersion>
-    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion> <!-- Version 1.2.11 requires Java 8 -->
-    <mongodb2.version>2.14.3</mongodb2.version>
-    <mongodb3.version>3.10.1</mongodb3.version>
-    <groovy.version>2.5.6</groovy.version>
-    <compiler.plugin.version>3.8.0</compiler.plugin.version>
-    <pmd.plugin.version>3.10.0</pmd.plugin.version>
-    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
-    <changes.plugin.version>2.12.1</changes.plugin.version>
-    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
-    <!-- surefire.plugin.version 2.18 yields http://jira.codehaus.org/browse/SUREFIRE-1121, which is fixed in 2.18.1 -->
-    <!-- surefire.plugin.version 2.19 yields https://issues.apache.org/jira/browse/SUREFIRE-1193. -->
-    <!-- all versions after 2.13 yield https://issues.apache.org/jira/browse/SUREFIRE-720 -->
-    <surefire.plugin.version>2.21.0</surefire.plugin.version>
-    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
-    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
-    <deploy.plugin.version>2.8.2</deploy.plugin.version>
-    <rat.plugin.version>0.12</rat.plugin.version>
-    <pdf.plugin.version>1.2</pdf.plugin.version>
-    <cobertura.plugin.version>2.7</cobertura.plugin.version>
-    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
-    <release.plugin.version>2.5.3</release.plugin.version>
-    <scm.plugin.version>1.9.5</scm.plugin.version>
-    <jxr.plugin.version>2.5</jxr.plugin.version>
-    <revapi.plugin.version>0.10.5</revapi.plugin.version>
-    <revapi.skip>false</revapi.skip>
-    <clirr.plugin.version>2.8</clirr.plugin.version>
-    <!-- Maven site 3.7 uses the wrong stylesheet? -->
-    <site.plugin.version>3.4</site.plugin.version>
-    <!-- Maven site depends on Velocity and the escaping rules are different in newer versions. -->
-    <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
-    <velocity.plugin.version>1.5</velocity.plugin.version>
-    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
-    <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
-    <docLabel>Site Documentation</docLabel>
-    <projectDir />
-    <commonsLoggingVersion>1.2</commonsLoggingVersion>
-    <javax.persistence>2.1.1</javax.persistence>
-    <!-- The OSGi API version MUST always be the MINIMUM version Log4j supports -->
-    <osgi.api.version>4.3.1</osgi.api.version>
-    <!-- Version 5.15.0 requires Java 8 -->
-    <activemq.version>5.14.5</activemq.version>
-    <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
-    <minSeverity>info</minSeverity>
-    <jctoolsVersion>1.2.1</jctoolsVersion>
-    <mockitoVersion>2.25.1</mockitoVersion>
-    <argLine>-Xms256m -Xmx1024m</argLine>
-    <javaTargetVersion>1.7</javaTargetVersion>
-    <module.name />
-  </properties>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>apache</id>
-      <url>https://repository.apache.org/content/repositories/releases/</url>
-    </pluginRepository>
-<!--     <pluginRepository> -->
-<!--       <id>apache.snapshots</id> -->
-<!--       <name>Apache snapshots repository</name> -->
-<!--       <url>http://repository.apache.org/content/groups/snapshots</url> -->
-<!--       <snapshots> -->
-<!--         <enabled>true</enabled> -->
-<!--       </snapshots> -->
-<!--     </pluginRepository>     -->
-  </pluginRepositories>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4jVersion}</version>
-      </dependency>
-       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-ext</artifactId>
-        <version>${slf4jVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <type>test-jar</type>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>org.eclipse.osgi</artifactId>
-        <version>3.12.1.v20170821-1548</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.framework</artifactId>
-        <version>5.6.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-core</artifactId>
-        <version>3.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>1.11</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>3.7</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logbackVersion}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-java9</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>${project.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core-java9</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>${project.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j18-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jcl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>${commonsLoggingVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-1.2-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-flume-ng</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-iostreams</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jul</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-taglib</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-web</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.sleepycat</groupId>
-        <artifactId>je</artifactId>
-        <version>5.0.73</version>
-      </dependency>
-      <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>${osgi.api.version}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.fusesource.jansi</groupId>
-        <artifactId>jansi</artifactId>
-        <version>1.17.1</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-core</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-embedded-agent</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-node</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-file-channel</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api-2.5</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-core</artifactId>
-        <version>1.2.1</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <!-- Jackson 1 start -->
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-core-asl</artifactId>
-        <version>${jackson1Version}</version>
-        <scope>runtime</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-mapper-asl</artifactId>
-        <version>${jackson1Version}</version>
-        <scope>runtime</scope>
-      </dependency>
-      <!-- Jackson 1 end -->
-      <!-- Jackson 2 start -->
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-core</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-annotations</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-yaml</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-xml</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-jaxb-annotations</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <!-- Jackson 2 end -->
-      <dependency>
-        <groupId>com.sun.mail</groupId>
-        <artifactId>javax.mail</artifactId>
-        <version>1.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.spec.javax.jms</groupId>
-        <artifactId>jboss-jms-api_1.1_spec</artifactId>
-        <version>1.0.1.Final</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-broker</artifactId>
-        <version>${activemq.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-clients</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.zeromq</groupId>
-        <artifactId>jeromq</artifactId>
-        <version>0.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>servlet-api</artifactId>
-        <version>2.5</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.lmax</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${disruptorVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.conversantmedia</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${conversantDisruptorVersion}</version>
-        <!-- TODO: this can be switched based on a profile -->
-        <classifier>jdk7</classifier>
-      </dependency>
-      <dependency>
-        <groupId>org.jctools</groupId>
-        <artifactId>jctools-core</artifactId>
-        <version>${jctoolsVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.12</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-all</artifactId>
-        <version>1.3</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-utils</artifactId>
-        <version>3.1.0</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
-        <version>${mockitoVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-aop</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-beans</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-core</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-expression</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-oxm</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-test</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-webmvc</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hsqldb</groupId>
-        <artifactId>hsqldb</artifactId>
-        <version>2.3.5</version>
-        <!-- version 2.4.0 requires Java 8 -->
-      </dependency>
-      <dependency>
-        <groupId>com.h2database</groupId>
-        <artifactId>h2</artifactId>
-        <version>1.4.199</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.jpa</artifactId>
-        <version>2.6.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>javax.persistence</artifactId>
-        <version>${javax.persistence}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongo-java-driver</artifactId>
-        <version>${mongodb2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver</artifactId>
-        <version>${mongodb3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>bson</artifactId>
-        <version>${mongodb3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.lightcouch</groupId>
-        <artifactId>lightcouch</artifactId>
-        <version>0.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.datastax.cassandra</groupId>
-        <artifactId>cassandra-driver-core</artifactId>
-        <version>3.1.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.liquibase</groupId>
-        <artifactId>liquibase-core</artifactId>
-        <version>3.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>net.javacrumbs.json-unit</groupId>
-        <artifactId>json-unit</artifactId>
-        <version>1.31.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-core</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-matchers</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>2.6</version>
-        <scope>test</scope>
-      </dependency>
-      <!-- Used for testing HttpAppender -->
-      <dependency>
-        <groupId>com.github.tomakehurst</groupId>
-        <artifactId>wiremock</artifactId>
-        <scope>test</scope>
-        <version>2.19.0</version>
-      </dependency>
-      <!-- Used for compressing to formats other than zip and gz -->
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>1.18</version>
-      </dependency>
-      <dependency>
-        <groupId>org.tukaani</groupId>
-        <artifactId>xz</artifactId>
-        <version>1.8</version>
-        <scope>test</scope>
-      </dependency>
-      <!-- Used for the CSV layout -->
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-csv</artifactId>
-        <version>1.6</version>
-      </dependency>
-      <!-- GC-free -->
-      <dependency>
-        <groupId>com.google.code.java-allocation-instrumenter</groupId>
-        <artifactId>java-allocation-instrumenter</artifactId>
-        <version>3.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hdrhistogram</groupId>
-        <artifactId>HdrHistogram</artifactId>
-        <version>2.1.9</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache-extras.beanshell</groupId>
-        <artifactId>bsh</artifactId>
-        <version>2.0b6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-jsr223</artifactId>
-        <version>${groovy.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-dateutil</artifactId>
-        <version>${groovy.version}</version>
-      </dependency>
-      <dependency>
-        <!-- Testing MongoDB -->
-        <groupId>de.flapdoodle.embed</groupId>
-        <artifactId>de.flapdoodle.embed.mongo</artifactId>
-        <version>2.2.0</version>
-        <scope>test</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.felix</groupId>
-          <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.5.0</version>
-          <inherited>true</inherited>
-          <extensions>true</extensions>
-          <executions>
-            <execution>
-              <goals>
-                <goal>manifest</goal>
-              </goals>
-              <phase>process-classes</phase>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-changes-plugin</artifactId>
-          <version>${changes.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>${release.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-scm-plugin</artifactId>
-          <version>${scm.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>${checkstyle.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${javadoc.plugin.version}</version>
-          <configuration>
-            <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
-            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
-            and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
-            <doclint>none</doclint>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-pmd-plugin</artifactId>
-          <version>${pmd.plugin.version}</version>
-        </plugin>
-        <!-- some nice default compiler options -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler.plugin.version}</version>
-          <configuration>
-            <source>${maven.compiler.source}</source>
-            <target>${maven.compiler.target}</target>
-            <showDeprecation>true</showDeprecation>
-            <showWarnings>true</showWarnings>
-            <encoding>UTF-8</encoding>
-            <fork>true</fork>
-            <meminitial>256</meminitial>
-            <maxmem>1024</maxmem>
-            <compilerArguments>
-              <Xmaxwarns>10000</Xmaxwarns>
-              <Xlint />
-            </compilerArguments>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-failsafe-plugin</artifactId>
-          <version>${failsafe.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-source-plugin</artifactId>
-          <version>3.0.1</version>
-          <executions>
-            <execution>
-              <id>attach-sources</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>jar-no-fork</goal>
-                <goal>test-jar-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>${jxr.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.eluder.coveralls</groupId>
-          <artifactId>coveralls-maven-plugin</artifactId>
-          <version>4.3.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>${jacoco.plugin.version}</version>
-          <executions>
-            <execution>
-                <id>prepare-agent</id>
-                <goals>
-                  <goal>prepare-agent</goal>
-                </goals>
-            </execution>
-            <execution>
-              <id>default-report</id>
-              <phase>prepare-package</phase>
-              <goals>
-                <goal>report</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.1.0</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-              <configuration>
-                <archive>
-                  <manifestFile>${manifestfile}</manifestFile>
-                  <manifestEntries>
-                    <Specification-Title>${project.name}</Specification-Title>
-                    <Specification-Version>${project.version}</Specification-Version>
-                    <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                    <Implementation-Title>${project.name}</Implementation-Title>
-                    <Implementation-Version>${project.version}</Implementation-Version>
-                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
-                    <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
-                    <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
-                  </manifestEntries>
-                </archive>
-              </configuration>
-            </execution>
-          </executions>
-
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <artifactId>maven-clean-plugin</artifactId>
-        <version>3.1.0</version>
-      </plugin>
-      <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>3.0.2</version>
-        <executions>
-          <execution>
-            <id>copy-sitecss</id>
-            <!-- fetch site.xml before creating site documentation -->
-            <phase>pre-site</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/site</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>${log4jParentDir}/src/site/resources</directory>
-                  <includes>
-                    <include>**/*</include>
-                  </includes>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${surefire.plugin.version}</version>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <excludes>
-            <exclude>${log4j.skip.test1}</exclude>
-            <exclude>${log4j.skip.test2}</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>${failsafe.plugin.version}</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>integration-test</goal>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <argLine>-Xms256m -Xmx1024m</argLine>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>${site.plugin.version}</version>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity</artifactId>
-            <version>${velocity.plugin.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.maven.wagon</groupId>
-            <artifactId>wagon-ssh</artifactId>
-            <version>3.1.0</version>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <!-- only build English site even on other language OS -->
-          <locales>en</locales>
-          <!-- Exclude the navigation file for Maven 1 sites
-               and the changes file used by the changes-plugin,
-               as they interfere with the site generation. -->
-          <moduleExcludes>
-            <xdoc>navigation.xml,changes.xml</xdoc>
-          </moduleExcludes>
-          <templateDirectory>${log4jParentDir}/src/site</templateDirectory>
-          <template>site.vm</template>
-        </configuration>
-      </plugin>
-      <!-- <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>cobertura-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>clean</id>
-            <goals>
-              <goal>clean</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin> -->
-      <!-- We need to disable the standard ASF configuration to be able to publish our own notice and license files -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>process</goal>
-            </goals>
-            <configuration>
-              <skip>true</skip>
-              <resourceBundles />
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pdf-plugin</artifactId>
-        <version>${pdf.plugin.version}</version>
-        <executions>
-          <execution>
-            <id>pdf</id>
-            <phase>site</phase>
-            <goals>
-              <goal>pdf</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-      </plugin>
-      <!-- RAT report -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${rat.plugin.version}</version>
-        <configuration>
-          <excludes>
-            <!-- Matches other RAT configurations in this POM -->
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <!-- IntelliJ files -->
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <!-- IDE settings imports -->
-            <exclude>src/ide/**</exclude>
-            <!-- does it even make sense to apply a license to a GPG signature? -->
-            <exclude>**/*.asc</exclude>
-            <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <!-- Generated files -->
-            <exclude>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <!-- Other -->
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.md</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <!-- DOAP (RDF) metadata generation -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-doap-plugin</artifactId>
-        <version>1.2</version>
-        <configuration>
-          <doapOptions>
-            <programmingLanguage>Java</programmingLanguage>
-            <category>library</category>
-          </doapOptions>
-          <asfExtOptions>
-            <charter>
-              The Apache Logging Services Project creates and maintains open-source software related to the logging of
-              application behavior and released at no charge to the public.
-            </charter>
-            <pmc>https://logging.apache.org</pmc>
-          </asfExtOptions>
-        </configuration>
-        <executions>
-          <execution>
-            <id>site</id>
-            <phase>site</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <reporting>
-    <plugins>
-      <!-- Changes report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>${changes.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-              <report>jira-report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <statusIds>Resolved, Closed</statusIds>
-          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-          <useJql>true</useJql>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.9</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>dependencies</report>
-              <report>dependency-info</report>
-              <report>dependency-convergence</report>
-              <report>dependency-management</report>
-              <report>project-team</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>scm</report>
-              <report>summary</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <!-- you'd think these would be the defaults, right? -->
-          <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
-          <webAccessUrl>${project.scm.url}</webAccessUrl>
-          <anonymousConnection>${project.scm.connection}</anonymousConnection>
-          <developerConnection>${project.scm.developerConnection}</developerConnection>
-          <scmTag>log4j-${Log4jReleaseVersion}</scmTag>
-        </configuration>
-      </plugin>
-      <!-- Surefire report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>${surefire.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>integration-tests</id>
-            <reports>
-              <report>failsafe-report-only</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <!-- RAT report -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${rat.plugin.version}</version>
-        <configuration>
-          <excludes>
-            <!-- Matches other RAT configurations in this POM -->
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <!-- IntelliJ files -->
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <!-- IDE settings imports -->
-            <exclude>src/ide/**</exclude>
-            <!-- does it even make sense to apply a license to a GPG signature? -->
-            <exclude>**/*.asc</exclude>
-            <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <!-- Generated files -->
-            <exclude>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <!-- Other -->
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.txt</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-  <distributionManagement>
-    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
-    <!-- site is only included to make maven-site-plugin stop complaining -->
-    <site>
-      <id>www.example.com</id>
-      <url>scp://www.example.com/www/docs/project/</url>
-    </site>
-  </distributionManagement>
-  <modules>
-    <module>log4j-api-java9</module>
-    <module>log4j-api</module>
-    <module>log4j-core-java9</module>
-    <module>log4j-core</module>
-    <module>log4j-core-its</module>
-    <module>log4j-1.2-api</module>
-    <module>log4j-slf4j-impl</module>
-    <module>log4j-slf4j18-impl</module>
-    <module>log4j-to-slf4j</module>
-    <module>log4j-jcl</module>
-    <module>log4j-flume-ng</module>
-    <module>log4j-taglib</module>
-    <module>log4j-jmx-gui</module>
-    <module>log4j-samples</module>
-    <module>log4j-bom</module>
-    <module>log4j-jdbc-dbcp2</module>
-    <module>log4j-jpa</module>
-    <module>log4j-couchdb</module>
-    <module>log4j-mongodb2</module>
-    <module>log4j-mongodb3</module>
-    <module>log4j-cassandra</module>
-    <module>log4j-web</module>
-    <module>log4j-perf</module>
-    <module>log4j-iostreams</module>
-    <module>log4j-jul</module>
-    <module>log4j-liquibase</module>
-    <module>log4j-appserver</module>
-    <module>log4j-osgi</module>
-  </modules>
-  <profiles>
-    <profile>
-      <id>pdf</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-pdf-plugin</artifactId>
-            <version>${pdf.plugin.version}</version>
-            <executions>
-              <execution>
-                <id>pdf</id>
-                <phase>generate-resources</phase>
-                <goals>
-                  <goal>pdf</goal>
-                </goals>
-                <configuration>
-                  <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>release-notes</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-changes-plugin</artifactId>
-            <version>${changes.plugin.version}</version>
-            <configuration>
-              <template>announcement.vm</template>
-              <templateDirectory>src/changes</templateDirectory>
-              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
-              <announcementDirectory>.</announcementDirectory>
-              <announcementFile>RELEASE-NOTES.md</announcementFile>
-              <issueManagementSystems>
-                <issueManagementSystem>changes.xml</issueManagementSystem>
-                <!--<issueManagementSystem>JIRA</issueManagementSystem> -->
-              </issueManagementSystems>
-              <version>${Log4jReleaseVersion}</version>
-              <announceParameters>
-                <releaseVersion>${Log4jReleaseVersion}</releaseVersion>
-                <releaseCount>${Log4jReleaseCount}</releaseCount>
-              </announceParameters>
-              <useJql>true</useJql>
-            </configuration>
-            <executions>
-              <execution>
-                <id>create-release-notes</id>
-                <phase>generate-resources</phase>
-                <goals>
-                  <goal>announcement-generate</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>apache-release</id>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>source-release-assembly</id>
-                <configuration>
-                  <skipAssembly>true</skipAssembly>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <modules>
-        <module>log4j-distribution</module>
-      </modules>
-    </profile>
-    <profile>
-      <id>rat</id>
-      <build>
-        <plugins>
-          <!-- RAT report -->
-          <plugin>
-            <groupId>org.apache.rat</groupId>
-            <artifactId>apache-rat-plugin</artifactId>
-            <version>${rat.plugin.version}</version>
-            <configuration>
-              <excludes>
-                <!-- Matches other RAT configurations in this POM -->
-                <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                <!-- IntelliJ files -->
-                <exclude>.idea/**/*</exclude>
-                <exclude>src/test/resources/**/*</exclude>
-                <!-- IDE settings imports -->
-                <exclude>src/ide/**</exclude>
-                <!-- does it even make sense to apply a license to a GPG signature? -->
-                <exclude>**/*.asc</exclude>
-                <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
-                <exclude>src/site/resources/js/jquery.js</exclude>
-                <exclude>src/site/resources/js/jquery.min.js</exclude>
-                <!-- Generated files -->
-                <exclude>log4j-distribution/target/**/*</exclude>
-                <exclude>log4j-distribution/.project</exclude>
-                <exclude>log4j-distribution/.settings/**</exclude>
-                <exclude>velocity.log</exclude>
-                <!-- Other -->
-                <exclude>felix-cache/**</exclude>
-                <exclude>RELEASE-NOTES.md</exclude>
-                <exclude>**/revapi.json</exclude>
-              </excludes>
-            </configuration>
-            <executions>
-              <execution>
-                <phase>verify</phase>
-                <goals>
-                  <goal>check</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
-      <id>yourkit-mac</id>
-      <!--
-      <activation>
-        <os>
-          <family>Mac</family>
-        </os>
-        <file>
-          <exists>${yourkit.home}/bin/mac/libyjpagent.jnilib</exists>
-        </file>
-      </activation>
-      -->
-      <properties>
-        <yourkit.home>/Applications/YJP.app</yourkit.home>
-      </properties>
-      <dependencies>
-        <dependency>
-          <groupId>com.yourkit</groupId>
-          <artifactId>yjp-controller-api-redist</artifactId>
-          <version>2013</version>
-          <scope>system</scope>
-          <systemPath>${yourkit.home}/lib/yjp-controller-api-redist.jar</systemPath>
-        </dependency>
-      </dependencies>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-failsafe-plugin</artifactId>
-            <configuration>
-              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>jdk8orGreater</id>
-      <activation>
-        <jdk>[1.8,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.revapi</groupId>
-            <artifactId>revapi-maven-plugin</artifactId>
-            <version>${revapi.plugin.version}</version>
-            <dependencies>
-              <dependency>
-                <groupId>org.revapi</groupId>
-                <artifactId>revapi-java</artifactId>
-                <version>0.18.2</version>
-              </dependency>
-            </dependencies>
-            <executions>
-              <execution>
-                <goals><goal>check</goal></goals>
-                <configuration>
-                  <checkDependencies>false</checkDependencies>
-                  <skip>${revapi.skip}</skip>
-                  <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
-                  <analysisConfigurationFiles>
-                    <path>revapi.json</path>
-                  </analysisConfigurationFiles>
-                  <analysisConfiguration><![CDATA[
-[
-  {
-     "extension": "revapi.java",
-     "configuration": {
-       "missing-classes": {
-         "behavior": "report",
-         "ignoreMissingAnnotations": false
-       },
-       "reportUsesFor": [
-          "java.missing.newClass",
-          "java.class.nonPublicPartOfAPI"
-       ],
-       "filter": {
-         "classes": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         },
-         "packages": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         }
-       }
-     }
-  }
-]
-              ]]></analysisConfiguration>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <reporting>
-        <plugins>
-          <plugin>
-            <groupId>org.revapi</groupId>
-            <artifactId>revapi-maven-plugin</artifactId>
-            <version>${revapi.plugin.version}</version>
-            <reportSets>
-              <reportSet>
-                <inherited>false</inherited>
-                <reports>
-                  <report>report-aggregate</report>
-                </reports>
-              </reportSet>
-              <reportSet>
-                <reports>
-                  <report>report</report>
-                </reports>
-              </reportSet>
-            </reportSets>
-          </plugin>
-        </plugins>
-      </reporting>
-    </profile>
-    <profile>
-      <id>jdk7</id>
-      <activation>
-        <jdk>1.7</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>clirr-maven-plugin</artifactId>
-            <version>${clirr.plugin.version}</version>
-            <dependencies>
-              <dependency>
-                <groupId>org.apache.bcel</groupId>
-                <artifactId>bcel</artifactId>
-                <version>6.2</version>
-              </dependency>
-            </dependencies>
-            <configuration>
-              <minSeverity>${minSeverity}</minSeverity>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>-XX:MaxPermSize=512m</argLine>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-failsafe-plugin</artifactId>
-            <configuration>
-              <argLine>-XX:MaxPermSize=512m</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>useJava7</id>
-      <activation>
-        <property>
-          <name>useJava7</name>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-toolchains-plugin</artifactId>
-            <version>1.1</version>
-            <executions>
-              <execution>
-                <goals>
-                  <goal>toolchain</goal>
-                </goals>
-              </execution>
-            </executions>
-            <configuration>
-              <toolchains>
-                <jdk>
-                  <version>1.7</version>
-                </jdk>
-              </toolchains>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>java8-doclint-disabled</id>
-      <activation>
-        <jdk>[1.8,)</jdk>
-      </activation>
-      <properties>
-        <javadoc.opts>-Xdoclint:none</javadoc.opts>
-      </properties>
-    </profile>
-  </profiles>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.logging.log4j</groupId>
+  <artifactId>log4j</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache Log4j 2</name>
+  <version>2.12.0-SNAPSHOT</version>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>21</version>
+  </parent>
+  <prerequisites>
+    <maven>3.0.5</maven>
+  </prerequisites>
+  <description>Apache Log4j 2</description>
+  <url>https://logging.apache.org/log4j/2.x/</url>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
+  </issueManagement>
+  <ciManagement>
+    <system>Jenkins</system>
+    <url>https://builds.apache.org/job/Log4j%202.x/</url>
+  </ciManagement>
+  <inceptionYear>1999</inceptionYear>
+  <developers>
+    <developer>
+      <id>rgoers</id>
+      <name>Ralph Goers</name>
+      <email>rgoers@apache.org</email>
+      <organization>Nextiva</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Phoenix</timezone>
+    </developer>
+    <developer>
+      <id>ggregory</id>
+      <name>Gary Gregory</name>
+      <email>ggregory@apache.org</email>
+      <organization>Rocket Software</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Denver</timezone>
+    </developer>
+    <developer>
+      <id>sdeboy</id>
+      <name>Scott Deboy</name>
+      <email>sdeboy@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Los_Angeles</timezone>
+    </developer>
+    <developer>
+      <id>rpopma</id>
+      <name>Remko Popma</name>
+      <email>rpopma@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>Asia/Tokyo</timezone>
+      <properties>
+        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
+      </properties>
+    </developer>
+    <developer>
+      <id>nickwilliams</id>
+      <name>Nick Williams</name>
+      <email>nickwilliams@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Chicago</timezone>
+    </developer>
+    <developer>
+      <id>mattsicker</id>
+      <name>Matt Sicker</name>
+      <email>mattsicker@apache.org</email>
+      <organization>CloudBees</organization>
+      <roles>
+        <role>PMC Chair</role>
+      </roles>
+      <timezone>America/Chicago</timezone>
+    </developer>
+    <developer>
+      <id>bbrouwer</id>
+      <name>Bruce Brouwer</name>
+      <email>bruce.brouwer@gmail.com</email>
+      <roles>
+        <role>Committer</role>
+      </roles>
+      <timezone>America/Detroit</timezone>
+    </developer>
+    <developer>
+      <id>mikes</id>
+      <name>Mikael Ståldal</name>
+      <email>mikes@apache.org</email>
+      <organization>Spotify</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>Europe/Stockholm</timezone>
+    </developer>
+    <developer>
+      <id>ckozak</id>
+      <name>Carter Kozak</name>
+      <email>ckozak@apache.org</email>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/New York</timezone>
+    </developer>
+  </developers>
+  <!-- Contributors -->
+  <contributors>
+      <contributor>
+        <name>Murad Ersoy</name>
+        <email>muradersoy@gmail.com</email>
+        <url>https://www.behance.net/muradersoy</url>
+        <roles>
+          <role>Illustrator and Designer</role>
+          <role>created the new Log4j 2 logo.</role>
+        </roles>
+        <timezone>Europe/Istanbul</timezone>
+        <properties>
+          <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
+        </properties>
+      </contributor>
+   </contributors>
+  <mailingLists>
+    <mailingList>
+      <name>log4j-user</name>
+      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
+      <post>log4j-user@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
+        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
+      </otherArchives>
+    </mailingList>
+    <mailingList>
+      <name>dev</name>
+      <subscribe>dev-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
+      <post>dev@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
+        <otherArchive>http://marc.info/?l=dev</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
+      </otherArchives>
+    </mailingList>
+  </mailingLists>
+  <scm>
+    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</connection>
+    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</developerConnection>
+    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary</url>
+    <tag>log4j-${Log4jReleaseVersion}</tag>
+  </scm>
+  <properties>
+    <!-- make sure to update these for each release! -->
+    <log4jParentDir>${basedir}</log4jParentDir>
+    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
+    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
+    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
+    <!--<Log4jReleaseManager>Matt Sicker</Log4jReleaseManager> -->
+    <!--<Log4jReleaseKey>748F15B2CF9BA8F024155E6ED7C92B70FA1C814D</Log4jReleaseKey> -->
+    <!-- note that any properties you want available in velocity templates must not use periods! -->
+    <slf4jVersion>1.7.25</slf4jVersion>
+    <logbackVersion>1.2.3</logbackVersion>
+    <jackson1Version>1.9.13</jackson1Version>
+    <jackson2Version>2.9.8</jackson2Version>
+    <springVersion>3.2.18.RELEASE</springVersion>
+    <flumeVersion>1.7.0</flumeVersion> <!-- Version 1.8.0 requires Java 8 -->
+    <disruptorVersion>3.4.2</disruptorVersion>
+    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion> <!-- Version 1.2.11 requires Java 8 -->
+    <mongodb2.version>2.14.3</mongodb2.version>
+    <mongodb3.version>3.10.1</mongodb3.version>
+    <groovy.version>2.5.6</groovy.version>
+    <compiler.plugin.version>3.8.0</compiler.plugin.version>
+    <pmd.plugin.version>3.10.0</pmd.plugin.version>
+    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
+    <changes.plugin.version>2.12.1</changes.plugin.version>
+    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
+    <!-- surefire.plugin.version 2.18 yields http://jira.codehaus.org/browse/SUREFIRE-1121, which is fixed in 2.18.1 -->
+    <!-- surefire.plugin.version 2.19 yields https://issues.apache.org/jira/browse/SUREFIRE-1193. -->
+    <!-- all versions after 2.13 yield https://issues.apache.org/jira/browse/SUREFIRE-720 -->
+    <surefire.plugin.version>2.21.0</surefire.plugin.version>
+    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
+    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
+    <deploy.plugin.version>2.8.2</deploy.plugin.version>
+    <rat.plugin.version>0.12</rat.plugin.version>
+    <pdf.plugin.version>1.2</pdf.plugin.version>
+    <cobertura.plugin.version>2.7</cobertura.plugin.version>
+    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
+    <release.plugin.version>2.5.3</release.plugin.version>
+    <scm.plugin.version>1.9.5</scm.plugin.version>
+    <jxr.plugin.version>2.5</jxr.plugin.version>
+    <revapi.plugin.version>0.10.5</revapi.plugin.version>
+    <revapi.skip>false</revapi.skip>
+    <clirr.plugin.version>2.8</clirr.plugin.version>
+    <!-- Maven site 3.7 uses the wrong stylesheet? -->
+    <site.plugin.version>3.4</site.plugin.version>
+    <!-- Maven site depends on Velocity and the escaping rules are different in newer versions. -->
+    <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
+    <velocity.plugin.version>1.5</velocity.plugin.version>
+    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
+    <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+    <docLabel>Site Documentation</docLabel>
+    <projectDir />
+    <commonsLoggingVersion>1.2</commonsLoggingVersion>
+    <javax.persistence>2.1.1</javax.persistence>
+    <!-- The OSGi API version MUST always be the MINIMUM version Log4j supports -->
+    <osgi.api.version>4.3.1</osgi.api.version>
+    <!-- Version 5.15.0 requires Java 8 -->
+    <activemq.version>5.14.5</activemq.version>
+    <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
+    <minSeverity>info</minSeverity>
+    <jctoolsVersion>1.2.1</jctoolsVersion>
+    <mockitoVersion>2.25.1</mockitoVersion>
+    <argLine>-Xms256m -Xmx1024m</argLine>
+    <javaTargetVersion>1.7</javaTargetVersion>
+    <module.name />
+  </properties>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache</id>
+      <url>https://repository.apache.org/content/repositories/releases/</url>
+    </pluginRepository>
+<!--     <pluginRepository> -->
+<!--       <id>apache.snapshots</id> -->
+<!--       <name>Apache snapshots repository</name> -->
+<!--       <url>http://repository.apache.org/content/groups/snapshots</url> -->
+<!--       <snapshots> -->
+<!--         <enabled>true</enabled> -->
+<!--       </snapshots> -->
+<!--     </pluginRepository>     -->
+  </pluginRepositories>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4jVersion}</version>
+      </dependency>
+       <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-ext</artifactId>
+        <version>${slf4jVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <type>test-jar</type>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>org.eclipse.osgi</artifactId>
+        <version>3.12.1.v20170821-1548</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.framework</artifactId>
+        <version>5.6.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-core</artifactId>
+        <version>3.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-codec</groupId>
+        <artifactId>commons-codec</artifactId>
+        <version>1.11</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>3.7</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>${logbackVersion}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-java9</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core-java9</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j18-impl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jcl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>${commonsLoggingVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-1.2-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-flume-ng</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-iostreams</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jul</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-taglib</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-web</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sleepycat</groupId>
+        <artifactId>je</artifactId>
+        <version>5.0.73</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>${osgi.api.version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.fusesource.jansi</groupId>
+        <artifactId>jansi</artifactId>
+        <version>1.17.1</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-core-asl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-core</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-embedded-agent</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-core-asl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-node</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-core-asl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-file-channel</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api-2.5</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-core</artifactId>
+        <version>1.2.1</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-core-asl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <!-- Jackson 1 start -->
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-core-asl</artifactId>
+        <version>${jackson1Version}</version>
+        <scope>runtime</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-mapper-asl</artifactId>
+        <version>${jackson1Version}</version>
+        <scope>runtime</scope>
+      </dependency>
+      <!-- Jackson 1 end -->
+      <!-- Jackson 2 start -->
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-core</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-databind</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-annotations</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-yaml</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-xml</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-jaxb-annotations</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <!-- Jackson 2 end -->
+      <dependency>
+        <groupId>com.sun.mail</groupId>
+        <artifactId>javax.mail</artifactId>
+        <version>1.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.spec.javax.jms</groupId>
+        <artifactId>jboss-jms-api_1.1_spec</artifactId>
+        <version>1.0.1.Final</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-broker</artifactId>
+        <version>${activemq.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-clients</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.zeromq</groupId>
+        <artifactId>jeromq</artifactId>
+        <version>0.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>2.5</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.lmax</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${disruptorVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.conversantmedia</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${conversantDisruptorVersion}</version>
+        <!-- TODO: this can be switched based on a profile -->
+        <classifier>jdk7</classifier>
+      </dependency>
+      <dependency>
+        <groupId>org.jctools</groupId>
+        <artifactId>jctools-core</artifactId>
+        <version>${jctoolsVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-all</artifactId>
+        <version>1.3</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>3.1.0</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockitoVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-aop</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-beans</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-core</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-expression</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-oxm</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-test</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-web</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webmvc</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hsqldb</groupId>
+        <artifactId>hsqldb</artifactId>
+        <version>2.3.5</version>
+        <!-- version 2.4.0 requires Java 8 -->
+      </dependency>
+      <dependency>
+        <groupId>com.h2database</groupId>
+        <artifactId>h2</artifactId>
+        <version>1.4.199</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.jpa</artifactId>
+        <version>2.6.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>javax.persistence</artifactId>
+        <version>${javax.persistence}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongo-java-driver</artifactId>
+        <version>${mongodb2.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver</artifactId>
+        <version>${mongodb3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>bson</artifactId>
+        <version>${mongodb3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.lightcouch</groupId>
+        <artifactId>lightcouch</artifactId>
+        <version>0.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.datastax.cassandra</groupId>
+        <artifactId>cassandra-driver-core</artifactId>
+        <version>3.1.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.liquibase</groupId>
+        <artifactId>liquibase-core</artifactId>
+        <version>3.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>net.javacrumbs.json-unit</groupId>
+        <artifactId>json-unit</artifactId>
+        <version>1.31.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-core</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-matchers</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.6</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Used for testing HttpAppender -->
+      <dependency>
+        <groupId>com.github.tomakehurst</groupId>
+        <artifactId>wiremock</artifactId>
+        <scope>test</scope>
+        <version>2.19.0</version>
+      </dependency>
+      <!-- Used for compressing to formats other than zip and gz -->
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-compress</artifactId>
+        <version>1.18</version>
+      </dependency>
+      <dependency>
+        <groupId>org.tukaani</groupId>
+        <artifactId>xz</artifactId>
+        <version>1.8</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Used for the CSV layout -->
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-csv</artifactId>
+        <version>1.6</version>
+      </dependency>
+      <!-- GC-free -->
+      <dependency>
+        <groupId>com.google.code.java-allocation-instrumenter</groupId>
+        <artifactId>java-allocation-instrumenter</artifactId>
+        <version>3.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hdrhistogram</groupId>
+        <artifactId>HdrHistogram</artifactId>
+        <version>2.1.9</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache-extras.beanshell</groupId>
+        <artifactId>bsh</artifactId>
+        <version>2.0b6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-jsr223</artifactId>
+        <version>${groovy.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-dateutil</artifactId>
+        <version>${groovy.version}</version>
+      </dependency>
+      <dependency>
+        <!-- Testing MongoDB -->
+        <groupId>de.flapdoodle.embed</groupId>
+        <artifactId>de.flapdoodle.embed.mongo</artifactId>
+        <version>2.2.0</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>3.5.0</version>
+          <inherited>true</inherited>
+          <extensions>true</extensions>
+          <executions>
+            <execution>
+              <goals>
+                <goal>manifest</goal>
+              </goals>
+              <phase>process-classes</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-changes-plugin</artifactId>
+          <version>${changes.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>${release.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-scm-plugin</artifactId>
+          <version>${scm.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-checkstyle-plugin</artifactId>
+          <version>${checkstyle.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>${javadoc.plugin.version}</version>
+          <configuration>
+            <bottom><![CDATA[<p align="center">Copyright &#169; {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br />
+            Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo,
+            and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom>
+            <doclint>none</doclint>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-pmd-plugin</artifactId>
+          <version>${pmd.plugin.version}</version>
+        </plugin>
+        <!-- some nice default compiler options -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${compiler.plugin.version}</version>
+          <configuration>
+            <source>${maven.compiler.source}</source>
+            <target>${maven.compiler.target}</target>
+            <showDeprecation>true</showDeprecation>
+            <showWarnings>true</showWarnings>
+            <encoding>UTF-8</encoding>
+            <fork>true</fork>
+            <meminitial>256</meminitial>
+            <maxmem>1024</maxmem>
+            <compilerArguments>
+              <Xmaxwarns>10000</Xmaxwarns>
+              <Xlint />
+            </compilerArguments>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-failsafe-plugin</artifactId>
+          <version>${failsafe.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-source-plugin</artifactId>
+          <version>3.0.1</version>
+          <executions>
+            <execution>
+              <id>attach-sources</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>jar-no-fork</goal>
+                <goal>test-jar-no-fork</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jxr-plugin</artifactId>
+          <version>${jxr.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.eluder.coveralls</groupId>
+          <artifactId>coveralls-maven-plugin</artifactId>
+          <version>4.3.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.plugin.version}</version>
+          <executions>
+            <execution>
+                <id>prepare-agent</id>
+                <goals>
+                  <goal>prepare-agent</goal>
+                </goals>
+            </execution>
+            <execution>
+              <id>default-report</id>
+              <phase>prepare-package</phase>
+              <goals>
+                <goal>report</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.1.0</version>
+          <executions>
+            <execution>
+              <id>default-jar</id>
+              <goals>
+                <goal>jar</goal>
+              </goals>
+              <configuration>
+                <archive>
+                  <manifestFile>${manifestfile}</manifestFile>
+                  <manifestEntries>
+                    <Specification-Title>${project.name}</Specification-Title>
+                    <Specification-Version>${project.version}</Specification-Version>
+                    <Specification-Vendor>${project.organization.name}</Specification-Vendor>
+                    <Implementation-Title>${project.name}</Implementation-Title>
+                    <Implementation-Version>${project.version}</Implementation-Version>
+                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
+                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                    <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
+                    <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
+                    <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
+                  </manifestEntries>
+                </archive>
+              </configuration>
+            </execution>
+          </executions>
+
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>3.1.0</version>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.0.2</version>
+        <executions>
+          <execution>
+            <id>copy-sitecss</id>
+            <!-- fetch site.xml before creating site documentation -->
+            <phase>pre-site</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/site</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>${log4jParentDir}/src/site/resources</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.plugin.version}</version>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <excludes>
+            <exclude>${log4j.skip.test1}</exclude>
+            <exclude>${log4j.skip.test2}</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>${failsafe.plugin.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>integration-test</goal>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <argLine>-Xms256m -Xmx1024m</argLine>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${site.plugin.version}</version>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity</artifactId>
+            <version>${velocity.plugin.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.apache.maven.wagon</groupId>
+            <artifactId>wagon-ssh</artifactId>
+            <version>3.1.0</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <!-- only build English site even on other language OS -->
+          <locales>en</locales>
+          <!-- Exclude the navigation file for Maven 1 sites
+               and the changes file used by the changes-plugin,
+               as they interfere with the site generation. -->
+          <moduleExcludes>
+            <xdoc>navigation.xml,changes.xml</xdoc>
+          </moduleExcludes>
+          <templateDirectory>${log4jParentDir}/src/site</templateDirectory>
+          <template>site.vm</template>
+        </configuration>
+      </plugin>
+      <!-- <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>cobertura-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>clean</id>
+            <goals>
+              <goal>clean</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin> -->
+      <!-- We need to disable the standard ASF configuration to be able to publish our own notice and license files -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>true</skip>
+              <resourceBundles />
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pdf-plugin</artifactId>
+        <version>${pdf.plugin.version}</version>
+        <executions>
+          <execution>
+            <id>pdf</id>
+            <phase>site</phase>
+            <goals>
+              <goal>pdf</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+      </plugin>
+      <!-- RAT report -->
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${rat.plugin.version}</version>
+        <configuration>
+          <excludes>
+            <!-- Matches other RAT configurations in this POM -->
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <!-- IntelliJ files -->
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <!-- IDE settings imports -->
+            <exclude>src/ide/**</exclude>
+            <!-- does it even make sense to apply a license to a GPG signature? -->
+            <exclude>**/*.asc</exclude>
+            <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
+            <exclude>src/site/resources/js/jquery.js</exclude>
+            <exclude>src/site/resources/js/jquery.min.js</exclude>
+            <!-- Generated files -->
+            <exclude>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <!-- Other -->
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.md</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <!-- DOAP (RDF) metadata generation -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-doap-plugin</artifactId>
+        <version>1.2</version>
+        <configuration>
+          <doapOptions>
+            <programmingLanguage>Java</programmingLanguage>
+            <category>library</category>
+          </doapOptions>
+          <asfExtOptions>
+            <charter>
+              The Apache Logging Services Project creates and maintains open-source software related to the logging of
+              application behavior and released at no charge to the public.
+            </charter>
+            <pmc>https://logging.apache.org</pmc>
+          </asfExtOptions>
+        </configuration>
+        <executions>
+          <execution>
+            <id>site</id>
+            <phase>site</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <plugins>
+      <!-- Changes report -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>${changes.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+              <report>jira-report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <statusIds>Resolved, Closed</statusIds>
+          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+          <useJql>true</useJql>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.9</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>index</report>
+              <report>dependencies</report>
+              <report>dependency-info</report>
+              <report>dependency-convergence</report>
+              <report>dependency-management</report>
+              <report>project-team</report>
+              <report>mailing-list</report>
+              <report>issue-tracking</report>
+              <report>license</report>
+              <report>scm</report>
+              <report>summary</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <!-- you'd think these would be the defaults, right? -->
+          <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
+          <webAccessUrl>${project.scm.url}</webAccessUrl>
+          <anonymousConnection>${project.scm.connection}</anonymousConnection>
+          <developerConnection>${project.scm.developerConnection}</developerConnection>
+          <scmTag>log4j-${Log4jReleaseVersion}</scmTag>
+        </configuration>
+      </plugin>
+      <!-- Surefire report -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+        <version>${surefire.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <id>integration-tests</id>
+            <reports>
+              <report>failsafe-report-only</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <!-- RAT report -->
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${rat.plugin.version}</version>
+        <configuration>
+          <excludes>
+            <!-- Matches other RAT configurations in this POM -->
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <!-- IntelliJ files -->
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <!-- IDE settings imports -->
+            <exclude>src/ide/**</exclude>
+            <!-- does it even make sense to apply a license to a GPG signature? -->
+            <exclude>**/*.asc</exclude>
+            <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
+            <exclude>src/site/resources/js/jquery.js</exclude>
+            <exclude>src/site/resources/js/jquery.min.js</exclude>
+            <!-- Generated files -->
+            <exclude>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <!-- Other -->
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.txt</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+  <distributionManagement>
+    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
+    <!-- site is only included to make maven-site-plugin stop complaining -->
+    <site>
+      <id>www.example.com</id>
+      <url>scp://www.example.com/www/docs/project/</url>
+    </site>
+  </distributionManagement>
+  <modules>
+    <module>log4j-api-java9</module>
+    <module>log4j-api</module>
+    <module>log4j-core-java9</module>
+    <module>log4j-core</module>
+    <module>log4j-core-its</module>
+    <module>log4j-1.2-api</module>
+    <module>log4j-slf4j-impl</module>
+    <module>log4j-slf4j18-impl</module>
+    <module>log4j-to-slf4j</module>
+    <module>log4j-jcl</module>
+    <module>log4j-flume-ng</module>
+    <module>log4j-taglib</module>
+    <module>log4j-jmx-gui</module>
+    <module>log4j-samples</module>
+    <module>log4j-bom</module>
+    <module>log4j-jdbc-dbcp2</module>
+    <module>log4j-jpa</module>
+    <module>log4j-couchdb</module>
+    <module>log4j-mongodb2</module>
+    <module>log4j-mongodb3</module>
+    <module>log4j-cassandra</module>
+    <module>log4j-web</module>
+    <module>log4j-perf</module>
+    <module>log4j-iostreams</module>
+    <module>log4j-jul</module>
+    <module>log4j-liquibase</module>
+    <module>log4j-appserver</module>
+    <module>log4j-osgi</module>
+    <module>log4j-spring-cloud-config</module>
+  </modules>
+  <profiles>
+    <profile>
+      <id>pdf</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-pdf-plugin</artifactId>
+            <version>${pdf.plugin.version}</version>
+            <executions>
+              <execution>
+                <id>pdf</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>pdf</goal>
+                </goals>
+                <configuration>
+                  <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>release-notes</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-changes-plugin</artifactId>
+            <version>${changes.plugin.version}</version>
+            <configuration>
+              <template>announcement.vm</template>
+              <templateDirectory>src/changes</templateDirectory>
+              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+              <announcementDirectory>.</announcementDirectory>
+              <announcementFile>RELEASE-NOTES.md</announcementFile>
+              <issueManagementSystems>
+                <issueManagementSystem>changes.xml</issueManagementSystem>
+                <!--<issueManagementSystem>JIRA</issueManagementSystem> -->
+              </issueManagementSystems>
+              <version>${Log4jReleaseVersion}</version>
+              <announceParameters>
+                <releaseVersion>${Log4jReleaseVersion}</releaseVersion>
+                <releaseCount>${Log4jReleaseCount}</releaseCount>
+              </announceParameters>
+              <useJql>true</useJql>
+            </configuration>
+            <executions>
+              <execution>
+                <id>create-release-notes</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>announcement-generate</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>source-release-assembly</id>
+                <configuration>
+                  <skipAssembly>true</skipAssembly>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+      <modules>
+        <module>log4j-distribution</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>rat</id>
+      <build>
+        <plugins>
+          <!-- RAT report -->
+          <plugin>
+            <groupId>org.apache.rat</groupId>
+            <artifactId>apache-rat-plugin</artifactId>
+            <version>${rat.plugin.version}</version>
+            <configuration>
+              <excludes>
+                <!-- Matches other RAT configurations in this POM -->
+                <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                <!-- IntelliJ files -->
+                <exclude>.idea/**/*</exclude>
+                <exclude>src/test/resources/**/*</exclude>
+                <!-- IDE settings imports -->
+                <exclude>src/ide/**</exclude>
+                <!-- does it even make sense to apply a license to a GPG signature? -->
+                <exclude>**/*.asc</exclude>
+                <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
+                <exclude>src/site/resources/js/jquery.js</exclude>
+                <exclude>src/site/resources/js/jquery.min.js</exclude>
+                <!-- Generated files -->
+                <exclude>log4j-distribution/target/**/*</exclude>
+                <exclude>log4j-distribution/.project</exclude>
+                <exclude>log4j-distribution/.settings/**</exclude>
+                <exclude>velocity.log</exclude>
+                <!-- Other -->
+                <exclude>felix-cache/**</exclude>
+                <exclude>RELEASE-NOTES.md</exclude>
+                <exclude>**/revapi.json</exclude>
+              </excludes>
+            </configuration>
+            <executions>
+              <execution>
+                <phase>verify</phase>
+                <goals>
+                  <goal>check</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
+      <id>yourkit-mac</id>
+      <!--
+      <activation>
+        <os>
+          <family>Mac</family>
+        </os>
+        <file>
+          <exists>${yourkit.home}/bin/mac/libyjpagent.jnilib</exists>
+        </file>
+      </activation>
+      -->
+      <properties>
+        <yourkit.home>/Applications/YJP.app</yourkit.home>
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>com.yourkit</groupId>
+          <artifactId>yjp-controller-api-redist</artifactId>
+          <version>2013</version>
+          <scope>system</scope>
+          <systemPath>${yourkit.home}/lib/yjp-controller-api-redist.jar</systemPath>
+        </dependency>
+      </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <configuration>
+              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>jdk8orGreater</id>
+      <activation>
+        <jdk>[1.8,)</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-maven-plugin</artifactId>
+            <version>${revapi.plugin.version}</version>
+            <dependencies>
+              <dependency>
+                <groupId>org.revapi</groupId>
+                <artifactId>revapi-java</artifactId>
+                <version>0.18.2</version>
+              </dependency>
+            </dependencies>
+            <executions>
+              <execution>
+                <goals><goal>check</goal></goals>
+                <configuration>
+                  <checkDependencies>false</checkDependencies>
+                  <skip>${revapi.skip}</skip>
+                  <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
+                  <analysisConfigurationFiles>
+                    <path>revapi.json</path>
+                  </analysisConfigurationFiles>
+                  <analysisConfiguration><![CDATA[
+[
+  {
+     "extension": "revapi.java",
+     "configuration": {
+       "missing-classes": {
+         "behavior": "report",
+         "ignoreMissingAnnotations": false
+       },
+       "reportUsesFor": [
+          "java.missing.newClass",
+          "java.class.nonPublicPartOfAPI"
+       ],
+       "filter": {
+         "classes": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         },
+         "packages": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         }
+       }
+     }
+  }
+]
+              ]]></analysisConfiguration>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+      <reporting>
+        <plugins>
+          <plugin>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-maven-plugin</artifactId>
+            <version>${revapi.plugin.version}</version>
+            <reportSets>
+              <reportSet>
+                <inherited>false</inherited>
+                <reports>
+                  <report>report-aggregate</report>
+                </reports>
+              </reportSet>
+              <reportSet>
+                <reports>
+                  <report>report</report>
+                </reports>
+              </reportSet>
+            </reportSets>
+          </plugin>
+        </plugins>
+      </reporting>
+    </profile>
+    <profile>
+      <id>jdk7</id>
+      <activation>
+        <jdk>1.7</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>clirr-maven-plugin</artifactId>
+            <version>${clirr.plugin.version}</version>
+            <dependencies>
+              <dependency>
+                <groupId>org.apache.bcel</groupId>
+                <artifactId>bcel</artifactId>
+                <version>6.2</version>
+              </dependency>
+            </dependencies>
+            <configuration>
+              <minSeverity>${minSeverity}</minSeverity>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <argLine>-XX:MaxPermSize=512m</argLine>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <configuration>
+              <argLine>-XX:MaxPermSize=512m</argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>useJava7</id>
+      <activation>
+        <property>
+          <name>useJava7</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-toolchains-plugin</artifactId>
+            <version>1.1</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>toolchain</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <toolchains>
+                <jdk>
+                  <version>1.7</version>
+                </jdk>
+              </toolchains>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>java8-doclint-disabled</id>
+      <activation>
+        <jdk>[1.8,)</jdk>
+      </activation>
+      <properties>
+        <javadoc.opts>-Xdoclint:none</javadoc.opts>
+      </properties>
+    </profile>
+  </profiles>
+</project>