blob: e171cce1a437f58d8ab3bf94689b5531bb00dc63 [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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.logging</groupId>
<artifactId>logging-parent</artifactId>
<version>12.0.0</version>
<relativePath />
</parent>
<groupId>org.apache.logging.log4j.samples</groupId>
<artifactId>log4j-samples</artifactId>
<version>${revision}</version>
<packaging>pom</packaging>
<name>Apache Log4j Samples</name>
<modules>
<module>log4j-nashorn-test</module>
<module>log4j-samples-aspectj</module>
<module>log4j-samples-asynclogger</module>
<module>log4j-samples-configuration</module>
<module>log4j-samples-flume-common</module>
<module>log4j-samples-flume-embedded</module>
<module>log4j-samples-flume-remote</module>
<module>log4j-samples-jlink</module>
<module>log4j-samples-loggerProperties</module>
<module>log4j-samples-parser</module>
<!-- Disabled, since compilation fails
<module>log4j-server</module>
-->
<module>log4j-spring-cloud-config-sample-application</module>
<module>log4j-spring-cloud-config-sample-server</module>
</modules>
<properties>
<!-- This project contains only samples and aims no releases.
Hence, we use a fake version and DO NOT CHANGE IT! -->
<revision>0.0.0-SNAPSHOT</revision>
<!--
~ Version of Log4j Core
~
~ Set to latest stable 2.x release for users.
~ Our workflows override this.
-->
<log4j.version>2.24.3</log4j.version>
<!-- Some samples require JDK 17+ -->
<minimalJavaBuildVersion>17</minimalJavaBuildVersion>
<maven.compiler.release>17</maven.compiler.release>
<maven.compiler.source />
<maven.compiler.target />
<!-- Skip `bnd-baseline-maven-plugin` since this is not deployed -->
<bnd.baseline.skip>true</bnd.baseline.skip>
<!--
~ Skip CycloneDX since this artifact is not deployed.
~ CycloneDX attempts to download non-existent snapshots from `repository.apache.org`,
~ which ends up in a ban of the Github Runner IP.
~
~ See: https://infra.apache.org/infra-ban.html
-->
<cyclonedx.skip>true</cyclonedx.skip>
<!-- dependency versions -->
<disruptor.version>4.0.0</disruptor.version>
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
<flume.version>1.11.0</flume.version>
<jetty.version>11.0.24</jetty.version>
<javax-jms.version>2.0.1</javax-jms.version>
<spotbugs-annotations.version>4.9.2</spotbugs-annotations.version>
<spring-boot.version>3.4.3</spring-boot.version>
<spring-cloud.version>2024.0.0</spring-cloud.version>
<!-- Pinned transitive dependencies -->
<!-- Try removing from time to time -->
<guava.version>33.4.0-jre</guava.version>
<httpclient.version>4.5.14</httpclient.version>
<jackson.version>2.18.3</jackson.version>
<kotlin.version>2.1.10</kotlin.version>
<snakeyaml.version>2.4</snakeyaml.version>
<slf4j.version>2.0.17</slf4j.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Internal dependencies -->
<dependency>
<groupId>org.apache.logging.log4j.samples</groupId>
<artifactId>log4j-samples-configuration</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j.samples</groupId>
<artifactId>log4j-samples-flume-common</artifactId>
<version>${project.version}</version>
</dependency>
<!-- External dependencies -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>${disruptor.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flume.flume-ng-channels</groupId>
<artifactId>flume-file-channel</artifactId>
<version>${flume.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jmx</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-embedded-agent</artifactId>
<version>${flume.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
<artifactId>flume-ng-sdk</artifactId>
<version>${flume.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>${javax-jms.version}</version>
</dependency>
<!-- Transitive dependency of multiple dependencies -->
<!-- We fix a common version -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Transitive dependency of multiple dependencies -->
<!-- We fix a common version -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- Transitive dependency of multiple dependencies -->
<!-- We fix a common version -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
</dependency>
<!-- Transitive dependency of multiple dependencies -->
<!-- We fix a common version -->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-bom</artifactId>
<version>${kotlin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Transitive dependency of multiple dependencies -->
<!-- We fix a common version -->
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>${spotbugs-annotations.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-bom</artifactId>
<version>${slf4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Should be at the end, so it does not override the versions above -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Allow `spring-boot-dependencies` to override these versions -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths combine.children="append">
<!-- `org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor` for generating `META-INF/org/apache/.../Log4j2Plugins.dat`: -->
<path>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs combine.children="append">
<!-- Workaround Error Prone breaking change -->
<arg>--should-stop=ifError=FLOW</arg>
<!-- Provide arguments for the GraalVM processor -->
<arg>-Alog4j.graalvm.groupId=${project.groupId}</arg>
<arg>-Alog4j.graalvm.artifactId=${project.artifactId}</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!--
~ An additional Maven staging repository if the `log4j.repository.url` property is not empty.
-->
<profile>
<id>staging-repo</id>
<activation>
<property>
<name>log4j.repository.url</name>
<value>!</value>
</property>
</activation>
<repositories>
<!-- Use primarily Maven Central -->
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<!-- The repository that contains the requested Log4j version -->
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>log4j-staging</id>
<name>Log4j Staging Repository</name>
<url>${log4j.repository.url}</url>
</repository>
</repositories>
</profile>
</profiles>
</project>