| <?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> |
| <parent> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <version>2.19.0</version> |
| </parent> |
| <artifactId>log4j-core</artifactId> |
| <packaging>jar</packaging> |
| <name>Apache Log4j Core</name> |
| <description>The Apache Log4j Implementation</description> |
| <properties> |
| <log4jParentDir>${basedir}/..</log4jParentDir> |
| <docLabel>Core Documentation</docLabel> |
| <projectDir>/core</projectDir> |
| <maven.doap.skip>true</maven.doap.skip> |
| <!--<revapi.skip>true</revapi.skip>--> |
| </properties> |
| <dependencies> |
| <!-- Naturally, all implementations require the log4j-api JAR --> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| </dependency> |
| <!-- Used for OSGi bundle support --> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.core</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <!-- Required for AsyncLoggers --> |
| <dependency> |
| <groupId>com.lmax</groupId> |
| <artifactId>disruptor</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Alternative implementation of BlockingQueue using Conversant Disruptor for AsyncAppender --> |
| <dependency> |
| <groupId>com.conversantmedia</groupId> |
| <artifactId>disruptor</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Alternative implementation of BlockingQueue using JCTools for AsyncAppender --> |
| <dependency> |
| <groupId>org.jctools</groupId> |
| <artifactId>jctools-core</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for JSON support --> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-core</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for JSON support --> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for YAML support (including JSON requirements) --> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-yaml</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for XML layout and receiver support --> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-xml</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- POM for jackson-dataformat-xml depends on woodstox-core --> |
| <dependency> |
| <groupId>com.fasterxml.woodstox</groupId> |
| <artifactId>woodstox-core</artifactId> |
| <version>${woodstox.version}</version> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for console color support in Windows --> |
| <dependency> |
| <groupId>org.fusesource.jansi</groupId> |
| <artifactId>jansi</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Required for SMTPAppender --> |
| <dependency> |
| <groupId>javax.mail</groupId> |
| <artifactId>javax.mail-api</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <dependency> |
| <groupId>javax.activation</groupId> |
| <artifactId>javax.activation-api</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <dependency> |
| <groupId>com.sun.mail</groupId> |
| <artifactId>javax.mail</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Used for JMS appenders (needs an implementation of course) --> |
| <dependency> |
| <groupId>javax.jms</groupId> |
| <artifactId>javax.jms-api</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Used for Kafka appender --> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka-clients</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Used for ZeroMQ JeroMQ appender --> |
| <dependency> |
| <groupId>org.zeromq</groupId> |
| <artifactId>jeromq</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Used for compressing to formats other than zip and gz --> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Used for the CSV layout --> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-csv</artifactId> |
| <optional>true</optional> |
| </dependency> |
| <!-- Kafka needs slf4j --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <optional>true</optional> |
| </dependency> |
| |
| <!-- TEST DEPENDENCIES --> |
| |
| <!-- Pull in useful test classes from API --> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <!-- Apache Commons Compress --> |
| <dependency> |
| <groupId>org.tukaani</groupId> |
| <artifactId>xz</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Zeroconf advertiser tests --> |
| <dependency> |
| <groupId>org.jmdns</groupId> |
| <artifactId>jmdns</artifactId> |
| <version>3.5.8</version> |
| <scope>test</scope> |
| </dependency> |
| <!-- SLF4J tests --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-ext</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- JUnit, naturally --> |
| <dependency> |
| <groupId>org.junit.vintage</groupId> |
| <artifactId>junit-vintage-engine</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-params</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.platform</groupId> |
| <artifactId>junit-platform-commons</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit-pioneer</groupId> |
| <artifactId>junit-pioneer</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Mocking framework for use with JUnit --> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Embedded JDBC drivers for database appender tests --> |
| <dependency> |
| <groupId>org.hsqldb</groupId> |
| <artifactId>hsqldb</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.h2database</groupId> |
| <artifactId>h2</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Useful mock classes and utilities --> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- JNDI and JMS tests --> |
| <dependency> |
| <groupId>org.apache.activemq</groupId> |
| <artifactId>activemq-broker</artifactId> |
| <scope>test</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.geronimo.specs</groupId> |
| <artifactId>geronimo-jms_1.1_spec</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Logback performance tests --> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- OSGi tests --> |
| <dependency> |
| <groupId>org.eclipse.tycho</groupId> |
| <artifactId>org.eclipse.osgi</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>org.apache.felix.framework</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-utils</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- GELF --> |
| <dependency> |
| <groupId>net.javacrumbs.json-unit</groupId> |
| <artifactId>json-unit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.xmlunit</groupId> |
| <artifactId>xmlunit-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.xmlunit</groupId> |
| <artifactId>xmlunit-matchers</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Other --> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache-extras.beanshell</groupId> |
| <artifactId>bsh</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-jsr223</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-dateutil</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- Used for testing HttpAppender --> |
| <dependency> |
| <groupId>com.github.tomakehurst</groupId> |
| <artifactId>wiremock</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <!-- GC-free --> |
| <dependency> |
| <groupId>com.google.code.java-allocation-instrumenter</groupId> |
| <artifactId>java-allocation-instrumenter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.awaitility</groupId> |
| <artifactId>awaitility</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.zapodot</groupId> |
| <artifactId>embedded-ldap-junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>3.3.0</version> |
| <executions> |
| <execution> |
| <id>unpack-classes</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-core-java9</artifactId> |
| <version>${project.version}</version> |
| <type>zip</type> |
| <overWrite>false</overWrite> |
| </artifactItem> |
| </artifactItems> |
| <includes>**/*.class</includes> |
| <excludes>**/*.java</excludes> |
| <outputDirectory>${project.build.directory}</outputDirectory> |
| <overWriteReleases>false</overWriteReleases> |
| <overWriteSnapshots>true</overWriteSnapshots> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.3.0</version> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>${project.build.directory}/log4j-core-java9</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <executions> |
| <execution> |
| <!-- disable annotation processing for first pass --> |
| <id>default-compile</id> |
| <configuration> |
| <excludes> |
| <exclude>module-info.java</exclude> |
| </excludes> |
| <proc>none</proc> |
| </configuration> |
| </execution> |
| <execution> |
| <!-- then do a processing-only pass to generate plugins .dat file --> |
| <id>process-plugins</id> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| <phase>process-classes</phase> |
| <configuration> |
| <excludes> |
| <exclude>module-info.java</exclude> |
| </excludes> |
| <proc>only</proc> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <excludedGroups> |
| org.apache.logging.log4j.categories.PerformanceTests |
| </excludedGroups> |
| <systemPropertyVariables> |
| <org.apache.activemq.SERIALIZABLE_PACKAGES>*</org.apache.activemq.SERIALIZABLE_PACKAGES> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <configuration> |
| <skipTests>true</skipTests> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>default-jar</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| <configuration combine.self="override"> |
| <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>org.apache.logging.log4j.core</Automatic-Module-Name> |
| <Multi-Release>true</Multi-Release> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| </execution> |
| <execution> |
| <id>default</id> |
| <goals> |
| <goal>test-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> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <configuration> |
| <instructions> |
| <Bundle-SymbolicName>org.apache.logging.log4j.core</Bundle-SymbolicName> |
| <!-- TODO: exclude internal classes from export --> |
| <Export-Package>org.apache.logging.log4j.core.*</Export-Package> |
| <Import-Package> |
| javax.jms;version="[1.1,3)";resolution:=optional, |
| sun.reflect;resolution:=optional, |
| * |
| </Import-Package> |
| <Bundle-Activator>org.apache.logging.log4j.core.osgi.Activator</Bundle-Activator> |
| </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> |
| <failOnError>false</failOnError> |
| <bottom><![CDATA[<p align="center">Copyright © {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> |
| <links> |
| <link>http://docs.oracle.com/javaee/6/api/</link> |
| <link>http://www.osgi.org/javadoc/r4v43/core/</link> |
| <link>https://commons.apache.org/proper/commons-lang/javadocs/api-release/</link> |
| </links> |
| <groups> |
| <group> |
| <title>Core API</title> |
| <packages>org.apache.logging.log4j.core</packages> |
| </group> |
| <group> |
| <title>Configuration</title> |
| <packages>org.apache.logging.log4j.core.config*:org.apache.logging.log4j.core.selector</packages> |
| </group> |
| <group> |
| <title>Core Plugins</title> |
| <packages>org.apache.logging.log4j.core.appender*:org.apache.logging.log4j.core.filter:org.apache.logging.log4j.core.layout:org.apache.logging.log4j.core.lookup:org.apache.logging.log4j.core.pattern:org.apache.logging.log4j.core.script</packages> |
| </group> |
| <group> |
| <title>Tools</title> |
| <packages>org.apache.logging.log4j.core.net*:org.apache.logging.log4j.core.tools</packages> |
| </group> |
| <group> |
| <title>Internals</title> |
| <packages>org.apache.logging.log4j.core.async:org.apache.logging.log4j.core.impl:org.apache.logging.log4j.core.util*:org.apache.logging.log4j.core.osgi:org.apache.logging.log4j.core.jackson:org.apache.logging.log4j.core.jmx</packages> |
| </group> |
| </groups> |
| </configuration> |
| <reportSets> |
| <reportSet> |
| <id>non-aggregate</id> |
| <reports> |
| <report>javadoc</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| <plugin> |
| <groupId>com.github.spotbugs</groupId> |
| <artifactId>spotbugs-maven-plugin</artifactId> |
| </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> |
| |