sapl-policy-engine
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.sapl</groupId>
<artifactId>sapl-policy-engine</artifactId>
<version>4.0.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2017-2026 Dominic Heutelbeck (dominic@heutelbeck.com)
SPDX-License-Identifier: Apache-2.0
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.
-->
<!--
Build Commands:
* Build all modules:
mvn install
* Build with coverage:
mvn install -Pcoverage
Utility Goals:
* Update the version of all modules:
mvn versions:set -DnewVersion=4.1.0-RC1 -DprocessAllModules -DgenerateBackupPoms=false
* Correct the license headers of all source files:
mvn com.mycila:license-maven-plugin:format
(sapl-bom and sapl-code-style are automatically skipped via license.skip property)
-->
<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>
<groupId>io.sapl</groupId>
<artifactId>sapl-policy-engine</artifactId>
<version>4.0.0</version>
<packaging>pom</packaging>
<name>Streaming Attribute Policy Language (SAPL) Engine</name>
<description>Authorization Engine for Attribute Stream-Based Access Control
(ASBAC)</description>
<url>https://sapl.io</url>
<developers>
<developer>
<name>Dominic Heutelbeck</name>
<email>dominic@heutelbeck.com</email>
<roles>
<role>Project Owner</role>
</roles>
<url>https://github.com/heutelbeck</url>
<id>heutelbeck</id>
</developer>
</developers>
<organization>
<name>Dominic Heutelbeck</name>
<url>https://heutelbeck.com</url>
</organization>
<inceptionYear>2017-2026</inceptionYear>
<licenses>
<license>
<name>Apache 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<scm>
<connection>scm:git:git://github.com/heutelbeck/sapl-policy-engine.git</connection>
<developerConnection>
scm:git:git@github.com:heutelbeck/sapl-policy-engine.git</developerConnection>
<url>https://github.com/heutelbeck/sapl-policy-engine</url>
</scm>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.release>${java.version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<license.skip>false</license.skip>
<formatter.skip>false</formatter.skip>
<maven.deploy.skip>true</maven.deploy.skip>
<docker-registry-url>ghcr.io/heutelbeck</docker-registry-url>
<!-- Dependencies -->
<okhttp.version>5.3.2</okhttp.version>
<jacoco.version>0.8.14</jacoco.version>
<vaadin.version>25.1.1</vaadin.version>
<picocli.version>4.7.7</picocli.version>
<lombok.version>1.18.44</lombok.version>
<jupiter.version>6.0.3</jupiter.version>
<guava.version>33.5.0-jre</guava.version>
<assertj.version>3.27.7</assertj.version>
<jspecify.version>1.0.0</jspecify.version>
<flexmark.version>0.64.8</flexmark.version>
<slf4j-test.version>3.0.3</slf4j-test.version>
<springboot.version>4.0.5</springboot.version>
<commons-io.version>2.21.0</commons-io.version>
<classgraph.version>4.8.184</classgraph.version>
<bouncycastle.version>1.83</bouncycastle.version>
<commons-lang.version>3.20.0</commons-lang.version>
<reactor-netty.version>1.3.4</reactor-netty.version>
<testcontainers.version>2.0.4</testcontainers.version>
<nimbus-jose-jwt.version>10.8</nimbus-jose-jwt.version>
<spotbugs-annotations.version>4.9.8</spotbugs-annotations.version>
<json-schema-validator.version>3.0.1</json-schema-validator.version>
<jetbrains-annotations.version>26.1.0</jetbrains-annotations.version>
<!-- Maven Plug-Ins -->
<sb-contrib.version>7.7.2</sb-contrib.version>
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<exec-maven-plugin.version>3.5.0</exec-maven-plugin.version>
<maven-clean-plugin.version>3.5.0</maven-clean-plugin.version>
<maven-shade-plugin.version>3.6.1</maven-shade-plugin.version>
<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
<maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
<jacoco-maven-plugin.version>0.8.14</jacoco-maven-plugin.version>
<maven-install-plugin.version>3.1.4</maven-install-plugin.version>
<license-maven-plugin.version>5.0.0</license-maven-plugin.version>
<sonar-maven-plugin.version>5.5.0.6356</sonar-maven-plugin.version>
<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>3.5.4</maven-failsafe-plugin.version>
<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
<maven-resources-plugin.version>3.4.0</maven-resources-plugin.version>
<spotbugs-maven-plugin.version>4.9.8.2</spotbugs-maven-plugin.version>
<cyclonedx-maven-plugin.version>2.9.1</cyclonedx-maven-plugin.version>
<formatter-maven-plugin.version>2.29.0</formatter-maven-plugin.version>
<maven-dependency-plugin.version>3.9.0</maven-dependency-plugin.version>
<build-helper-maven-plugin.version>3.6.1</build-helper-maven-plugin.version>
<central-publishing-maven-plugin.version>0.9.0</central-publishing-maven-plugin.version>
<!-- Base argLine for JDK21+ profiles -->
<argLine />
<!-- Path to project/module with the license file -->
<main.basedir>${project.basedir}</main.basedir>
<sonar.exclusions>**/gen/**/*</sonar.exclusions>
</properties>
<dependencyManagement>
<dependencies>
<!-- Unify transitive Guava versions -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-bom</artifactId>
<version>${assertj.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<version>${okhttp.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${jupiter.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${jupiter.version}</version>
</dependency>
<dependency>
<groupId>com.github.valfirst</groupId>
<artifactId>slf4j-test</artifactId>
<version>${slf4j-test.version}</version>
</dependency>
<dependency>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>${classgraph.version}</version>
</dependency>
<!-- Spring-Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Vaadin -->
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Project Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- Picocli CLI Framework -->
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>${picocli.version}</version>
</dependency>
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>${jetbrains-annotations.version}</version>
</dependency>
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
<version>${reactor-netty.version}</version>
</dependency>
<dependency>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>${json-schema-validator.version}</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark</artifactId>
<version>${flexmark.version}</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-tables</artifactId>
<version>${flexmark.version}</version>
</dependency>
<!-- Utility Libraries -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<!-- JSON Web Token Support -->
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>${nimbus-jose-jwt.version}</version>
</dependency>
<!-- BouncyCastle -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<!-- Testcontainers (no longer managed by Spring Boot 4.0) -->
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers-bom</artifactId>
<version>${testcontainers.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpotBugs Annotations (no longer managed by Spring Boot 4.0) -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<version>${spotbugs-annotations.version}</version>
</dependency>
<!-- JSpecify nullness annotations (replaces reactor.util.annotation.Nullable) -->
<dependency>
<groupId>org.jspecify</groupId>
<artifactId>jspecify</artifactId>
<version>${jspecify.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<failOnError>true</failOnError>
<failOnWarning>true</failOnWarning>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<configuration>
<propertiesEncoding>UTF-8</propertiesEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>properties</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}/gen</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>@{argLine} -Xshare:off
-XX:+EnableDynamicAgentLoading</argLine>
<includes>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
<include>**/Test*.java</include>
</includes>
<excludes>
<exclude>**/*FuzzTests.java</exclude>
<exclude>%regex[.*IT.*]</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<configuration>
<argLine>@{argLine} -Xshare:off
-XX:+EnableDynamicAgentLoading</argLine>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${exec-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<detectOfflineLinks>false</detectOfflineLinks>
<verbose>false</verbose>
<failOnWarnings>true</failOnWarnings>
<doclint>none</doclint>
<tags>
<tag>
<name>generated</name>
<placement>a</placement>
<head>Generated Code</head>
</tag>
<tag>
<name>ordered</name>
<placement>a</placement>
<head>EMF Ordered</head>
</tag>
<tag>
<name>model</name>
<placement>a</placement>
<head>EMF Model</head>
</tag>
<tag>
<name>returns</name>
<placement>a</placement>
<head>EMF Returns:</head>
</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>${formatter-maven-plugin.version}</version>
<dependencies>
<dependency>
<groupId>io.sapl</groupId>
<artifactId>sapl-code-style</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>format</goal>
</goals>
<configuration>
<configFile>eclipse/formatter.xml</configFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<configuration>
<skip>${formatter.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<skip>${license.skip}</skip>
<licenseSets>
<licenseSet>
<header>
${main.basedir}/APACHE-2.txt</header>
<excludes>
<exclude>**/*.sapl</exclude>
<exclude>**/*.vim</exclude>
<exclude>**/*.lua</exclude>
<exclude>**/types.d.ts</exclude>
<exclude>**/vite.config.ts</exclude>
<exclude>**/vite.generated.ts</exclude>
<exclude>**/README</exclude>
<exclude>**/node_modules/**</exclude>
<exclude>**/frontend/**</exclude>
<exclude>**/gen/**</exclude>
<exclude>**/src/test/resources/**</exclude>
<exclude>**/src/main/bundles/**</exclude>
<exclude>src/main/resources/**</exclude>
<exclude>.gitattributes</exclude>
<exclude>.npmrc</exclude>
<exclude>**/*.pem</exclude>
<exclude>**/*.saplbundle</exclude>
<exclude>**/PKGBUILD</exclude>
<exclude>**/flake.lock</exclude>
<exclude>**/reference/**</exclude>
<exclude>**/*.csv</exclude>
</excludes>
</licenseSet>
</licenseSets>
<properties>
<owner>Dominic Heutelbeck</owner>
<email>dominic@heutelbeck.com</email>
</properties>
<mapping>
<md>XML_STYLE</md>
<java>SLASHSTAR_STYLE</java>
<adoc>DOUBLESLASH_STYLE</adoc>
<ad>DOUBLESLASH_STYLE</ad>
<config>SCRIPT_STYLE</config>
<target>XML_STYLE</target>
<g4>SLASHSTAR_STYLE</g4>
<sapltest>SLASHSTAR_STYLE</sapltest>
<service>SCRIPT_STYLE</service>
<install>SCRIPT_STYLE</install>
<nix>SCRIPT_STYLE</nix>
<rego>SCRIPT_STYLE</rego>
</mapping>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
</plugins>
</build>
<modules>
<module>sapl-code-style</module>
<!-- Core modules -->
<module>sapl-api</module>
<module>sapl-api-proto</module>
<module>sapl-parser</module>
<module>sapl-pdp</module>
<!-- PDP extensions (depend on sapl-api) -->
<module>pdp-extensions/geo-functions</module>
<module>pdp-extensions/geo-traccar</module>
<module>pdp-extensions/mqtt-functions</module>
<module>pdp-extensions/mqtt-pip</module>
<!-- Testing modules -->
<module>sapl-test-parser</module>
<module>sapl-test</module>
<module>sapl-maven-plugin</module>
<!-- Integration modules -->
<module>sapl-pdp-remote</module>
<module>sapl-spring-boot-starter</module>
<!-- IDE and tooling -->
<module>sapl-language-server</module>
<module>sapl-documentation-generator</module>
<!-- Web endpoints -->
<module>sapl-webflux-endpoint</module>
<module>sapl-rsocket-endpoint</module>
<module>sapl-vaadin-theme</module>
<module>sapl-vaadin-editor</module>
<!-- Server applications -->
<module>sapl-node</module>
<module>sapl-playground</module>
<!-- Benchmarks (not published, not in BOM) -->
<module>sapl-benchmark/sapl-benchmark-sapl4</module>
<module>sapl-benchmark/sapl-benchmark-sapl3</module>
<!-- BOM (after all artifacts it references) -->
<module>sapl-bom</module>
</modules>
<profiles>
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<formats>
<format>XML</format>
</formats>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spotbugs</id>
<build>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<excludeFilterFile>spotbugsExcludeFilter.xml</excludeFilterFile>
<includeTests>true</includeTests>
<addSourceDirs>true</addSourceDirs>
<plugins>
<plugin>
<groupId>com.mebigfatguy.sb-contrib</groupId>
<artifactId>sb-contrib</artifactId>
<version>${sb-contrib.version}</version>
</plugin>
</plugins>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sonatypeDeploy</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<repositories>
<repository>
<id>central-portal-snapshots</id>
<name>Central Portal Snapshots</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central-portal-snapshots</id>
<name>Central Portal Snapshots</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>