<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (C) 2017-2025 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.

-->
<!-- 
	Utility goals supported by the POM:
	
	* Update the version of all modules:
	  mvn versions:set -DnewVersion=3.0.0-RC1 -DprocessAllModules
          -DgenerateBackupPoms=false
	  
	* Correct the license headers of all source files:
	  mvn license:format -pl !sapl-bom,!sapl-code-style
	  This command excludes the sapl-bom and sapl-code-style modules. 
          Update the license there manually.
-->
<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>3.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-2025</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>17</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>

		<maven.deploy.skip>true</maven.deploy.skip>
		<docker-registry-url>ghcr.io/heutelbeck</docker-registry-url>

		<!-- Dependencies -->
		<guice.version>5.1.0</guice.version>
		<junit.version>1.11.3</junit.version>
		<xtext.version>2.37.0</xtext.version>
		<jacoco.version>0.8.12</jacoco.version>
		<vaadin.version>24.6.12</vaadin.version>
		<okhttp.version>4.12.0</okhttp.version>
		<rsocket.version>1.1.4</rsocket.version>
		<lombok.version>1.18.38</lombok.version>
		<jupiter.version>5.11.3</jupiter.version>
		<assertj.version>3.26.3</assertj.version>
		<flexmark.version>0.64.8</flexmark.version>
		<springboot.version>3.5.3</springboot.version>
		<reactor-netty.version>1.2.0</reactor-netty.version>
		<spotify.hamcrest.version>1.3.2</spotify.hamcrest.version>
		<json-unit-assertj.version>4.1.0</json-unit-assertj.version>
		<json-schema-validator.version>1.5.4</json-schema-validator.version>

		<!-- Maven Plug-Ins -->
		<tycho.version>4.0.10</tycho.version>
		<sb-contrib.version>7.6.8</sb-contrib.version>
		<spdx-maven-plugin.version>0.7.4</spdx-maven-plugin.version>
		<license-maven-plugin.version>4.6</license-maven-plugin.version>
		<sonar-maven-plugin.version>5.0.0.4389</sonar-maven-plugin.version>
		<maven-failsafe-plugin.version>3.5.2</maven-failsafe-plugin.version>
		<maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
		<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
		<spotbugs-maven-plugin.version>4.8.6.6</spotbugs-maven-plugin.version>
		<sonar.exclusions>**/xtext-gen/**/*,**/xtend-gen/**/*,**/emf-gen/**/*</sonar.exclusions>

		<!-- Base argLine for JDK21+ profiles -->
		<argLine />
	</properties>

	<modules>
		<module>sapl-code-style</module>
		
		<module>sapl-pdp-api</module>
		<module>sapl-extensions-api</module>
		
		<module>pdp-extensions/geo-functions</module>
		<module>pdp-extensions/geo-traccar</module>
		<module>pdp-extensions/input-sanitization-functions</module>
		<module>pdp-extensions/jwt</module>
		<module>pdp-extensions/mqtt-functions</module>
		<module>pdp-extensions/mqtt-pip</module>
		
		<module>sapl-hamcrest</module>
		<module>sapl-assertj</module>
		
		<module>sapl-generator</module>
		<module>sapl-lang</module>
		<module>sapl-ide</module>
		<module>sapl-web</module>
		
		<module>sapl-coverage-api</module>
		<module>sapl-test</module>
		<module>sapl-test-junit</module>
		<module>sapl-test-lang</module>
		<module>sapl-test-ide</module>
		<module>sapl-test-web</module>		
		<module>sapl-maven-plugin</module>

		<module>sapl-bom</module>

		<module>sapl-pdp-embedded</module>
		<module>sapl-pdp-remote</module>

		<module>sapl-spring-pdp-embedded</module>
		<module>sapl-spring-pdp-remote</module>
		<module>sapl-spring-security</module>
		<module>sapl-spring-data-r2dbc</module>
		<module>sapl-spring-data-mongo-reactive</module>
		<module>sapl-spring-data-common</module>

		<module>sapl-language-server</module>
		<module>sapl-eclipse-plugin/sapl-eclipse-ui</module>
		<module>sapl-eclipse-plugin/sapl-test-eclipse-ui</module>
		<module>sapl-eclipse-plugin/sapl-eclipse-target</module>
		<module>sapl-eclipse-plugin/sapl-eclipse-thirdparty</module>
		<module>sapl-eclipse-plugin/sapl-eclipse-feature</module>
		<module>sapl-eclipse-plugin/sapl-eclipse-repository</module>

		<module>sapl-webflux-endpoint</module>
		<module>sapl-rsocket-endpoint</module>
		<module>sapl-vaadin-theme</module>
		<module>sapl-vaadin-editor</module>

		<module>sapl-server-lt</module>
		<module>sapl-server-ce</module>
	</modules>
	<dependencyManagement>
		<dependencies>
			<!-- XText -->
			<dependency>
				<groupId>org.eclipse.xtext</groupId>
				<artifactId>xtext-dev-bom</artifactId>
				<version>${xtext.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.google.inject</groupId>
				<artifactId>guice</artifactId>
				<version>${guice.version}</version>
			</dependency>
			<!-- Testing Scope Dependencies -->
			<dependency>
				<groupId>com.spotify</groupId>
				<artifactId>hamcrest-pojo</artifactId>
				<version>${spotify.hamcrest.version}</version>
			</dependency>
			<dependency>
				<groupId>com.spotify</groupId>
				<artifactId>hamcrest-optional</artifactId>
				<version>${spotify.hamcrest.version}</version>
			</dependency>
			<dependency>
				<groupId>com.spotify</groupId>
				<artifactId>hamcrest-jackson</artifactId>
				<version>${spotify.hamcrest.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>net.javacrumbs.json-unit</groupId>
				<artifactId>json-unit-assertj</artifactId>
				<version>${json-unit-assertj.version}</version>
			</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>org.junit.platform</groupId>
				<artifactId>junit-platform-commons</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.junit.platform</groupId>
				<artifactId>junit-platform-engine</artifactId>
				<version>${junit.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>
			<dependency>
				<groupId>io.projectreactor.netty</groupId>
				<artifactId>reactor-netty</artifactId>
				<version>${reactor-netty.version}</version>
			</dependency>
			<dependency>
				<groupId>io.rsocket</groupId>
				<artifactId>rsocket-bom</artifactId>
				<version>${rsocket.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</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-all</artifactId>
				<version>${flexmark.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>3.6.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>3.7.1</version>
				</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>3.4.2</version>
				</plugin>
				<plugin>
					<groupId>org.eclipse.xtend</groupId>
					<artifactId>xtend-maven-plugin</artifactId>
					<version>${xtext.version}</version>
					<executions>
						<execution>
							<?m2e execute onConfiguration,onIncremental?>
							<goals>
								<goal>compile</goal>
								<goal>xtend-install-debug-info</goal>
								<goal>testCompile</goal>
								<goal>xtend-test-install-debug-info</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<showEmptyDirWarning>false</showEmptyDirWarning>
						<outputDirectory>${basedir}/src/main/xtend-gen</outputDirectory>
						<testOutputDirectory>${basedir}/src/test/xtend-gen</testOutputDirectory>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.4.0</version>
					<configuration>
						<filesets>
							<fileset>
								<directory>${basedir}/src/main/xtend-gen</directory>
								<includes>
									<include>**/*</include>
								</includes>
							</fileset>
							<fileset>
								<directory>${basedir}/src/test/xtend-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</argLine>
						<excludes>
							<exclude>FuzzTests.java</exclude>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.mycila</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>${license-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.spdx</groupId>
					<artifactId>spdx-maven-plugin</artifactId>
					<version>${spdx-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.8.0</version>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<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>
				<!-- This plugin adds checksums during the verify lifecycle
				phase which is required
				for some modules so
				that tycho is able to verify the checksums -->
				<plugin>
					<groupId>net.ju-n.maven.plugins</groupId>
					<artifactId>checksum-maven-plugin</artifactId>
					<version>1.4</version>
					<executions>
						<execution>
							<goals>
								<goal>artifacts</goal>
							</goals>
							<phase>package</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>net.revelc.code.formatter</groupId>
					<artifactId>formatter-maven-plugin</artifactId>
					<version>2.24.1</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>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<licenseSets>
						<licenseSet>
							<header>
								${maven.multiModuleProjectDirectory}/APACHE-2.txt</header>
							<excludes>
								<exclude>**/*.xtendbin</exclude>
								<exclude>**/*._trace</exclude>
								<exclude>**/types.d.ts</exclude>
								<exclude>**/vite.config.ts</exclude>
								<exclude>**/vite.generated.ts</exclude>
								<exclude>**/README</exclude>
								<exclude>**/.clusterfuzzlite/**</exclude>
								<exclude>**/node_modules/**</exclude>
								<exclude>**/frontend/**</exclude>
								<exclude>**/src/test/resources/**</exclude>
								<exclude>**/src/test/xtend-gen/**</exclude>
								<exclude>**/src/test/xtext-gen/**</exclude>
								<exclude>**/src/main/xtend-gen/**</exclude>
								<exclude>**/src/main/xtext-gen/**</exclude>
								<exclude>**/src/main/emf-gen/**</exclude>
								<exclude>**/src/main/bundles/**</exclude>
								<exclude>src/main/resources/**</exclude>
								<exclude>.gitattributes</exclude>
								<exclude>.npmrc</exclude>
								<exclude>.tycho-consumer-pom.xml</exclude>
								<exclude>
									src/main/java/io/sapl/grammar/web/SAPLWebSetup.java</exclude>
								<exclude>
									src/main/java/io/sapl/grammar/web/SAPLWebModule.java</exclude>
								<exclude>
									src/main/java/io/sapl/test/grammar/web/SAPLTestWebSetup.java</exclude>
								<exclude>
									src/main/java/io/sapl/test/grammar/web/SAPLTestWebModule.java</exclude>
								<exclude>model/generated/SAPLTest.ecore</exclude>
								<exclude>model/generated/SAPLTest.genmodel</exclude>
								<exclude>src/asciidoc/sapl-grammar.ebnf</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>
						<xtend>SLASHSTAR_STYLE</xtend>
						<mwe2>SLASHSTAR_STYLE</mwe2>
						<ecore>XML_STYLE</ecore>
						<genmodel>XML_STYLE</genmodel>
						<xtext>SLASHSTAR_STYLE</xtext>
						<config>SCRIPT_STYLE</config>
						<target>XML_STYLE</target>
					</mapping>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonarsource.scanner.maven</groupId>
				<artifactId>sonar-maven-plugin</artifactId>
				<version>${sonar-maven-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-maven-plugin</artifactId>
				<version>${tycho.version}</version>
				<extensions>true</extensions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<target>
						<artifact>
							<groupId>io.sapl</groupId>
							<artifactId>sapl-eclipse-target</artifactId>
							<version>${project.version}</version>
						</artifact>
					</target>
					<environments>
						<environment>
							<os>macosx</os>
							<ws>cocoa</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>win32</os>
							<ws>win32</ws>
							<arch>x86_64</arch>
						</environment>
						<environment>
							<os>linux</os>
							<ws>gtk</ws>
							<arch>x86_64</arch>
						</environment>
					</environments>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-plugin</type>
								<id>org.eclipse.xtext.logging</id>
								<versionRange>1.2.24</versionRange>
							</requirement>
							<!-- to get the org.eclipse.osgi.compatibility.state
							plugin if the target
								platform is Luna or later. (backward compatible with kepler and previous
								versions) see https://bugs.eclipse.org/bugs/show_bug.cgi?id=492149 -->
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.rcp</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<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>
						<version>${jacoco.version}</version>
						<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>
			<activation>
				<jdk>[21,)</jdk>
			</activation>
			<build>
				<pluginManagement>
					<plugins>
						<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
									-Djava.security.manager=allow</argLine>
							</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
									-Djava.security.manager=allow</argLine>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
			</build>
		</profile>
		<profile>
			<id>spotbugs</id>
			<build>
				<plugins>
					<plugin>
						<groupId>com.github.spotbugs</groupId>
						<artifactId>spotbugs-maven-plugin</artifactId>
						<version>${spotbugs-maven-plugin.version}</version>
						<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>
	            <version>0.8.0</version>
	            <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>3.3.1</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>
	            <version>3.11.2</version>
	            <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>
	            <version>3.2.7</version>
	            <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>
		<!-- Central on top here makes sure it has the highest priority. -->
		<repository>
			<id>central</id>
			<url>https://repo.maven.apache.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<name>Central Portal Snapshots</name>
		    <id>central-portal-snapshots</id>
		    <url>https://central.sonatype.com/repository/maven-snapshots/</url>
		    <releases>
		       <enabled>false</enabled>
		    </releases>
		    <snapshots>
		      <enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>geo</id>
			<url> https://repo.osgeo.org/repository/release/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

	<pluginRepositories>
		<!-- Central on top here makes sure it has the highest priority. -->
		<pluginRepository>
			<id>central</id>
			<url>https://repo.maven.apache.org/maven2</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<name>Central Portal Snapshots</name>
		    <id>central-portal-snapshots</id>
		    <url>https://central.sonatype.com/repository/maven-snapshots/</url>
		    <releases>
		       <enabled>false</enabled>
		    </releases>
		    <snapshots>
		      <enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

</project>
