blob: a70186b600918557b55bd4eb78905b3db218ee00 [file] [log] [blame]
<?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.0.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/2.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>
<!-- Next unpublished modules in alphabetical order: -->
<module>log4j-api-java9</module>
<module>log4j-core-java9</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-1.2-api</module>
<module>log4j-api</module>
<module>log4j-api-test</module>
<module>log4j-appserver</module>
<module>log4j-cassandra</module>
<module>log4j-core</module>
<module>log4j-core-its</module>
<module>log4j-core-test</module>
<module>log4j-couchdb</module>
<module>log4j-docker</module>
<module>log4j-flume-ng</module>
<module>log4j-iostreams</module>
<module>log4j-jakarta-smtp</module>
<module>log4j-jakarta-web</module>
<module>log4j-jcl</module>
<module>log4j-jpa</module>
<module>log4j-jpl</module>
<module>log4j-jdbc-dbcp2</module>
<module>log4j-jul</module>
<module>log4j-layout-template-json</module>
<module>log4j-layout-template-json-test</module>
<module>log4j-mongodb</module>
<module>log4j-mongodb4</module>
<module>log4j-osgi-test</module>
<module>log4j-perf-test</module>
<module>log4j-slf4j-impl</module>
<module>log4j-slf4j2-impl</module>
<module>log4j-spring-boot</module>
<module>log4j-spring-cloud-config-client</module>
<module>log4j-taglib</module>
<module>log4j-to-slf4j</module>
<module>log4j-to-jul</module>
<module>log4j-web</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>2.x</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/2.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>2.24.0-SNAPSHOT</revision>
<!-- =================
Common properties
================= -->
<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-03-06T09:31:11Z</project.build.outputTimestamp>
<!-- ========================
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-logging.version>1.3.1</site-commons-logging.version>
<site-jackson.version>2.17.0</site-jackson.version>
<site-log4j-api.version>2.23.1</site-log4j-api.version>
<site-log4j-core.version>2.23.1</site-log4j-core.version>
<site-log4j-layout-template-json.version>2.23.1</site-log4j-layout-template-json.version>
<site-logback.version>1.5.5</site-logback.version>
<site-slf4j.version>2.0.13</site-slf4j.version>
<!-- =====================================================
Direct dependency version properties (in alphabetical order)
===================================================== -->
<log4j-docgen.version>0.8.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>
<log4j.docgen.pluginDescriptorsDir>${log4j.docgen.pluginDescriptorsDir.phase2}</log4j.docgen.pluginDescriptorsDir>
</properties>
<dependencyManagement>
<dependencies>
<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-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api-test</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-appserver</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-cassandra</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-couchdb</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-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-jakarta-smtp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jakarta-web</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jpa</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jpl</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-layout-template-json</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-mongodb4</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-slf4j2-impl</artifactId>
<version>${project.version}</version>
</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-spring-boot</artifactId>
<version>${project.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-taglib</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-jul</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>${project.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-bom</id>
<goals>
<goal>flatten</goal>
</goals>
<phase>process-resources</phase>
<inherited>false</inherited>
</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>
<version>0.16.1</version>
<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>alphabetical</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 &copy; {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>
</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-api</artifactId>
<version>${site-log4j-api.version}</version>
</dependency>
<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-layout-template-json</artifactId>
<version>${site-log4j-layout-template-json.version}</version>
</dependency>
<!-- Other dependencies -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${site-commons-logging.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${site-jackson.version}</version>
<type>pom</type>
</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>
</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-1.2.api`
2. `log4j-cassandra`
3. `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>
<indexTemplate>
<source>index.adoc.ftl</source>
<target>${project.build.directory}/generated-site/antora/modules/ROOT/pages/plugin-reference.adoc</target>
</indexTemplate>
<typeTemplate>
<source>type.adoc.ftl</source>
<target>${project.build.directory}/generated-site/antora/modules/ROOT/pages/_plugin-reference/%g-%a-%c.adoc</target>
</typeTemplate>
</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>java8-tests</id>
<activation>
<property>
<name>env.CI</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<!-- Modifies only the `default-test` run -->
<execution>
<id>default-test</id>
<configuration>
<jdkToolchain>
<version>[1.8, 9)</version>
</jdkToolchain>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</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.13.0</version>
<configuration>
<activeRecipes>
<activeRecipe>org.openrewrite.java.logging.log4j.ParameterizedLogging</activeRecipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-migrate-java</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-logging-frameworks</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>