| <?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>10.6.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>Asia/Kolkata</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-mongodb3</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> |
| |
| <!-- ============================================================ |
| Direct dependency version properties (in alphabetical order) |
| ============================================================ --> |
| <log4j-docgen.version>0.8.0</log4j-docgen.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> |
| |
| </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-mongodb3</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-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 parent) module is supposed to have a `site` goal, it is skipped for all other modules! --> |
| |
| <!-- Define `currentYear` property used while generating the site --> |
| <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 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> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| |
| <!-- Copy `src/site/_release-notes` to `src/site/asciidoc/_release-notes`. |
| This is necessary since `logging-parent` version `<=10.1.1` exports changelogs to `src/site/_release-notes`. |
| Though `maven-site-plugin` expects them to be at `src/site/asciidoc/_release-notes`. |
| We could have simply solved the problem using symbolic links. |
| Though they are not supported by Java's `ZipEntry`, and hence, breaking the `distribution` profile while creating `src.zip`. --> |
| <execution> |
| <id>copy-exported-release-notes</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>pre-site</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <outputDirectory>${project.build.directory}/generated-sources/site/asciidoc/_release-notes</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/src/site/_release-notes</directory> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| |
| <!-- Copy `src/site` to `target/generated-sources/site` --> |
| <execution> |
| <id>copy-site</id> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <phase>pre-site</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <outputDirectory>${project.build.directory}/generated-sources/site</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/src/site</directory> |
| <excludes> |
| <exclude>/_release-notes/*</exclude> |
| <exclude>/_release-notes.adoc</exclude> |
| <exclude>/resources/logo/**/*</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| |
| <!-- Copy `target/site/apidocs` to the parent 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> |
| |
| <!-- copy `src/site/_release-notes.adoc` to `target/site/asciidoc/release-notes.adoc` --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-release-notes-adoc</id> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <phase>generate-sources</phase> |
| <inherited>false</inherited> |
| <configuration> |
| <target> |
| <copy file="${project.basedir}/src/site/_release-notes.adoc" overwrite="true" tofile="${project.build.directory}/generated-sources/site/asciidoc/release-notes.adoc" /> |
| </target> |
| </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/template/docgen</templateDirectory> |
| <indexTemplate> |
| <source>index.adoc.ftl</source> |
| <target>${project.build.directory}/generated-sources/site/asciidoc/plugin-reference.adoc</target> |
| </indexTemplate> |
| <typeTemplate> |
| <source>type.adoc.ftl</source> |
| <target>${project.build.directory}/generated-sources/site/asciidoc/_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>pre-site</phase> |
| <configuration> |
| <schemaVersion>${project.version}</schemaVersion> |
| <schemaFile>${project.build.directory}/log4j-config.xsd</schemaFile> |
| </configuration> |
| </execution> |
| |
| </executions> |
| |
| </plugin> |
| |
| <plugin> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctor-maven-plugin</artifactId> |
| <!-- `log4j-docgen` uses `asciidoctorj` version `3.x`. |
| Though `asciidoctor-maven-plugin` version `<3.0.0` doesn't work against `asciidoctorj` version `3.x`. |
| Hence, override the `asciidoctor-maven-plugin` version to `3.x`. --> |
| <version>3.0.0</version> |
| <inherited>false</inherited> |
| <dependencies> |
| <dependency> |
| <groupId>io.spring.asciidoctor</groupId> |
| <artifactId>spring-asciidoctor-extensions-block-switch</artifactId> |
| <version>0.6.3</version> |
| </dependency> |
| <!-- `log4j-docgen` uses `asciidoctorj` version `3.x`. |
| Though `asciidoctor-maven-plugin` version `3.x` still uses `asciidoctorj` version `2.x`. |
| Hence, upgrade the `asciidoctorj` used to version `3.x`. --> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctorj</artifactId> |
| <version>3.0.0-alpha.2</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-docgen-asciidoctor-extension</artifactId> |
| <version>${log4j-docgen.version}</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>export-asciidoc-to-html</id> |
| <configuration combine.self="override"> |
| <resources> |
| <resource> |
| <directory>${project.build.directory}/generated-sources/site/resources</directory> |
| </resource> |
| </resources> |
| <sourceDirectory>${project.build.directory}/generated-sources/site/asciidoc</sourceDirectory> |
| <outputDirectory>target/site</outputDirectory> |
| <preserveDirectories>true</preserveDirectories> |
| <templateDirs> |
| <dir>src/template/asciidoctor</dir> |
| </templateDirs> |
| <attributes> |
| <source-highlighter>rouge</source-highlighter> |
| <toc>left</toc> |
| <log4j-docgen-descriptor-directory>${project.build.directory}/plugin-descriptors</log4j-docgen-descriptor-directory> |
| <log4j-docgen-type-filter-exclude-pattern>${log4j.docgen.typeFilter.excludePattern}</log4j-docgen-type-filter-exclude-pattern> |
| <log4j-docgen-type-target-template><![CDATA[#${sourcedType.groupId?replace('.', '-')}_${sourcedType.artifactId?replace('.', '-')}_${sourcedType.type.className?replace('.', '-')}]]></log4j-docgen-type-target-template> |
| </attributes> |
| </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> |