blob: e65edca71cb790c48d381586050a4ef9cb464527 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>29</version>
</parent>
<artifactId>pulsar-java-contrib</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Pulsar Java Contrib</name>
<modules>
<module>pulsar-client-common-contrib</module>
<module>pulsar-loadbalance-contrib</module>
<module>pulsar-interceptor-contrib</module>
<module>pulsar-connector-contrib</module>
<module>pulsar-function-contrib</module>
<module>pulsar-bookkeeper-contrib</module>
<module>pulsar-transaction-contrib</module>
<module>pulsar-metrics-contrib</module>
<module>pulsar-auth-contrib</module>
<module>pulsar-rpc-contrib</module>
<module>pulsar-admin-mcp-contrib</module>
</modules>
<properties>
<lombok.version>1.18.32</lombok.version>
<slf4j.version>2.0.13</slf4j.version>
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<pulsar.version>4.1.1</pulsar.version>
<maven-checkstyle-plugin.version>3.4.0</maven-checkstyle-plugin.version>
<puppycrawl.checkstyle.version>8.45.1</puppycrawl.checkstyle.version>
<spotless-maven-plugin.version>2.43.0</spotless-maven-plugin.version>
<maven-compiler-plugin>3.13.0</maven-compiler-plugin>
<maven-wrapper-plugin.version>3.3.2</maven-wrapper-plugin.version>
<license-maven-plugin.version>4.5</license-maven-plugin.version>
<org.testing.version>7.10.2</org.testing.version>
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
<google-java-format.version>1.10.0</google-java-format.version>
<commons-pool.version>2.12.0</commons-pool.version>
<awaitility.version>4.2.2</awaitility.version>
<testcontainers.version>1.20.1</testcontainers.version>
<junit.version>4.13.1</junit.version>
<mockito.version>5.12.0</mockito.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-bom</artifactId>
<version>${slf4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.pulsar</groupId>
<artifactId>pulsar-bom</artifactId>
<version>${pulsar.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${commons-pool.version}</version>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>pulsar</artifactId>
<version>${testcontainers.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${org.testing.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spotless Plugin -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless-maven-plugin.version}</version>
<configuration>
<java>
<googleJavaFormat>
<version>${google-java-format.version}</version>
<style>GOOGLE</style>
</googleJavaFormat>
<!-- \# refers to the static imports -->
<replaceRegex>
<name>no-blank-between-static-and-normal-imports</name>
<searchRegex>(?m)(^import static[^\n]*;\n(?:import static[^\n]*;\n)*)(?:\s*\n)(?=import )</searchRegex>
<replacement>$1</replacement>
</replaceRegex>
</java>
<pom>
<includes>
<include>pom.xml</include>
</includes>
<sortPom>
<encoding>UTF-8</encoding>
<lineSeparator>${line.separator}</lineSeparator>
<expandEmptyElements>true</expandEmptyElements>
<spaceBeforeCloseEmptyElement>false</spaceBeforeCloseEmptyElement>
<keepBlankLines>true</keepBlankLines>
<nrOfIndentSpace>4</nrOfIndentSpace>
<indentBlankLines>false</indentBlankLines>
<indentSchemaLocation>false</indentSchemaLocation>
<predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
<sortOrderFile>./sort_order.xml</sortOrderFile>
<sortDependencies>groupId,artifactId</sortDependencies>
<sortDependencyManagement>true</sortDependencyManagement>
<sortDependencyExclusions>groupId,artifactId</sortDependencyExclusions>
<sortPlugins>groupId,artifactId</sortPlugins>
<sortProperties>false</sortProperties>
<sortModules>false</sortModules>
<sortExecutions>false</sortExecutions>
</sortPom>
</pom>
</configuration>
<executions>
<execution>
<goals>
<goal>apply</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Check that source files have appropriate license headers -->
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license-maven-plugin.version}</version>
<configuration>
<header>etc/APACHE-2.txt</header>
<excludes>
<exclude>LICENSE</exclude>
<exclude>NOTICE</exclude>
<exclude>payload/**</exclude>
<exclude>**/*.pyc</exclude>
<exclude>**/.pydevproject</exclude>
<exclude>.github/**</exclude>
</excludes>
<mapping>
<benchmark>SCRIPT_STYLE</benchmark>
<j2>SCRIPT_STYLE</j2>
<conf>SCRIPT_STYLE</conf>
<yaml>SCRIPT_STYLE</yaml>
<md>XML_STYLE</md>
<lombok.config>SCRIPT_STYLE</lombok.config>
<puml>APOSTROPHE_STYLE</puml>
</mapping>
</configuration>
<dependencies>
<dependency>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin-git</artifactId>
<version>${license-maven-plugin.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<!-- Checkstyle Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<configuration>
<configLocation>./src/main/resources/checkstyle.xml</configLocation>
<suppressionsLocation>./src/main/resources/suppressions.xml</suppressionsLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<encoding>UTF-8</encoding>
<excludes>**/*.proto</excludes>
<!-- Example exclusion -->
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${puppycrawl.checkstyle.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate-checkstyle</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
<version>${maven-wrapper-plugin.version}</version>
</plugin>
</plugins>
</build>
<inceptionYear>2024</inceptionYear>
</project>