| <?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" child.project.url.inherit.append.path="false" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> |
| |
| <!-- ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ ██ |
| ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ |
| ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ |
| ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ |
| ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ ██ |
| |
| Log4j project modules should use `log4j-parent` as their parents, not this POM! |
| This POM constitutes the BOM to be imported by applications using Log4j project modules. --> |
| |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache.logging</groupId> |
| <artifactId>logging-parent</artifactId> |
| <version>11.3.0</version> |
| <relativePath /> |
| </parent> |
| |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-bom</artifactId> |
| <version>${revision}</version> |
| <packaging>pom</packaging> |
| |
| <name>Apache Log4j BOM</name> |
| <description>Apache Log4j Bill-of-Materials</description> |
| <url>https://logging.apache.org/log4j/3.x/</url> |
| |
| <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> |
| <url>https://www.garygregory.com</url> |
| <organization>The Apache Software Foundation</organization> |
| <organizationUrl>https://www.apache.org/</organizationUrl> |
| <roles> |
| <role>PMC Member</role> |
| </roles> |
| <timezone>America/New_York</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> |
| </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>Apple</organization> |
| <roles> |
| <role>PMC Member</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>rgupta</id> |
| <name>Raman Gupta</name> |
| <email>rgupta@apache.org</email> |
| <roles> |
| <role>Committer</role> |
| </roles> |
| <timezone>America/New York</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> |
| <url>https://github.com/carterkozak</url> |
| <roles> |
| <role>PMC Member</role> |
| </roles> |
| <timezone>America/New York</timezone> |
| </developer> |
| |
| <developer> |
| <id>vy</id> |
| <name>Volkan Yazıcı</name> |
| <email>vy@apache.org</email> |
| <roles> |
| <role>PMC Chair</role> |
| </roles> |
| <timezone>Europe/Amsterdam</timezone> |
| </developer> |
| |
| <developer> |
| <id>rgrabowski</id> |
| <name>Ron Grabowski</name> |
| <email>rgrabowski@apache.org</email> |
| <roles> |
| <role>PMC Member</role> |
| </roles> |
| <timezone>America/New_York</timezone> |
| </developer> |
| |
| <developer> |
| <id>pkarwasz</id> |
| <name>Piotr P. Karwasz</name> |
| <email>pkarwasz@apache.org</email> |
| <roles> |
| <role>PMC Member</role> |
| </roles> |
| <timezone>Europe/Warsaw</timezone> |
| </developer> |
| |
| <developer> |
| <id>grobmeier</id> |
| <name>Christian Grobmeier</name> |
| <email>grobmeier@apache.org</email> |
| <roles> |
| <role>PMC Member</role> |
| </roles> |
| <timezone>Europe/Berlin</timezone> |
| </developer> |
| |
| </developers> |
| |
| <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> |
| </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> |
| </mailingList> |
| |
| <mailingList> |
| <name>security</name> |
| <subscribe>security-subscribe@logging.apache.org</subscribe> |
| <unsubscribe>security-unsubscribe@logging.apache.org</unsubscribe> |
| <post>security@logging.apache.org</post> |
| <archive>https://lists.apache.org/list.html?security@logging.apache.org</archive> |
| </mailingList> |
| |
| </mailingLists> |
| |
| <modules> |
| |
| <!-- the parent POM must come first: --> |
| <module>log4j-parent</module> |
| |
| <!-- Last comes the rest of the modules in alphabetical order. |
| Note that modules here must have a corresponding entry in `dependencyManagement > dependencies` block below! --> |
| <module>log4j-async-logger</module> |
| <module>log4j-compress</module> |
| <module>log4j-config-jackson</module> |
| <module>log4j-config-properties</module> |
| <module>log4j-config-yaml</module> |
| <module>log4j-conversant</module> |
| <module>log4j-core</module> |
| <module>log4j-core-test</module> |
| <module>log4j-csv</module> |
| <module>log4j-docker</module> |
| <module>log4j-gc-test</module> |
| <module>log4j-jctools</module> |
| <module>log4j-jdbc</module> |
| <module>log4j-jdbc-dbcp2</module> |
| <module>log4j-jdbc-jndi</module> |
| <module>log4j-jndi</module> |
| <module>log4j-jndi-test</module> |
| <module>log4j-jul</module> |
| <module>log4j-kit</module> |
| <module>log4j-layout-template-json</module> |
| <module>log4j-layout-template-json-test</module> |
| <module>log4j-mongodb</module> |
| <module>log4j-osgi-test</module> |
| <module>log4j-perf-test</module> |
| <module>log4j-plugin-processor</module> |
| <module>log4j-plugins</module> |
| <module>log4j-plugins-test</module> |
| <module>log4j-script</module> |
| <module>log4j-spring-cloud-config-client</module> |
| |
| </modules> |
| |
| <scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false" child.scm.url.inherit.append.path="false"> |
| <connection>scm:git:https://github.com/apache/logging-log4j2.git</connection> |
| <developerConnection>scm:git:https://github.com/apache/logging-log4j2.git</developerConnection> |
| <tag>main</tag> |
| <url>https://github.com/apache/logging-log4j2</url> |
| </scm> |
| |
| <issueManagement> |
| <system>GitHub Issues</system> |
| <url>https://github.com/apache/logging-log4j2/issues</url> |
| </issueManagement> |
| |
| <ciManagement> |
| <system>GitHub Actions</system> |
| <url>https://github.com/apache/logging-log4j2/actions</url> |
| </ciManagement> |
| |
| <distributionManagement> |
| <!-- `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> |
| <downloadUrl>https://logging.apache.org/log4j/3.x/download.html</downloadUrl> |
| <!-- `repository` from ASF parent POM (id: apache.releases.https) --> |
| <!-- `snapshotRepository` from ASF parent POM (id: apache.snapshots.https) --> |
| </distributionManagement> |
| |
| <properties> |
| |
| <!-- project version --> |
| <revision>3.0.0-beta3</revision> |
| |
| <!-- ================= |
| Common properties |
| ================= --> |
| <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile> |
| <!-- Target Java 17 --> |
| <minimalJavaBuildVersion>[17,18)</minimalJavaBuildVersion> |
| <maven.compiler.source>17</maven.compiler.source> |
| <maven.compiler.target>17</maven.compiler.target> |
| <maven.compiler.release>17</maven.compiler.release> |
| <!-- JDK version of the main Maven process (used in ASF parent POM) --> |
| <minimalJavaBuildVersion>[17,18)</minimalJavaBuildVersion> |
| <module.name /> |
| |
| <!-- `project.build.outputTimestamp` is required to be present for reproducible builds. |
| We actually inherit one from the `org.apache:apache` through our parent `org.apache.logging:logging-parent`. |
| Though inheriting this property has two undesired consequences: |
| 1. `artifact:compare` dumps an `ERROR` log stating that this `property should not be inherited but defined` (apache/logging-parent#50) |
| 2. This value is employed in various places while creating the distribution |
| To mitigate these, we define a *dummy* value here and let the CI replace it during a release. |
| Hence, *DO NOT MANUALLY EDIT THIS VALUE*! --> |
| <project.build.outputTimestamp>2024-11-09T05:50:28Z</project.build.outputTimestamp> |
| |
| <!-- Version of Log4j API required --> |
| <log4j-api.version>2.24.1</log4j-api.version> |
| |
| <!-- ======================== |
| Site-specific properties |
| ======================== --> |
| <!-- `maven-javadoc-plugin` is only used to generate Javadoc HTML used in the website. |
| We don't deploy any Javadoc JARs. |
| We also don't generate Javadoc HTML for all modules, but only for two modules: `log4j-api` and `log4j-core`. |
| Hence, we disable it by default: --> |
| <maven.javadoc.skip>true</maven.javadoc.skip> |
| <doclint>all,-missing,-html</doclint> |
| <!-- Skipping `maven-site-plugin` globally. --> |
| <maven.site.skip>true</maven.site.skip> |
| <maven.site.deploy.skip>true</maven.site.deploy.skip> |
| <site-commons-csv.version>1.12.0</site-commons-csv.version> |
| <site-commons-logging.version>1.3.4</site-commons-logging.version> |
| <site-conversant.version>1.2.21</site-conversant.version> |
| <site-flume.version>1.11.0</site-flume.version> |
| <site-je.version>18.3.12</site-je.version> |
| <site-log4j-core.version>3.0.0-beta2</site-log4j-core.version> |
| <site-log4j-jakarta.version>3.0.0-alpha1</site-log4j-jakarta.version> |
| <site-log4j-layout-template-json.version>3.0.0-beta2</site-log4j-layout-template-json.version> |
| <site-logback.version>1.5.12</site-logback.version> |
| <site-slf4j.version>2.0.16</site-slf4j.version> |
| |
| <!-- ===================================================== |
| Direct dependency version properties (in alphabetical order) |
| ===================================================== --> |
| <log4j-docgen.version>0.9.0</log4j-docgen.version> |
| <node.version>21.7.1</node.version> |
| <npm.version>10.5.0</npm.version> |
| |
| <!-- ================================== |
| `log4j-docgen`-specific properties |
| ================================== --> |
| <!-- `log4j-docgen` qualified class name exclude pattern --> |
| <log4j.docgen.typeFilter.excludePattern>^java\..+</log4j.docgen.typeFilter.excludePattern> |
| <!-- Directories where `log4j-docgen` annotation processor will emit files to --> |
| <log4j.docgen.pluginDescriptorsDir.phase1>${maven.multiModuleProjectDirectory}/target/plugin-descriptors/phase1</log4j.docgen.pluginDescriptorsDir.phase1> |
| <log4j.docgen.pluginDescriptorsDir.phase2>${maven.multiModuleProjectDirectory}/target/plugin-descriptors/phase2</log4j.docgen.pluginDescriptorsDir.phase2> |
| |
| <!-- Downgrade temporarily Maven Surefire, since it breaks tests statistics on `ge.apache.org` --> |
| <version.maven-surefire>3.2.5</version.maven-surefire> |
| </properties> |
| |
| <dependencyManagement> |
| <dependencies> |
| |
| <!-- List of managed dependencies (in alphabetical order) that are intended for public consumption. |
| Modules that are not used anywhere (e.g., `log4j-core-its`, `log4j-osgi-test`) should not be placed here. |
| Modules that are used only internally (e.g., `log4j-layout-template-json-test`) should be added to `dependencyManagement > dependencies` in `log4j-parent/pom.xml`. --> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api-test</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-async-logger</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-compress</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-config-jackson</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-config-properties</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-config-yaml</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-conversant</artifactId> |
| <version>${project.version}</version> |
| </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-test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-csv</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-docker</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-iostreams</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jctools</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jdbc</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jdbc-dbcp2</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jdbc-jndi</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jndi</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jndi-test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jpl</artifactId> |
| <version>${log4j-api.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-layout-template-json</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-mongodb</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-plugin-processor</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-plugins</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-plugins-test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-script</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-kit</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-slf4j2-impl</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-slf4j-impl</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-spring-cloud-config-client</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-to-jul</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-to-slf4j</artifactId> |
| <version>${log4j-api.version}</version> |
| </dependency> |
| |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| |
| <plugins> |
| |
| <!-- Enable BOM flattening --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>flatten-maven-plugin</artifactId> |
| <version>${flatten-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>flatten-revision</id> |
| <configuration> |
| <!-- |
| ~ Flatten Maven Plugin removes the `child.project.url.inherit.append.path` attribute on this POM. |
| ~ |
| ~ This causes a difference between the effective model of children built on this POM |
| ~ and those built on the flattened version. |
| ~ |
| ~ Until https://github.com/mojohaus/flatten-maven-plugin/issues/412 we must expand <url> |
| --> |
| <pomElements> |
| <url>expand</url> |
| </pomElements> |
| </configuration> |
| </execution> |
| <execution> |
| <id>flatten-bom</id> |
| <goals> |
| <goal>flatten</goal> |
| </goals> |
| <phase>process-resources</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <pomElements> |
| <!-- CycloneDX Maven Plugin uses this data --> |
| <distributionManagement>keep</distributionManagement> |
| </pomElements> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Apache RAT (Release Audit Tool) check to verify licenses. |
| `apache-rat-plugin`: https://creadur.apache.org/rat/apache-rat-plugin/ |
| Release Audit Tool: https://creadur.apache.org/rat/index.html --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <consoleOutput>true</consoleOutput> |
| <excludes combine.children="append"> |
| <!-- Matches other RAT configurations in this POM --> |
| <exclude>src/main/resources/META-INF/services/**/*</exclude> |
| <exclude>src/test/resources/**/*</exclude> |
| <!-- IDE settings imports --> |
| <exclude>src/ide/**</exclude> |
| <!-- Font Awesome License (Font: SIL OFL 1.1, CSS: MIT License)--> |
| <exclude>src/site/resources/font-awesome-4.7.0/css/font-awesome.css</exclude> |
| <exclude>src/site/resources/font-awesome-4.7.0/css/font-awesome.min.css</exclude> |
| <exclude>src/site/resources/font-awesome-4.7.0/fonts/fontawesome-webfont.svg</exclude> |
| <!-- Generated files --> |
| <exclude>**/.toDelete</exclude> |
| <exclude>velocity.log</exclude> |
| <!-- Other --> |
| <exclude>**/README.md</exclude> |
| <exclude>SECURITY.md</exclude> |
| <exclude>**/*.yml</exclude> |
| <exclude>**/*.yaml</exclude> |
| <exclude>**/*.json</exclude> |
| <excllude>**/images/*.drawio</excllude> |
| <exclude>**/fluent-bit.conf</exclude> |
| <exclude>**/rabbitmq.config</exclude> |
| <exclude>**/MANIFEST.MF</exclude> |
| <exclude>.surefire-*</exclude> |
| <exclude>**/.log4j-*</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <forkCount>1C</forkCount> |
| <reuseForks>false</reuseForks> |
| <runOrder>random</runOrder> |
| <systemPropertyVariables> |
| <java.awt.headless>true</java.awt.headless> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| |
| <!-- ███████ ████████ █████ ██████ ████████ ███████ ██ ████████ ███████ |
| ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ |
| ███████ ██ ███████ ██████ ██ ███████ ██ ██ █████ |
| ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ |
| ███████ ██ ██ ██ ██ ██ ██ ███████ ██ ██ ███████ |
| |
| This section consists of plugins responsible for generating the site. |
| Note that only this (i.e., the root) module is supposed to have a `site` goal, it is skipped for all other modules! --> |
| |
| <!-- Define `currentYear` property used by the `maven-javadoc-plugin` configuration --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>define-currentYear-property</id> |
| <goals> |
| <goal>timestamp-property</goal> |
| </goals> |
| <phase>pre-site</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <name>currentYear</name> |
| <pattern>yyyy</pattern> |
| <locale>en_US</locale> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>generate-site-javadoc</id> |
| <goals> |
| <goal>javadoc-no-fork</goal> |
| </goals> |
| <phase>pre-site</phase> |
| <!-- This execution must be inherited and enabled by modules publishing javadocs: `-api` and `-core`. |
| Such modules enable this execution via `maven.javadoc.skip` property. |
| Hence, don't insert a `<inherited>false</inherited>`, please! --> |
| <configuration combine.self="override"> |
| <!-- `notimestamp` avoids `diff` noise and is required for reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html --> |
| <notimestamp>true</notimestamp> |
| <skip>${maven.javadoc.skip}</skip> |
| <legacyMode>true</legacyMode> |
| <bottom><![CDATA[<p align="center"> |
| Copyright © {inceptionYear}-{currentYear} {organizationName}. |
| All Rights Reserved.<br/> |
| Apache, Log4j, and the Apache feather logo are trademarks or registered trademarks of {organizationName}. |
| Oracle and Java are registered trademarks of Oracle and/or its affiliates. |
| Other names may be trademarks of their respective owners. |
| </p>]]></bottom> |
| <offlineLinks> |
| <link> |
| <url>https://logging.apache.org/log4j/2.x/javadoc/log4j-api</url> |
| <location>${maven.multiModuleProjectDirectory}/log4j-api/target/site/apidocs/</location> |
| </link> |
| <link> |
| <url>https://logging.apache.org/log4j/2.x/javadoc/log4j-core</url> |
| <location>${maven.multiModuleProjectDirectory}/log4j-core/target/site/apidocs/</location> |
| </link> |
| <link> |
| <url>https://logging.apache.org/log4j/2.x/javadoc/log4j-kit</url> |
| <location>${maven.multiModuleProjectDirectory}/log4j-kit/target/site/apidocs/</location> |
| </link> |
| <link> |
| <url>https://logging.apache.org/log4j/2.x/javadoc/log4j-plugins</url> |
| <location>${maven.multiModuleProjectDirectory}/log4j-plugins/target/site/apidocs/</location> |
| </link> |
| </offlineLinks> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| |
| <!-- These are dummy dependencies! |
| They are not used anywhere while running `maven-resources-plugin`. |
| `filter-antora-yml` execution above injects these `*.version` properties into `antora.yml`. |
| Later on, we use them in the manual while referencing to Maven artifacts with their versions. |
| We need these `<dependency>` entries to trick `dependabot` to update the version properties automatically. |
| No, we cannot use `${project.version}`, because it is not released yet. --> |
| <dependencies> |
| |
| <!-- Log4j component dependencies. |
| No, we cannot use `${project.version}`, because it is not released yet. --> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-core</artifactId> |
| <version>${site-log4j-core.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-jakarta-web</artifactId> |
| <version>${site-log4j-jakarta.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-layout-template-json</artifactId> |
| <version>${site-log4j-layout-template-json.version}</version> |
| </dependency> |
| |
| <!-- Other dependencies --> |
| |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-csv</artifactId> |
| <version>${site-commons-csv.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| <version>${site-commons-logging.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.conversantmedia</groupId> |
| <artifactId>disruptor</artifactId> |
| <version>${site-conversant.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flume</groupId> |
| <artifactId>flume-ng-embedded-agent</artifactId> |
| <version>${site-flume.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.sleepycat</groupId> |
| <artifactId>je</artifactId> |
| <version>${site-je.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| <version>${site-logback.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>${site-slf4j.version}</version> |
| </dependency> |
| |
| </dependencies> |
| |
| <executions> |
| |
| <!-- Process `target/antora-yml` and output to `target/generated-site/antora` --> |
| <execution> |
| <id>filter-antora-yml</id> |
| </execution> |
| |
| <!-- Copy `src/site` to `target/generated-site` --> |
| <execution> |
| <id>copy-site</id> |
| </execution> |
| |
| <!-- Copy `target/site/apidocs` to the root module's `target/site/javadoc/<artifactId>` folder --> |
| <execution> |
| <id>copy-javadoc</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>site</phase> |
| <!-- This execution must be inherited and enabled by modules publishing javadocs: `-api` and `-core`. |
| Such modules enable this execution via `maven.javadoc.skip` property. |
| Hence, don't insert a `<inherited>false</inherited>`, please! --> |
| <configuration> |
| <skip>${maven.javadoc.skip}</skip> |
| <outputDirectory>${maven.multiModuleProjectDirectory}/target/site/javadoc/${project.artifactId}</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.build.directory}/site/apidocs</directory> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| |
| <!-- Copies the static resources in `src/site/resources` directly to `target/site`. |
| These resources are not handled by Antora. --> |
| <execution> |
| <id>copy-site-resources</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>site</phase> |
| <configuration> |
| <resources> |
| <resource> |
| <directory>src/site/resources</directory> |
| </resource> |
| </resources> |
| <outputDirectory>target/site</outputDirectory> |
| </configuration> |
| </execution> |
| |
| </executions> |
| |
| </plugin> |
| |
| <plugin> |
| |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-docgen-maven-plugin</artifactId> |
| <version>${log4j-docgen.version}</version> |
| <inherited>false</inherited> |
| |
| <!-- Common docgen configuration --> |
| <configuration> |
| |
| <!-- Descriptor processing order matters! |
| |
| Imagine we place all descriptors to the same folder. |
| Assume that the filesystem walks folder contents in alphanumeric order. |
| Sourcing `log4j-docgen:generate-*` from that folder will consume descriptors in the following order: |
| |
| 1. `log4j-cassandra` |
| 2. `log4j-core` |
| 4. ... |
| |
| For instance, `AbstractFilterable` is defined by the descriptors of both `log4j-cassandra` and `log4j-core`. |
| Due to alphanumeric scanning order, it will appear as it is provided by `log4j-cassandra`. |
| Though, it is actually provided by `log4j-core`. |
| To avoid this problem, we place descriptors to folders associated with phases. |
| We pass the folder of each phase in a certain order to `log4j-docgen:generate-*`. --> |
| <descriptorFileMatchers> |
| <descriptorFileMatcher> |
| <baseDirectory>${log4j.docgen.pluginDescriptorsDir.phase1}</baseDirectory> |
| </descriptorFileMatcher> |
| <descriptorFileMatcher> |
| <baseDirectory>${log4j.docgen.pluginDescriptorsDir.phase2}</baseDirectory> |
| </descriptorFileMatcher> |
| </descriptorFileMatchers> |
| |
| <typeFilter> |
| <excludes> |
| <exclude>${log4j.docgen.typeFilter.excludePattern}</exclude> |
| </excludes> |
| </typeFilter> |
| |
| </configuration> |
| |
| <executions> |
| |
| <!-- Generate AsciiDoc from downloaded plugin descriptors --> |
| <execution> |
| <id>generate-plugin-docs</id> |
| <goals> |
| <goal>generate-documentation</goal> |
| </goals> |
| <phase>pre-site</phase> |
| <configuration> |
| <templateDirectory>${project.basedir}/src/docgen</templateDirectory> |
| <indexTemplates> |
| <template> |
| <source>index.adoc.ftl</source> |
| <target>${project.build.directory}/generated-site/antora/modules/ROOT/pages/plugin-reference.adoc</target> |
| </template> |
| </indexTemplates> |
| <typeTemplates> |
| <template> |
| <source>type.adoc.ftl</source> |
| <target>${project.build.directory}/generated-site/antora/modules/ROOT/pages/_plugin-reference/%g-%a-%c.adoc</target> |
| </template> |
| </typeTemplates> |
| </configuration> |
| </execution> |
| |
| <!-- Generate XSD from downloaded plugin descriptors --> |
| <execution> |
| <id>generate-plugin-schema</id> |
| <goals> |
| <goal>generate-schema</goal> |
| </goals> |
| <phase>site</phase> |
| <configuration> |
| <schemaVersion>${project.version}</schemaVersion> |
| <schemaFile>${project.build.directory}/log4j-config.xsd</schemaFile> |
| </configuration> |
| </execution> |
| |
| </executions> |
| |
| </plugin> |
| |
| <!-- ███████ ███ ██ ██████ ███████ ██ ████████ ███████ |
| ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ |
| █████ ██ ██ ██ ██ ██ ███████ ██ ██ █████ |
| ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ |
| ███████ ██ ████ ██████ ███████ ██ ██ ███████ --> |
| |
| </plugins> |
| |
| </build> |
| |
| <profiles> |
| |
| <profile> |
| <id>rerun-tests</id> |
| <activation> |
| <property> |
| <name>env.CI</name> |
| <value>true</value> |
| </property> |
| </activation> |
| <properties> |
| <surefire.rerunFailingTestsCount>2</surefire.rerunFailingTestsCount> |
| </properties> |
| </profile> |
| |
| <profile> |
| <id>sequential-tests</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <forkCount>1</forkCount> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>rewrite</id> |
| |
| <properties> |
| <skipTests>true</skipTests> |
| </properties> |
| |
| <build> |
| <defaultGoal>clean package rewrite:runNoFork spotless:apply</defaultGoal> |
| <plugins> |
| <plugin> |
| <groupId>org.openrewrite.maven</groupId> |
| <artifactId>rewrite-maven-plugin</artifactId> |
| <version>5.15.0</version> |
| <configuration> |
| <activeRecipes> |
| <activeRecipe>org.openrewrite.java.logging.log4j.ParameterizedLogging</activeRecipe> |
| <activeRecipe>org.openrewrite.java.migrate.Java8toJava11</activeRecipe> |
| </activeRecipes> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.openrewrite.recipe</groupId> |
| <artifactId>rewrite-migrate-java</artifactId> |
| <version>2.5.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.openrewrite.recipe</groupId> |
| <artifactId>rewrite-logging-frameworks</artifactId> |
| <version>2.3.0</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| </profiles> |
| |
| </project> |