<?xml version="1.0" encoding="UTF-8"?>
<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>de.lars-sh</groupId>
	<artifactId>root</artifactId>
	<version>0.9.9</version>
	<packaging>pom</packaging>

	<name>Root POM</name>
	<description>This POM is meant to be used as root POM. Use de.lars-sh:parent for your own projects.</description>
	<url>https://${parent-pom.github.organization}.github.io/${parent-pom.github.project}/</url>
	<licenses>
		<license>
			<name>MIT License</name>
			<url>https://opensource.org/licenses/MIT</url>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Lars Knickrehm</name>
			<email>mail@lars-sh.de</email>
			<url>https://lars-sh.de/</url>
		</developer>
	</developers>

	<modules>
		<module>parent</module>
		<module>parent-archetype</module>
		<module>utils</module>
		<module>utils-annotations</module>
		<module>utils-test</module>
	</modules>

	<scm>
		<connection>scm:git:git@github.com:${parent-pom.github.organization}/${parent-pom.github.project}.git</connection>
		<developerConnection>scm:git:git@github.com:${parent-pom.github.organization}/${parent-pom.github.project}.git</developerConnection>
		<url>https://github.com/${parent-pom.github.organization}/${parent-pom.github.project}</url>
	</scm>
	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/${parent-pom.github.organization}/${parent-pom.github.project}/issues</url>
	</issueManagement>
	<ciManagement>
		<system>Travis</system>
		<url>https://travis-ci.com/${parent-pom.github.organization}/${parent-pom.github.project}</url>
	</ciManagement>
	<distributionManagement>
		<snapshotRepository>
			<id>sonatype-nexus-snapshots</id>
			<name>Sonatype Nexus Snapshots</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>sonatype-nexus-staging</id>
			<name>Sonatype Nexus Releases</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
		</repository>
	</distributionManagement>

	<properties>
		<!-- Parent POM -->
		<!-- <parent-pom.create-changelog-md>true</parent-pom.create-changelog-md> -->
		<parent-pom.create-gitignore>true</parent-pom.create-gitignore>
		<!-- <parent-pom.create-lombok-config>true</parent-pom.create-lombok-config> -->
		<!-- <parent-pom.create-readme-md>true</parent-pom.create-readme-md> -->
		<!-- <parent-pom.create-source-directories>true</parent-pom.create-source-directories> -->
		<!-- <parent-pom.create-travis-yml>true</parent-pom.create-travis-yml> -->
		<parent-pom.default-sources-folder>lombok</parent-pom.default-sources-folder>
		<parent-pom.github.organization>lars-sh</parent-pom.github.organization>
		<parent-pom.github.project>parent</parent-pom.github.project>

		<!-- Eclipse Configuration -->
		<!-- <eclipse.compiler.codegen.methodParameters>false</eclipse.compiler.codegen.methodParameters> -->
		<eclipse.compiler.javadoc>enabled</eclipse.compiler.javadoc>
		<eclipse.compiler.missingNonNullByDefaultAnnotation>warning</eclipse.compiler.missingNonNullByDefaultAnnotation>
		<eclipse.compiler.nonnull.secondary></eclipse.compiler.nonnull.secondary>
		<eclipse.compiler.nonnullbydefault.secondary></eclipse.compiler.nonnullbydefault.secondary>
		<eclipse.compiler.nullAnalysis>enabled</eclipse.compiler.nullAnalysis>
		<eclipse.compiler.nullable.secondary>edu.umd.cs.findbugs.annotations.CheckForNull</eclipse.compiler.nullable.secondary>
		<eclipse.compiler.potentialNullReference>error</eclipse.compiler.potentialNullReference>

		<!-- Plugins -->
		<aggregate>true</aggregate>
		<checkstyle.config.location>${project.build.directory}/checkstyle.xml</checkstyle.config.location>
		<checkstyle.consoleOutput>true</checkstyle.consoleOutput>
		<cpd.aggregate>false</cpd.aggregate>
		<!-- <cpd.excludeFromFailureFile>${project.basedir}/cpd-excludes.csv</cpd.excludeFromFailureFile> -->
		<cpd.printFailingErrors>true</cpd.printFailingErrors>
		<dependency.failOnWarning>true</dependency.failOnWarning>
		<enforcer.requiredMavenVersion>3.3.9</enforcer.requiredMavenVersion>
		<formatter.cachedir>${project.build.directory}/formatter-cache</formatter.cachedir>
		<formatter.configFile>${project.build.directory}/formatter.xml</formatter.configFile>
		<formatter.lineEnding>LF</formatter.lineEnding>
		<jar.manifest.addClasspath>true</jar.manifest.addClasspath>
		<jar.manifest.addDefaultImplementationEntries>true</jar.manifest.addDefaultImplementationEntries>
		<jar.manifest.addDefaultSpecificationEntries>true</jar.manifest.addDefaultSpecificationEntries>
		<jar.manifest.mainClass></jar.manifest.mainClass>
		<jar.skipIfEmpty>true</jar.skipIfEmpty>
		<javadoc.quiet>true</javadoc.quiet>
		<maven.compiler.failOnWarning>true</maven.compiler.failOnWarning>
		<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
		<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.javadoc.failOnWarnings>true</maven.javadoc.failOnWarnings>
		<maven.version.rules>file:///${project.build.directory}/versions-ruleset.xml</maven.version.rules>
		<nexus-staging.autoReleaseAfterClose>true</nexus-staging.autoReleaseAfterClose>
		<pmd.aggregate>false</pmd.aggregate>
		<pmd-only.excludeFromFailureFile>${project.basedir}/pmd-excludes.properties</pmd-only.excludeFromFailureFile>
		<pmd-only.printFailingErrors>true</pmd-only.printFailingErrors>
		<pmd-only.ruleset>${project.build.directory}/pmd-ruleset.xml</pmd-only.ruleset>
		<pmd.analysisCache>true</pmd.analysisCache>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<shade.dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</shade.dependencyReducedPomLocation>
		<shade.packageDependenciesPhase>none</shade.packageDependenciesPhase>
		<spotbugs.effort>Max</spotbugs.effort>
		<spotbugs.excludeFilterFile>${spotbugs.excludeFilterFile.user}${spotbugs.excludeFilterFile.fix-jdk11-and-later}</spotbugs.excludeFilterFile>
		<spotbugs.excludeFilterFile.fix-jdk11-and-later></spotbugs.excludeFilterFile.fix-jdk11-and-later>
		<!-- <spotbugs.excludeFilterFile.user></spotbugs.excludeFilterFile.user> -->
		<spotbugs.threshold>Low</spotbugs.threshold>

		<!-- Versions: Dependencies -->
		<assertj-core.version>3.16.1</assertj-core.version>
		<joor.version>0.9.13</joor.version>
		<junit-jupiter-api.version>5.6.2</junit-jupiter-api.version>
		<junit-jupiter-engine.version>5.6.2</junit-jupiter-engine.version>
		<lombok-annotations.version>1.18.12</lombok-annotations.version>
		<mockito.version>3.5.2</mockito.version>
		<parent.version>0.9.9</parent.version>

		<!-- Versions: Plugins -->
		<build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
		<formatter-maven-plugin.version>2.12.1</formatter-maven-plugin.version>
		<jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
		<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
		<lombok-maven-plugin.version>1.18.12.0</lombok-maven-plugin.version>
		<maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
		<maven-archetype-plugin.version>3.2.0</maven-archetype-plugin.version>
		<maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version>
		<maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version>
		<maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
		<maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
		<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
		<maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<maven-install-plugin.version>2.5.2</maven-install-plugin.version>
		<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
		<maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
		<maven-jxr-plugin.version>3.0.0</maven-jxr-plugin.version>
		<maven-plugin-plugin.version>3.6.0</maven-plugin-plugin.version>
		<maven-pmd-plugin.version>3.13.0</maven-pmd-plugin.version>
		<maven-project-info-reports-plugin.version>3.1.0</maven-project-info-reports-plugin.version>
		<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
		<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
		<maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
		<maven-site-plugin.version>3.9.1</maven-site-plugin.version>
		<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
		<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
		<maven-surefire-report-plugin.version>2.22.2</maven-surefire-report-plugin.version>
		<nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
		<spotbugs-maven-plugin.version>4.0.4</spotbugs-maven-plugin.version>
		<tidy-maven-plugin.version>1.1.0</tidy-maven-plugin.version>
		<versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>

		<!-- Versions: Plugin Dependencies -->
		<apache-ant.version>1.10.8</apache-ant.version>
		<checkstyle.version>8.35</checkstyle.version>
		<sb-contrib.version>7.4.7</sb-contrib.version>
		<findsecbugs.version>1.10.1</findsecbugs.version>
		<lombok.version>1.18.12</lombok.version>
		<org-eclipse-jdt-core.version>3.22.0</org-eclipse-jdt-core.version>
		<pmd.version>6.26.0</pmd.version>
		<spotbugs.version>4.1.2</spotbugs.version>
		<spotbugs-annotations.version>4.1.2</spotbugs-annotations.version>

		<!-- Versions: Reporting Skins -->
		<maven-fluido-skin.version>1.9</maven-fluido-skin.version>
	</properties>

	<dependencyManagement>
		<!-- These dependency definitions should not change anything but forcing the
			Maven Dependency Plugin to check their versions. -->
		<dependencies>
			<!-- Plugin Dependencies -->
			<dependency>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs</artifactId>
				<version>${spotbugs.version}</version>
			</dependency>
			<dependency>
				<groupId>com.puppycrawl.tools</groupId>
				<artifactId>checkstyle</artifactId>
				<version>${checkstyle.version}</version>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.pmd</groupId>
				<artifactId>pmd-core</artifactId>
				<version>${pmd.version}</version>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.pmd</groupId>
				<artifactId>pmd-java</artifactId>
				<version>${pmd.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.ant</groupId>
				<artifactId>ant</artifactId>
				<version>${apache-ant.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jdt</groupId>
				<artifactId>org.eclipse.jdt.core</artifactId>
				<version>${org-eclipse-jdt-core.version}</version>
			</dependency>
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
			</dependency>

			<!-- Skins -->
			<dependency>
				<groupId>org.apache.maven.skins</groupId>
				<artifactId>maven-fluido-skin</artifactId>
				<version>${maven-fluido-skin.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- Provided -->
		<dependency>
			<groupId>com.github.spotbugs</groupId>
			<artifactId>spotbugs-annotations</artifactId>
			<version>${spotbugs-annotations.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj-core.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jooq</groupId>
			<artifactId>joor-java-8</artifactId>
			<version>${joor.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>${junit-jupiter-api.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit-jupiter-engine.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>${project.basedir}</directory>
				<targetPath>META-INF</targetPath>
				<includes>
					<include>CHANGELOG.md</include>
					<include>LICENSE.txt</include>
					<include>README.md</include>
				</includes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
			</testResource>
			<testResource>
				<directory>${project.basedir}</directory>
				<targetPath>META-INF</targetPath>
				<includes>
					<include>CHANGELOG.md</include>
					<include>LICENSE.txt</include>
					<include>README.md</include>
				</includes>
			</testResource>
		</testResources>
		<pluginManagement>
			<plugins>
				<!-- Maven -->
				<plugin>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>${maven-antrun-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.ant</groupId>
							<artifactId>ant</artifactId>
							<version>${apache-ant.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<artifactId>maven-archetype-plugin</artifactId>
					<version>${maven-archetype-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${maven-assembly-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>${maven-checkstyle-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>${checkstyle.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<sourceDirectories>
							<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/test/java</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/main/lombok</sourceDirectory>
							<sourceDirectory>${project.basedir}/src/test/lombok</sourceDirectory>
						</sourceDirectories>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${maven-clean-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${maven-dependency-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${maven-enforcer-plugin.version}</version>
					<configuration>
						<rules>
							<requireMavenVersion>
								<version>${enforcer.requiredMavenVersion}</version>
							</requireMavenVersion>
						</rules>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${maven-gpg-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>${maven-install-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin.version}</version>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>${jar.manifest.addClasspath}</addClasspath>
								<addDefaultImplementationEntries>${jar.manifest.addDefaultImplementationEntries}</addDefaultImplementationEntries>
								<addDefaultSpecificationEntries>${jar.manifest.addDefaultSpecificationEntries}</addDefaultSpecificationEntries>
								<mainClass>${jar.manifest.mainClass}</mainClass>
							</manifest>
						</archive>
						<skipIfEmpty>${jar.skipIfEmpty}</skipIfEmpty>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
					<configuration>
						<quiet>${javadoc.quiet}</quiet>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-jxr-plugin</artifactId>
					<version>${maven-jxr-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>${maven-plugin-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>${maven-pmd-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>net.sourceforge.pmd</groupId>
							<artifactId>pmd-core</artifactId>
							<version>${pmd.version}</version>
						</dependency>
						<dependency>
							<groupId>net.sourceforge.pmd</groupId>
							<artifactId>pmd-java</artifactId>
							<version>${pmd.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<artifactId>maven-project-info-reports-plugin</artifactId>
					<version>${maven-project-info-reports-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-release-plugin</artifactId>
					<version>${maven-release-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven-resources-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-shade-plugin</artifactId>
					<version>${maven-shade-plugin.version}</version>
					<configuration>
						<dependencyReducedPomLocation>${shade.dependencyReducedPomLocation}</dependencyReducedPomLocation>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-site-plugin</artifactId>
					<version>${maven-site-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-report-plugin</artifactId>
					<version>${maven-surefire-report-plugin.version}</version>
				</plugin>

				<!-- Others -->
				<plugin>
					<groupId>com.github.spotbugs</groupId>
					<artifactId>spotbugs-maven-plugin</artifactId>
					<version>${spotbugs-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>com.github.spotbugs</groupId>
							<artifactId>spotbugs</artifactId>
							<version>${spotbugs.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<plugins>
							<plugin>
								<groupId>com.h3xstream.findsecbugs</groupId>
								<artifactId>findsecbugs-plugin</artifactId>
								<version>${findsecbugs.version}</version>
							</plugin>
							<plugin>
								<groupId>com.mebigfatguy.sb-contrib</groupId>
								<artifactId>sb-contrib</artifactId>
								<version>${sb-contrib.version}</version>
							</plugin>
						</plugins>
					</configuration>
				</plugin>
				<plugin>
					<groupId>net.revelc.code.formatter</groupId>
					<artifactId>formatter-maven-plugin</artifactId>
					<version>${formatter-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.eclipse.jdt</groupId>
							<artifactId>org.eclipse.jdt.core</artifactId>
							<version>${org-eclipse-jdt-core.version}</version>
						</dependency>
					</dependencies>
					<configuration>
						<cachedir>${formatter.cachedir}</cachedir>
						<configFile>${formatter.configFile}</configFile>
						<directories>
							<directory>${project.basedir}/src/main/java</directory>
							<directory>${project.basedir}/src/test/java</directory>
							<directory>${project.basedir}/src/main/lombok</directory>
							<directory>${project.basedir}/src/test/lombok</directory>
						</directories>
						<lineEnding>${formatter.lineEnding}</lineEnding>
					</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.codehaus.mojo</groupId>
					<artifactId>tidy-maven-plugin</artifactId>
					<version>${tidy-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>${versions-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco-maven-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok-maven-plugin</artifactId>
					<version>${lombok-maven-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
							<version>${lombok.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.sonatype.plugins</groupId>
					<artifactId>nexus-staging-maven-plugin</artifactId>
					<version>${nexus-staging-maven-plugin.version}</version>
					<configuration>
						<serverId>sonatype-nexus-staging</serverId>
						<nexusUrl>https://oss.sonatype.org/</nexusUrl>
						<autoReleaseAfterClose>${nexus-staging.autoReleaseAfterClose}</autoReleaseAfterClose>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- Require certain maven version -->
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>enforce</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Check for tidied up pom.xml -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>tidy-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>validate</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<!-- configure-project -->
					<execution>
						<id>configure-project</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<exportAntProperties>true</exportAntProperties>
							<target>
								<condition property="parent-pom.create-changelog-md" value="false" else="true">
									<available file="${project.basedir}/CHANGELOG.md" />
								</condition>
								<condition property="parent-pom.create-readme-md" value="false" else="true">
									<available file="${project.basedir}/README.md" />
								</condition>
								<condition property="parent-pom.create-source-directories" value="false" else="true">
									<or>
										<equals arg1="${project.packaging}" arg2="maven-archetype" />
										<equals arg1="${project.packaging}" arg2="pom" />
									</or>
								</condition>
								<condition property="parent-pom.create-travis-yml" value="false" else="true">
									<and>
										<equals arg1="${project.groupId}" arg2="de.lars-sh" />
										<or>
											<equals arg1="${project.artifactId}" arg2="parent" />
											<equals arg1="${project.artifactId}" arg2="root" />
										</or>
									</and>
								</condition>
								<condition property="parent-pom.create-lombok-config" value="false" else="true">
									<or>
										<equals arg1="${project.packaging}" arg2="maven-archetype" />
										<equals arg1="${project.packaging}" arg2="pom" />
									</or>
								</condition>
								<condition property="spotbugs.excludeFilterFile.user" value="${project.basedir}/spotbugs-excludes.xml," else="">
									<available file="${project.basedir}/spotbugs-excludes.xml" />
								</condition>
								<condition property="cpd.excludeFromFailureFile" value="${project.basedir}/cpd-excludes.csv" else="">
									<available file="${project.basedir}/cpd-excludes.csv" />
								</condition>
								<condition property="eclipse.compiler.codegen.methodParameters" value="generate" else="do not generate">
									<equals arg1="${maven.compiler.parameters}" arg2="true" />
								</condition>

								<!-- checkstyle.xml -->
								<echo level="info" message="Update checkstyle.xml" />
								<echo file="${project.build.directory}/checkstyle.xml">&lt;!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd"&gt;</echo>
								<echoxml file="${project.build.directory}/checkstyle.xml" append="true">
									<module name="Checker">
										<property name="localeCountry" value="US" />
										<property name="localeLanguage" value="en" />
										<property name="charset" value="UTF-8" />

										<!-- File Filters -->
										<module name="SuppressionFilter">
											<property name="file" value="${project.basedir}/checkstyle-suppressions.xml" />
											<property name="optional" value="true" />
										</module>
										<module name="SuppressWarningsFilter" />

										<!-- Filters: package-info.java -->
										<module name="SuppressionSingleFilter">
											<property name="id" value="XNonNullByDefaultAnnotation" />
											<property name="files" value="^.*[/\\](?!package-info\.java)[^/\\]+$" />
										</module>

										<!-- Filters: Unit Tests -->
										<module name="SuppressionSingleFilter">
											<property name="checks" value="ExecutableStatementCount|JavadocPackage|JavadocVariable|MagicNumber|MethodLength|MultipleStringLiterals" />
											<property name="files" value="^(.*[/\\])?src[/\\]test[/\\].*$" />
										</module>

										<!-- Filters: Lombok -->
										<module name="SuppressionSingleFilter">
											<property name="checks" value="FinalClass|HideUtilityClassConstructor|MissingCtor|MutableException|VisibilityModifier" />
											<property name="files" value="^(.*[/\\])?src[/\\](main|test)[/\\]lombok[/\\].*$" />
										</module>

										<!-- Javadoc Comments -->
										<module name="JavadocPackage" />

										<!-- Miscellaneous -->
										<module name="NewlineAtEndOfFile">
											<property name="lineSeparator" value="lf" />
											<property name="fileExtensions" value="java" />
										</module>
										<module name="Translation" />
										<module name="UniqueProperties" />

										<!-- Regexp -->
										<module name="RegexpMultiline">
											<property name="id" value="XCheckForNullAnnotation" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}final\s([^,\(\);]*\s)?@\s*(edu\s*\.\s*umd\s*\.\s*cs\s*\.\s*findbugs\s*\.\s*annotations\s*\.\s*)?CheckForNull\s" />
											<property name="message" value="@CheckForNull should precede keyword &quot;final&quot;." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XCollectionsEmptyConstants" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}Collections\s*\.\s*EMPTY_(LIST|MAP|SET)\P{javaJavaIdentifierPart}" />
											<property name="message" value="Collections.EMPTY_LIST, EMPTY_MAP and EMPTY_SET shall not be used. Use Collections.emptyList(), emptyMap() and emptySet() instead." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XFinalsConstant" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="[^\p{javaJavaIdentifierPart}\s]\s*(public\s+|protected\s+|)(static\s+final|final\s+static)\s+\S+\s+\S+\s*=\s*(['&quot;0-9\.+\-]|(true|false)\P{javaJavaIdentifierPart})" />
											<property name="message" value="String and primitive constants should use Finals.constant." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XFinalsConstantPrivate" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}private\s+static\s+final\s+\S+\s+\S+\s*=\s*(de\s*\.\s*larssh\s*\.\s*utils\s*\.\s*)?(Finals\s*\.\s*)?constant\s*\(" />
											<property name="message" value="Finals.constant should not be used for private constants." />
										</module>
										<module name="RegexpSingleline">
											<property name="id" value="XLineTabIndentation" />
											<property name="fileExtensions" value="config,java,properties,xml" />
											<property name="format" value="^\t* [^*]" />
											<property name="message" value="Line does not use tab indentation." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XNullableAnnotation" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}final\s([^,\(\)\{;]*\s)?@\s*(edu\s*\.\s*umd\s*\.\s*cs\s*\.\s*findbugs\s*\.\s*annotations\s*\.\s*)?Nullable\s" />
											<property name="message" value="@Nullable should precede keyword &quot;final&quot;." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XOptionalDouble" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Double\s*&gt;" />
											<property name="message" value="Optional&lt;Double&gt; must not be used. Use OptionalDouble instead." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XOptionalInteger" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Integer\s*&gt;" />
											<property name="message" value="Optional&lt;Integer&gt; must not be used. Use OptionalInt instead." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XOptionalLong" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}Optional\s*&lt;\s*Long\s*&gt;" />
											<property name="message" value="Optional&lt;Long&gt; must not be used. Use OptionalLong instead." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XPatternSplit" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\.\s*split\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))++\s*\)" />
											<property name="message" value="String.split and Pattern.split(input) must not be used. Use Pattern.split(input, limit) instead and think about the limit. Use StringLimit.NONE to not discard trailing empty strings." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XStringMatches" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\.\s*matches\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))++\s*\)" />
											<property name="message" value="String.matches must not be used. Use Strings.matches instead. This is likely to be a false positive if String.matches is not called." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XStringReplaceAll" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="&quot;\s*\.\s*replaceAll\s*\(|(?!\P{javaJavaIdentifierPart}Strings).{8}\.\s*replaceAll\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))*+\s*," />
											<property name="message" value="String.replaceAll must not be used. Use Strings.replaceAll instead. This is likely to be a false positive if String.replaceAll is not called." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XStringReplaceFirst" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="&quot;\s*\.\s*replaceFirst\s*\(|(?!\P{javaJavaIdentifierPart}Strings).{8}\.\s*replaceFirst\s*\(\s*([^&quot;\(,\)]+|&quot;([^\\&quot;]+|\\.)*&quot;|\([^\)]*\))*+\s*," />
											<property name="message" value="String.replaceFirst must not be used. Use Strings.replaceFirst instead. This is likely to be a false positive if String.replaceFirst is not called." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XStringSplit" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="&quot;\s*\.\s*split\s*\(" />
											<property name="message" value="String.split must not be used. Use Pattern.split(input, limit) instead. This is likely to be a false positive if String.split is not called." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XSuperWithoutParameters" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="\P{javaJavaIdentifierPart}super\s*\(\s*\)" />
											<property name="message" value="Avoid using super() as it is called implicitly." />
										</module>
										<module name="RegexpMultiline">
											<property name="id" value="XSuppressFBWarnings" />
											<property name="fileExtensions" value="java" />
											<property name="format" value="@\s*SuppressFBWarnings\s*\(((?![^)]*\s*justification\s*=)|[^)]*\s*justification\s*=\s*&quot;(\s*|TODO)&quot;)" />
											<property name="message" value="SuppressFBWarnings requires justification parameter. It must not be empty or TODO." />
										</module>

										<!-- Size Violations -->
										<module name="FileLength" />

										<module name="TreeWalker">
											<property name="tabWidth" value="4" />

											<!-- Annotations -->
											<module name="AnnotationLocation">
												<property name="allowSamelineSingleParameterlessAnnotation" value="false" />
											</module>
											<module name="AnnotationUseStyle" />
											<module name="MissingDeprecated" />
											<module name="MissingOverride" />
											<module name="SuppressWarnings">
												<!--
												The list of disallowed SuppressWarnings matches the warnings supported by Eclipse JDTs Compiler
												* see https://help.eclipse.org/index.jsp?topic=/org.eclipse.jdt.doc.user/tasks/task-suppress_warnings.htm
												* except "deprecation", "null", "unchecked" and "unused"
												* plus "PMD"
												-->
												<property name="format" value="^(all|boxing|cast|fallthrough|finally|hiding|incomplete-switch|nls|PMD|rawtypes|resource|restriction|restriction|removal|serial|static-access|static-method|super|synthetic-access|sync-override|unqualified-field-access|unlikely-arg-type)$" />
											</module>
											<module name="SuppressWarningsHolder" />

											<!-- Block Checks -->
											<module name="AvoidNestedBlocks" />
											<module name="EmptyBlock">
												<property name="option" value="text" />
											</module>
											<module name="EmptyCatchBlock">
												<property name="exceptionVariableName" value="ignore" />
											</module>
											<module name="LeftCurly" />
											<module name="NeedBraces">
												<property name="allowSingleLineStatement" value="true" />
											</module>
											<module name="RightCurly" />

											<!-- Class Design -->
											<module name="FinalClass" />
											<module name="HideUtilityClassConstructor" />
											<module name="InnerTypeLast" />
											<module name="InterfaceIsType" />
											<module name="MutableException" />
											<module name="OneTopLevelClass" />
											<module name="ThrowsCount" />
											<module name="VisibilityModifier" />

											<!-- Coding -->
											<module name="AvoidNoArgumentSuperConstructorCall" />
											<module name="CovariantEquals" />
											<module name="DefaultComesLast">
												<property name="skipIfLastAndSharedWithCase" value="true" />
											</module>
											<module name="EmptyStatement" />
											<module name="EqualsHashCode" />
											<module name="FallThrough">
												<property name="checkLastCaseGroup" value="true" />
											</module>
											<module name="FinalLocalVariable">
												<property name="validateEnhancedForLoopVariable" value="true" />
												<property name="tokens" value="VARIABLE_DEF, PARAMETER_DEF" />
											</module>
											<module name="IllegalCatch">
												<property name="id" value="XIllegalCatchDefault" />
											</module>
											<module name="IllegalCatch">
												<property name="id" value="XIllegalCatchCustom" />
												<property name="illegalClassNames" value="java.lang.NullPointerException" />
											</module>
											<module name="IllegalInstantiation">
												<property name="classes" value="java.lang.StringBuffer, java.util.Hashtable, java.util.Vector, org.xml.sax.SAXException, org.xml.sax.SAXParseException" />
											</module>
											<module name="IllegalThrows" />
											<module name="IllegalToken">
												<property name="tokens" value="BAND, BOR, DEC, EMPTY_STAT, INC, LABELED_STAT, LITERAL_ASSERT, LITERAL_BREAK, LITERAL_CONTINUE, UNARY_PLUS" />
											</module>
											<module name="IllegalTokenText">
												<property name="format" value="^(ASCII|ISO-8859-1|US-ASCII|UTF-16|UTF-16BE|UTF-16LE|UTF-8)$" />
												<property name="ignoreCase" value="true" />
												<property name="message" value="Consider using StandardCharsets instead of charset strings." />
												<property name="tokens" value="STRING_LITERAL" />
											</module>
											<module name="IllegalType">
												<property name="id" value="XIllegalTypeDefault" />
												<property name="tokens" value="ANNOTATION_FIELD_DEF, INTERFACE_DEF, METHOD_CALL, METHOD_DEF, METHOD_REF, PARAMETER_DEF, VARIABLE_DEF" />
											</module>
											<module name="IllegalType">
												<property name="id" value="XIllegalTypeCustom" />
												<property name="illegalClassNames" value="java.lang.StringBuffer, StringBuffer" />
												<property name="tokens" value="ANNOTATION_FIELD_DEF, INTERFACE_DEF, METHOD_CALL, METHOD_DEF, METHOD_REF, PARAMETER_DEF, VARIABLE_DEF" />
											</module>
											<module name="InnerAssignment" />
											<module name="MagicNumber">
												<property name="ignoreHashCodeMethod" value="true" />
											</module>
											<module name="MissingCtor" />
											<module name="MissingSwitchDefault" />
											<module name="MultipleStringLiterals">
												<property name="ignoreStringsRegexp" value="^&quot;(|.+ is marked @NonNull but is null)&quot;$" />
												<property name="ignoreOccurrenceContext" value="ANNOTATION, STATIC_INIT" />
											</module>
											<module name="MultipleVariableDeclarations" />
											<module name="NoArrayTrailingComma" />
											<module name="NoClone" />
											<module name="NoEnumTrailingComma" />
											<module name="NoFinalizer" />
											<module name="OneStatementPerLine">
												<property name="treatTryResourcesAsStatement" value="true" />
											</module>
											<module name="OverloadMethodsDeclarationOrder" />
											<module name="PackageDeclaration" />
											<module name="ParameterAssignment" />
											<module name="SimplifyBooleanExpression" />
											<module name="SimplifyBooleanReturn" />
											<module name="StringLiteralEquality" />
											<module name="SuperClone" />
											<module name="SuperFinalize" />
											<module name="UnnecessaryParentheses" />
											<module name="UnnecessarySemicolonAfterOuterTypeDeclaration" />
											<module name="UnnecessarySemicolonAfterTypeMemberDeclaration" />
											<module name="UnnecessarySemicolonInTryWithResources" />
											<module name="VariableDeclarationUsageDistance" />

											<!-- Filters -->
											<module name="SuppressionXpathFilter">
												<property name="file" value="${project.basedir}/checkstyle-suppressions.xml" />
												<property name="optional" value="true" />
											</module>

											<!-- Filters: Allow postfix incrementor and decrementor inside for iterators -->
											<module name="SuppressionXpathSingleFilter">
												<property name="checks" value="DescendantToken" />
												<property name="query" value="//FOR_ITERATOR/descendant-or-self::node()" />
											</module>

											<!-- Filters: Allow break statements as last statement inside case -->
											<module name="SuppressionXpathSingleFilter">
												<property name="checks" value="IllegalToken" />
												<property name="query" value="//CASE_GROUP[LITERAL_CASE]/SLIST/LITERAL_BREAK[last()]" />
											</module>

											<!-- Filters: Allow multi catch while disallowing bitwise OR -->
											<module name="SuppressionXpathSingleFilter">
												<property name="checks" value="IllegalToken" />
												<property name="query" value="//LITERAL_CATCH/PARAMETER_DEF//BOR" />
											</module>

											<!-- Filters: Allow magic numbers inside static initialization blocks -->
											<module name="SuppressionXpathSingleFilter">
												<property name="checks" value="MagicNumber" />
												<property name="query" value="//STATIC_INIT/descendant-or-self::node()" />
											</module>

											<!-- Filters: Lombok: Allow @Tostring.Include member "rank" to have any magic number -->
											<module name="SuppressionXpathSingleFilter">
												<property name="checks" value="MagicNumber" />
												<property name="query" value="//ANNOTATION[DOT[IDENT[@text = 'ToString'] and IDENT[@text = 'Include']]]/ANNOTATION_MEMBER_VALUE_PAIR[IDENT[@text = 'rank']]/descendant-or-self::node()" />
											</module>

											<!-- Headers -->
											<!-- none -->

											<!-- Imports -->
											<module name="AvoidStarImport" />
											<module name="IllegalImport" />
											<module name="ImportOrder">
												<property name="option" value="top" />
												<property name="groups" value="java., javax., org., com." />
												<property name="separated" value="true" />
												<property name="separatedStaticGroups" value="true" />
												<property name="caseSensitive" value="true" />
												<property name="sortStaticImportsAlphabetically" value="true" />
											</module>
											<module name="RedundantImport" />
											<module name="UnusedImports">
												<property name="processJavadoc" value="false" />
											</module>

											<!-- Javadoc Comments -->
											<module name="AtclauseOrder" />
											<module name="InvalidJavadocPosition" />
											<module name="JavadocBlockTagLocation" />
											<module name="JavadocContentLocationCheck" />
											<module name="JavadocMethod" />
											<module name="JavadocMissingWhitespaceAfterAsteriskCheck" />
											<module name="JavadocParagraph">
												<property name="allowNewlineParagraph" value="false" />
											</module>
											<module name="JavadocStyle">
												<property name="checkFirstSentence" value="false" />
												<property name="checkEmptyJavadoc" value="true" />
											</module>
											<module name="JavadocTagContinuationIndentation" />
											<module name="JavadocType" />
											<module name="JavadocVariable" />
											<module name="MissingJavadocMethod">
												<property name="allowedAnnotations" value="" />
												<property name="scope" value="private" />
											</module>
											<module name="MissingJavadocPackage" />
											<module name="MissingJavadocType">
												<property name="scope" value="private" />
											</module>
											<module name="NonEmptyAtclauseDescription" />
											<module name="SingleLineJavadoc" />

											<!-- Metrics -->
											<!-- none -->

											<!-- Miscellaneous -->
											<module name="ArrayTypeStyle" />
											<module name="AvoidDoubleBraceInitialization" />
											<module name="AvoidEscapedUnicodeCharacters">
												<property name="allowEscapesForControlCharacters" value="true" />
												<property name="allowByTailComment" value="true" />
												<property name="allowNonPrintableEscapes" value="true" />
											</module>
											<module name="CommentsIndentation" />
											<module name="DescendantToken">
												<property name="tokens" value="ANNOTATION, ASSIGN, BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN, DIV_ASSIGN, DO_WHILE, ELIST, FOR_EACH_CLAUSE, LAMBDA, LITERAL_ASSERT, LITERAL_CASE, LITERAL_IF, LITERAL_RETURN, LITERAL_WHILE, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, QUESTION, SL_ASSIGN, SR_ASSIGN, STAR_ASSIGN" />
												<property name="limitedTokens" value="POST_DEC, POST_INC" />
												<property name="maximumNumber" value="0" />
												<property name="maximumMessage" value="The return value of the operators ++ and -- should not be used as they lead to hardly readable code." />
											</module>
											<module name="FinalParameters">
												<property name="tokens" value="METHOD_DEF, CTOR_DEF, LITERAL_CATCH, FOR_EACH_CLAUSE" />
											</module>
											<module name="Indentation">
												<property name="caseIndent" value="0" />
												<property name="throwsIndent" value="8" />
												<property name="arrayInitIndent" value="8" />
												<property name="lineWrappingIndentation" value="8" />
											</module>
											<module name="NoCodeInFile" />
											<module name="OuterTypeFilename" />
											<module name="TodoComment">
												<property name="format" value="^\s*(TODO|XXX|FIXME).*" />
												<property name="severity" value="info" />
											</module>
											<module name="TrailingComment">
												<property name="format" value="^(.*,)?\s*$" />
												<property name="legalComment" value="^|TODO$" />
											</module>
											<module name="UncommentedMain" />
											<module name="UpperEll" />

											<!-- Modifiers -->
											<module name="ModifierOrder" />
											<module name="RedundantModifier" />

											<!-- Naming Conventions -->
											<module name="AbbreviationAsWordInName">
												<property name="ignoreStatic" value="false" />
											</module>
											<module name="CatchParameterName" />
											<module name="ClassTypeParameterName" />
											<module name="ConstantName" />
											<module name="InterfaceTypeParameterName" />
											<module name="LambdaParameterName" />
											<module name="LocalFinalVariableName" />
											<module name="LocalVariableName" />
											<module name="MemberName" />
											<module name="MethodName" />
											<module name="MethodTypeParameterName" />
											<module name="PackageName" />
											<module name="ParameterName">
												<property name="format" value="^(?!arg\d*$)[a-z][a-zA-Z0-9]*$" />
											</module>
											<module name="StaticVariableName" />
											<module name="TypeName" />

											<!-- Regexp -->
											<module name="RegexpSinglelineJava">
												<property name="id" value="XLineTrailingSpaces" />
												<property name="format" value="\s+$" />
												<property name="message" value="Line has trailing spaces." />
											</module>
											<module name="RegexpSinglelineJava">
												<property name="id" value="XNonNullByDefaultAnnotation" />
												<property name="format" value="@\s*(de\s*\.\s*larssh\s*\.\s*utils\s*\.\s*annotations\s*\.\s*)?NonNullByDefault(\P{javaJavaIdentifierPart}|$)" />
												<property name="message" value="Package is not annotated with @NonNullByDefault. Package definitions inside package-info.java files shall be annotated with @NonNullByDefault to avoid default nullness." />
												<property name="minimum" value="1" />
												<property name="maximum" value="1" />
												<property name="ignoreComments" value="true" />
											</module>

											<!-- Size Violations -->
											<module name="AnonInnerLength" />
											<module name="ExecutableStatementCount" />
											<module name="MethodLength" />
											<module name="OuterTypeNumber" />
											<module name="ParameterNumber">
												<property name="ignoreOverriddenMethods" value="true" />
											</module>

											<!-- Whitespace -->
											<module name="EmptyForInitializerPad" />
											<module name="EmptyForIteratorPad" />
											<module name="EmptyLineSeparator">
												<property name="allowNoEmptyLineBetweenFields" value="true" />
												<property name="allowMultipleEmptyLines" value="false" />
												<property name="allowMultipleEmptyLinesInsideClassMembers" value="false" />
												<property name="tokens" value="IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
											</module>
											<module name="GenericWhitespace" />
											<module name="MethodParamPad" />
											<module name="NoLineWrap" />
											<module name="NoWhitespaceAfter">
												<property name="tokens" value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP, METHOD_REF" />
											</module>
											<module name="NoWhitespaceBefore">
												<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, GENERIC_END, ELLIPSIS, LABELED_STAT" />
											</module>
											<module name="OperatorWrap">
												<property name="option" value="nl" />
												<property name="tokens" value="QUESTION, COLON, EQUAL, NOT_EQUAL, DIV, PLUS, MINUS, STAR, MOD, SR, BSR, GE, GT, SL, LE, LT, BXOR, BOR, LOR, BAND, LAND, LITERAL_INSTANCEOF, TYPE_EXTENSION_AND, ASSIGN, DIV_ASSIGN, PLUS_ASSIGN, MINUS_ASSIGN, STAR_ASSIGN, MOD_ASSIGN, SR_ASSIGN, BSR_ASSIGN, SL_ASSIGN, BXOR_ASSIGN, BOR_ASSIGN, BAND_ASSIGN, METHOD_REF" />
											</module>
											<module name="ParenPad" />
											<module name="SeparatorWrap">
												<property name="id" value="XSeparatorWrapEndOfLine" />
												<property name="option" value="eol" />
												<property name="tokens" value="COMMA, ELLIPSIS, SEMI" />
											</module>
											<module name="SeparatorWrap">
												<property name="id" value="XSeparatorWrapNextLine" />
												<property name="option" value="nl" />
												<property name="tokens" value="AT, DOT" />
											</module>
											<module name="SingleSpaceSeparator">
												<property name="validateComments" value="true" />
											</module>
											<module name="TypecastParenPad" />
											<module name="WhitespaceAfter" />
											<module name="WhitespaceAround">
												<property name="allowEmptyConstructors" value="true" />
												<property name="ignoreEnhancedForColon" value="false" />
											</module>
										</module>
									</module>
								</echoxml>

								<!-- formatter.xml -->
								<echo level="info" message="Update formatter.xml" />
								<echoxml file="${project.build.directory}/formatter.xml">
									<profiles version="18">
										<profile kind="CodeFormatterProfile" name="de.lars-sh" version="19">
											<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647" />
											<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="81" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="48" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line" />
											<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80" />
											<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2" />
											<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2" />
											<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off" />
											<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on" />
											<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert" />
											<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_if_empty" />
											<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120" />
											<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="-1" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines" />
											<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab" />
											<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4" />
											<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0" />
											<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true" />
											<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true" />
										</profile>
									</profiles>
								</echoxml>

								<!-- pmd-ruleset.xml -->
								<echo level="info" message="Update pmd-ruleset.xml" />
								<echoxml file="${project.build.directory}/pmd-ruleset.xml">
									<ruleset name="de.lars-sh">
										<description></description>

										<rule ref="category/java/bestpractices.xml">
											<!-- See separate rule with different properties -->
											<exclude name="AvoidReassigningLoopVariables" />
											<exclude name="OneDeclarationPerLine" />
											<exclude name="UnusedAssignment" />

											<!-- Bad code style for non-null code -->
											<exclude name="LiteralsFirstInComparisons" />

											<!-- Simplify JUnit usage -->
											<exclude name="JUnitAssertionsShouldIncludeMessage" />
											<exclude name="JUnitTestContainsTooManyAsserts" />
											<exclude name="JUnitTestsShouldIncludeAssert" />
										</rule>

										<rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables">
											<properties>
												<property name="foreachReassign" value="firstOnly" />
												<property name="forReassign" value="skip" />
											</properties>
										</rule>

										<!-- Activate strict mode -->
										<rule ref="category/java/bestpractices.xml/OneDeclarationPerLine">
											<properties>
												<property name="strictMode" value="true" />
											</properties>
										</rule>

										<!-- Check for unused prefix increment -->
										<rule ref="category/java/bestpractices.xml/UnusedAssignment">
											<properties>
												<property name="checkUnusedPrefixIncrement" value="true" />
											</properties>
										</rule>

										<rule ref="category/java/codestyle.xml">
											<exclude name="TooManyStaticImports" />

											<!-- Deprecated -->
											<exclude name="AbstractNaming" />
											<exclude name="AvoidFinalLocalVariable" />
											<exclude name="AvoidPrefixingMethodParameters" />
											<exclude name="ForLoopsMustUseBraces" />
											<exclude name="IfElseStmtsMustUseBraces" />
											<exclude name="IfStmtsMustUseBraces" />
											<exclude name="MIsLeadingVariableName" />
											<exclude name="SuspiciousConstantFieldName" />
											<exclude name="VariableNamingConventions" />
											<exclude name="WhileLoopsMustUseBraces" />

											<!-- See separate rule with different properties -->
											<exclude name="ClassNamingConventions" />
											<exclude name="CommentDefaultAccessModifier" />
											<exclude name="LinguisticNaming" />

											<!-- Better document why a constructor is empty than writing "super()" -->
											<exclude name="CallSuperInConstructor" />

											<!-- Requires Google Guava -->
											<exclude name="DefaultPackage" />

											<!-- Quite a few false positives when using Lombok -->
											<exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
											<exclude name="UseUnderscoresInNumericLiterals" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="LongVariable" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="OnlyOneReturn" />

											<!-- Better use long variable names than abbreviations -->
											<exclude name="UnnecessaryConstructor" />
										</rule>

										<!-- Allow utility class names ending with character 's' -->
										<rule ref="category/java/codestyle.xml/ClassNamingConventions">
											<properties>
												<property name="utilityClassPattern" value="[A-Z][a-zA-Z0-9]+(s|Helper|Utils?)" />
											</properties>
										</rule>

										<!-- Ignore annotation de.larssh.utils.annotations.PackagePrivate -->
										<rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier">
											<properties>
												<property name="ignoredAnnotations" value="com.google.common.annotations.VisibleForTesting|android.support.annotation.VisibleForTesting|de.larssh.utils.annotations.PackagePrivate" />
											</properties>
										</rule>

										<!-- Check transform methods -->
										<rule ref="category/java/codestyle.xml/LinguisticNaming">
											<properties>
												<property name="checkTransformMethods" value="true" />
											</properties>
										</rule>

										<rule ref="category/java/design.xml">
											<exclude name="LawOfDemeter" />
											<exclude name="LoosePackageCoupling" />
											<exclude name="NcssConstructorCount" />
											<exclude name="NcssMethodCount" />
											<exclude name="NcssTypeCount" />
											<exclude name="StdCyclomaticComplexity" />
											<exclude name="TooManyMethods" />
										</rule>

										<rule ref="category/java/documentation.xml">
											<!-- Do not restrict commenting -->
											<exclude name="CommentSize" />
										</rule>

										<rule ref="category/java/errorprone.xml">
											<exclude name="BeanMembersShouldSerialize" />
											<exclude name="DataflowAnomalyAnalysis" />

											<!-- Deprecated -->
											<exclude name="LoggerIsNotStaticFinal" />

											<!-- See separate rule with different properties -->
											<exclude name="AvoidDuplicateLiterals" />
											<exclude name="AvoidLiteralsInIfCondition" />
										</rule>

										<!-- Ignore annotations -->
										<rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
											<properties>
												<property name="skipAnnotations" value="true" />
											</properties>
										</rule>

										<!-- Ignore additional magic numbers -->
										<rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition">
											<properties>
												<property name="ignoreMagicNumbers" value="-1, 0, 1, 2" />
											</properties>
										</rule>

										<rule ref="category/java/multithreading.xml">
											<!-- Deprecated -->
											<exclude name="UnsynchronizedStaticDateFormatter" />

											<!-- No need to avoid volatile if you know what you are doing -->
											<exclude name="AvoidUsingVolatile" />

											<!-- Quite a few false positives -->
											<exclude name="UseConcurrentHashMap" />
										</rule>

										<rule ref="category/java/performance.xml">
											<exclude name="ConsecutiveAppendsShouldReuse" />

											<!-- Bad code style: Do not depend on compiler defaults -->
											<exclude name="RedundantFieldInitializer" />

											<!-- Bad code style: Write what you meant to do -->
											<exclude name="SimplifyStartsWith" />
										</rule>

										<rule ref="category/java/security.xml" />
									</ruleset>
								</echoxml>

								<!-- travis-suppressions-parent.sh -->
								<echo level="info" message="Create travis-suppressions-parent.sh" />
								<echo file="${project.build.directory}/travis-suppressions-parent.sh"><![CDATA[# User Defined Suppressions
function suppressUserDefined() {
	if [ -f ./travis-suppressions.sh ]; then
		cat < /dev/stdin \
		| ./travis-suppressions.sh
	else
		cat < /dev/stdin
	fi
}

# PMD: The Maven Plugin tries to perform Java type resolution on POM typed projects.
function suppressPmdWarnings() {
	cat < /dev/stdin \
	| grep --invert-match --perl-regexp "^\\[WARNING\\] The project parent does not seem to be compiled\\. PMD results might be inaccurate\\.$" \
	| grep --invert-match --perl-regexp "^\\[WARNING\\] Auxclasspath entry .*[/\\\\]parent[/\\\\]target[/\\\\]classes doesn't exist, ignoring it$"
}

# JDK14: The JavaDoc creation logs errors about missing "javadoc-bundle-option" folders.
function suppressJdk14Warnings() {
	if [ ${JDK_VERSION} -ge 14 ]; then
		cat < /dev/stdin \
		| grep --invert-match --perl-regexp "^\\[ERROR\\] Error fetching link: .*[/\\\\]target[/\\\\]javadoc-bundle-options\\. Ignored it\\.$"
	else
		cat < /dev/stdin
	fi
}

JDK_VERSION=`echo ${TRAVIS_JDK_VERSION} | grep --only-matching --perl-regexp \\\\d+`

cat < /dev/stdin \
| suppressUserDefined \
| suppressPmdWarnings \
| suppressJdk14Warnings
]]></echo>

								<!-- versions-ruleset.xml -->
								<echo level="info" message="Update versions-ruleset.xml" />
								<echoxml file="${project.build.directory}/versions-ruleset.xml">
									<ruleset comparisonMethod="maven">
										<ignoreVersions>
											<!-- Preview -->
											<ignoreVersion type="regex">^(?i)[\d.]+-?(alpha|b|beta|cr|m|milestone|nightly|p|pr|preview|rc|test)([^a-z].*)?$</ignoreVersion>

											<!-- Date-based versions from the 2000s -->
											<ignoreVersion type="regex">^200\d{4}.*$</ignoreVersion>

											<!-- Vendor specific -->
											<ignoreVersion type="regex">^(?i).*[^a-z](android|atlassian|jboss|jenkins|redhat)([^a-z].*)?$</ignoreVersion>

											<!-- Example: commons-logging:commons-logging:99.0-does-not-exist -->
											<ignoreVersion type="regex">^(?i).*[^a-z]does-not-exist([^a-z].*)?$</ignoreVersion>

											<!-- Example: org.jvnet.jaxb2_commons:jaxb2-basics:1.11.1-PUBLISHED-BY-MISTAKE -->
											<ignoreVersion type="regex">^(?i).*[^a-z]published-by-mistake([^a-z].*)?$</ignoreVersion>
										</ignoreVersions>
									</ruleset>
								</echoxml>
							</target>
						</configuration>
					</execution>

					<!-- apidocs-package-list -->
					<!-- Avoid warnings and errors about missing apidocs directories when there are no sources to be documented. -->
					<execution>
						<id>apidocs-package-list</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target unless="${maven.javadoc.skip}">
								<touch file="${project.build.directory}/apidocs/package-list" mkdirs="true" />
								<touch file="${project.build.directory}/testapidocs/package-list" mkdirs="true" />
							</target>
						</configuration>
					</execution>

					<!-- CHANGELOG.md -->
					<execution>
						<id>changelog-md</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-changelog-md}">
								<echo level="info" message="Create CHANGELOG.md" />
								<echo file="${project.basedir}/CHANGELOG.md"><![CDATA[# Changelog
All notable changes to this project will be documented in this file.

<a name="version"></a>

## [Version](Link) (YYYY-mm-dd)

Download at TODO

### Added
*

### Changed
*

### Deprecated
*

### Removed
*

### Fixed
*

### Security
*

### Dependencies
*
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- .gitignore -->
					<execution>
						<id>gitignore</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-gitignore}">
								<echo level="info" message="Update .gitignore" />
								<echo file="${project.basedir}/.gitignore"><![CDATA[/.idea/
/.settings/
/src/main/lombok/lombok.config
/src/test/lombok/lombok.config
/src/lombok.config
/target/
/.checkstyle
/.classpath
/.project
/*.iml
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- lombok.config -->
					<execution>
						<id>lombok-config</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-lombok-config}">
								<mkdir dir="${project.basedir}/src/main/lombok" />
								<mkdir dir="${project.basedir}/src/test/lombok" />
								<propertyfile file="${project.basedir}/src/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.accessors.flagUsage" value="error" />
									<entry key="lombok.anyConstructor.flagUsage" value="error" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.delegate.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.flagUsage" value="error" />
									<entry key="lombok.experimental.flagUsage" value="error" />
									<entry key="lombok.extensionMethod.flagUsage" value="error" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.flagUsage" value="error" />
									<entry key="lombok.fieldNameConstants.flagUsage" value="error" />
									<entry key="lombok.getter.flagUsage" value="error" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.helper.flagUsage" value="error" />
									<entry key="lombok.log.apacheCommons.flagUsage" value="error" />
									<entry key="lombok.log.custom.flagUsage" value="error" />
									<entry key="lombok.log.flagUsage" value="error" />
									<entry key="lombok.log.flogger.flagUsage" value="error" />
									<entry key="lombok.log.javaUtilLogging.flagUsage" value="error" />
									<entry key="lombok.log.jbosslog.flagUsage" value="error" />
									<entry key="lombok.log.log4j.flagUsage" value="error" />
									<entry key="lombok.log.log4j2.flagUsage" value="error" />
									<entry key="lombok.log.slf4j.flagUsage" value="error" />
									<entry key="lombok.log.xslf4j.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.onX.flagUsage" value="error" />
									<entry key="lombok.setter.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.synchronized.flagUsage" value="error" />
									<entry key="lombok.toString.flagUsage" value="error" />
									<entry key="lombok.utilityClass.flagUsage" value="error" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
									<entry key="lombok.with.flagUsage" value="error" />
								</propertyfile>
								<propertyfile file="${project.basedir}/src/main/lombok/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.addLombokGeneratedAnnotation" value="true" />
									<entry key="lombok.addNullAnnotations" value="findbugs" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.callSuper" value="warn" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.defaultFinal" value="true" />
									<entry key="lombok.fieldDefaults.defaultPrivate" value="true" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.toString.callSuper" value="warn" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
								</propertyfile>
								<propertyfile file="${project.basedir}/src/test/lombok/lombok.config">
									<entry key="config.stopBubbling" value="true" />
									<entry key="lombok.addLombokGeneratedAnnotation" value="true" />
									<entry key="lombok.addNullAnnotations" value="findbugs" />
									<entry key="lombok.builder.flagUsage" value="error" />
									<entry key="lombok.cleanUp.flagUsage" value="error" />
									<entry key="lombok.data.flagUsage" value="error" />
									<entry key="lombok.equalsAndHashCode.callSuper" value="warn" />
									<entry key="lombok.extern.findbugs.addSuppressFBWarnings" value="true" />
									<entry key="lombok.fieldDefaults.defaultFinal" value="true" />
									<entry key="lombok.fieldDefaults.defaultPrivate" value="true" />
									<entry key="lombok.getter.lazy.flagUsage" value="error" />
									<entry key="lombok.nonNull.flagUsage" value="error" />
									<entry key="lombok.sneakyThrows.flagUsage" value="error" />
									<entry key="lombok.toString.callSuper" value="warn" />
									<entry key="lombok.val.flagUsage" value="error" />
									<entry key="lombok.value.flagUsage" value="error" />
									<entry key="lombok.var.flagUsage" value="error" />
								</propertyfile>
							</target>
						</configuration>
					</execution>

					<!-- README.md -->
					<execution>
						<id>readme-md</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-readme-md}">
								<echo level="info" message="Create README.md" />
								<echo file="${project.basedir}/README.md"><![CDATA[# ${project.name}
${project.description}

## Getting started
TODO: Easy to understand usage example
]]></echo>
							</target>
						</configuration>
					</execution>

					<!-- Source Directories -->
					<execution>
						<id>source-directories</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-source-directories}">
								<mkdir dir="${project.basedir}/src/main/${parent-pom.default-sources-folder}" />
								<mkdir dir="${project.basedir}/src/main/resources" />
								<mkdir dir="${project.basedir}/src/test/${parent-pom.default-sources-folder}" />
								<mkdir dir="${project.basedir}/src/test/resources" />
							</target>
						</configuration>
					</execution>

					<!-- .travis.yml -->
					<execution>
						<id>travis-ci</id>
						<phase>initialize</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target if="${parent-pom.create-travis-yml}">
								<echo level="info" message="Update .travis.yml" />
								<echo file="${project.basedir}/.travis.yml"><![CDATA[language: java
jdk:
  # Supported versions as of https://en.wikipedia.org/wiki/Java_version_history
  - openjdk8
  - openjdk11
  - openjdk14
cache:
  directories:
    - $HOME/.m2/repository

install: |
  set -o errexit -o pipefail
  mvn clean install --activate-profiles dirty,dirty-package --update-snapshots --batch-mode --show-version 2>&1 | tee mvnout.txt
script: |
  set -o errexit -o pipefail
  mvn verify site --define gpg.skip=true --batch-mode --show-version 2>&1 | tee --append mvnout.txt
  set +o errexit +o pipefail
  
  echo ""
  echo "[INFO] Checking for Maven warnings and errors..."
  chmod +x ./target/travis-suppressions-parent.sh
  mvnout=`cat mvnout.txt | grep --perl-regexp "(?i)\\[(ERR|WARN)" | ./target/travis-suppressions-parent.sh`
  
  if [ -n "${mvnout}" ]; then
    echo "[WARNING] The Maven output contains the following unknown warnings and errors:"
    echo "${mvnout}"
    exit 1
  else
    echo "[INFO] No unknown warnings and errors found."
    echo "${mvnout}"
  fi

after_success:
  - rm ./target/site/index.html
  - cp ./CHANGELOG.md ./target/site/CHANGELOG.md
  - cp ./README.md ./target/site/README.md
deploy:
  provider: pages
  local_dir: ./target/site
  edge: true
  on:
    branch: master
    jdk: openjdk8
]]></echo>
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- Check test code coverage -->
			<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>

						<!-- The "report" goal should be executed before the (optional) "check"
							goal to make sure developers have the report to analyze the check results
							with. By default the "check" goal is executed at the "verify" phase. The
							"post-integration-test" phase is the last phase before that. -->
						<phase>post-integration-test</phase>
					</execution>
				</executions>
			</plugin>

			<!-- Check code style -->
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-sources</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Validate source formatting -->
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>process-sources</phase>
						<goals>
							<goal>validate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package test -->
			<plugin>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package dependencies (optional) -->
			<plugin>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<phase>${shade.packageDependenciesPhase}</phase>
						<goals>
							<goal>shade</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package sources -->
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>jar-no-fork</goal>
							<goal>test-jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Package documentation -->
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>jar</goal>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Copy Paste Detection -->
			<plugin>
				<artifactId>maven-pmd-plugin</artifactId>
				<executions>
					<execution>
						<!-- The following ID must not be changed as "default-cpd-check" uses it. -->
						<id>cpd</id>
						<goals>
							<goal>cpd</goal>
						</goals>
						<phase>verify</phase>
						<configuration>
							<aggregate>${cpd.aggregate}</aggregate>
							<excludeFromFailureFile>${cpd.excludeFromFailureFile}</excludeFromFailureFile>
						</configuration>
					</execution>
					<execution>
						<id>default-cpd-check</id>
						<goals>
							<goal>cpd-check</goal>
						</goals>
						<configuration>
							<aggregate>${cpd.aggregate}</aggregate>
							<printFailingErrors>${cpd.printFailingErrors}</printFailingErrors>
						</configuration>
					</execution>

					<!-- Analyze Code -->
					<execution>
						<!-- The following ID must not be changed as "default-check" uses it. -->
						<id>pmd</id>
						<goals>
							<goal>pmd</goal>
						</goals>
						<phase>verify</phase>
						<configuration>
							<aggregate>${pmd.aggregate}</aggregate>
							<excludeFromFailureFile>${pmd-only.excludeFromFailureFile}</excludeFromFailureFile>
							<rulesets>
								<ruleset>${pmd-only.ruleset}</ruleset>
							</rulesets>
						</configuration>
					</execution>
					<execution>
						<id>default-check</id>
						<goals>
							<goal>check</goal>
						</goals>
						<configuration>
							<aggregate>${pmd.aggregate}</aggregate>
							<printFailingErrors>${pmd-only.printFailingErrors}</printFailingErrors>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- SpotBugs -->
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Check for un/used dependencies -->
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>analyze-only</goal>
						</goals>
						<configuration>
							<failOnWarning>${dependency.failOnWarning}</failOnWarning>
							<ignoredUnusedDeclaredDependencies>
								<!-- Compile -->
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils:jar:${parent.version}</ignoredUnusedDeclaredDependency>

								<!-- Provided -->
								<ignoredUnusedDeclaredDependency>com.github.spotbugs:spotbugs-annotations:jar:${spotbugs-annotations.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>de.lars-sh:lombok-annotations:jar:${lombok-annotations.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils-annotations:jar:${parent.version}</ignoredUnusedDeclaredDependency>

								<!-- Test -->
								<ignoredUnusedDeclaredDependency>de.lars-sh:utils-test:jar:${parent.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.assertj:assertj-core:jar:${assertj-core.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.jooq:joor-java-8:jar:${joor.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-api:jar:${junit-jupiter-api.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-engine:jar:${junit-jupiter-engine.version}</ignoredUnusedDeclaredDependency>
								<ignoredUnusedDeclaredDependency>org.mockito:mockito-core:jar:${mockito.version}</ignoredUnusedDeclaredDependency>
							</ignoredUnusedDeclaredDependencies>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- Sign packages -->
			<plugin>
				<artifactId>maven-gpg-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Deployment -->
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<extensions>true</extensions>
			</plugin>
		</plugins>
	</build>

	<reporting>
		<plugins>
			<!-- General -->
			<plugin>
				<artifactId>maven-plugin-plugin</artifactId>
			</plugin>

			<!-- Sources -->
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-jxr-plugin</artifactId>
			</plugin>

			<!-- Verification -->
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<artifactId>maven-pmd-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
			</plugin>

			<!-- Tests -->
			<plugin>
				<artifactId>maven-surefire-report-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>

			<!-- Dependencies -->
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<!-- Skip code checks and tests -->
		<profile>
			<id>dirty</id>
			<properties>
				<archetype.test.skip>true</archetype.test.skip>
				<checkstyle.skip>true</checkstyle.skip>
				<cpd.skip>true</cpd.skip>
				<formatter.skip>true</formatter.skip>
				<jacoco.skip>true</jacoco.skip>
				<mdep.analyze.skip>true</mdep.analyze.skip>
				<pmd.skip>true</pmd.skip>
				<skipTests>true</skipTests>
				<spotbugs.skip>true</spotbugs.skip>
				<tidy.skip>true</tidy.skip>
			</properties>
		</profile>

		<!-- Skip the creation of optional packages -->
		<profile>
			<id>dirty-package</id>
			<properties>
				<gpg.skip>true</gpg.skip>
				<maven.javadoc.skip>true</maven.javadoc.skip>
				<maven.source.skip>true</maven.source.skip>
			</properties>
		</profile>

		<!-- JDK 9 and later: Do not show warnings as the bootstrap class path
			does not match the current sources version. -->
		<profile>
			<id>fix-jdk9-and-later</id>
			<activation>
				<jdk>(9,)</jdk>
			</activation>
			<properties>
				<maven.compiler.showDeprecation>false</maven.compiler.showDeprecation>
				<maven.compiler.showWarnings>false</maven.compiler.showWarnings>
			</properties>
		</profile>

		<!-- JDK 10, JavaDoc: You have not specified the version of HTML to use.
			The default is currently HTML 4.01, but this will change to HTML5
			in a future release. To suppress this warning, please specify the
			version of HTML used in your documentation comments and to be
			generated by this doclet, using the -html4 or -html5 options -->
		<profile>
			<id>fix-jdk10</id>
			<activation>
				<jdk>10</jdk>
			</activation>
			<properties>
				<additionalJOption>-html5</additionalJOption>
			</properties>
		</profile>

		<!-- JDK 11, Versions Maven Plugin: Repository metadata for: 'artifact [...]' could not
			be retrieved from repository: [...] due to an error: Transfer failed for [...] -->
		<profile>
			<id>fix-jdk11</id>
			<activation>
				<jdk>11</jdk>
			</activation>
			<properties>
				<versions.skip>true</versions.skip>
			</properties>
		</profile>

		<!-- JDK 11 and later: Suppress SpotBugs bug RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE
			as of https://github.com/spotbugs/spotbugs/issues/756 -->
		<profile>
			<id>fix-jdk11-and-later</id>
			<activation>
				<jdk>(11,)</jdk>
			</activation>
			<properties>
				<spotbugs.excludeFilterFile.fix-jdk11-and-later>${project.build.directory}/spotbugs-excludes-fix-jdk11-and-later.xml,</spotbugs.excludeFilterFile.fix-jdk11-and-later>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>fix-jdk11-and-later</id>
								<phase>initialize</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- spotbugs-excludes-fix-jdk11-and-later.xml -->
										<echo level="info" message="Update spotbugs-excludes-fix-jdk11-and-later.xml" />
										<echoxml file="${project.build.directory}/spotbugs-excludes-fix-jdk11-and-later.xml">
											<FindBugsFilter>
												<Match>
													<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
												</Match>
											</FindBugsFilter>
										</echoxml>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Eclipse only: Add lombok sources to class path -->
		<profile>
			<id>eclipse-only</id>
			<activation>
				<property>
					<name>m2e.version</name>
				</property>
			</activation>
			<properties>
				<!-- Eclipse 2019-03 (version 4.11) and lower fail on newer Maven JAR Plugin versions. -->
				<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
			</properties>
			<dependencies>
				<!-- Eclipse Neon (version 4.6) and lower are missing the JUnit Platform Runner dependency. -->
				<dependency>
					<groupId>org.junit.platform</groupId>
					<artifactId>junit-platform-runner</artifactId>
					<version>1.6.2</version>
					<scope>test</scope>
					<exclusions>
						<exclusion>
							<groupId>junit</groupId>
							<artifactId>junit</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
			</dependencies>
			<build>
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.eclipse.m2e</groupId>
							<artifactId>lifecycle-mapping</artifactId>
							<version>${lifecycle-mapping.version}</version>
							<configuration>
								<lifecycleMappingMetadata>
									<pluginExecutions>
										<!-- Execute AntRun goals on configuration and non-incremental builds -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.apache.maven.plugins</groupId>
												<artifactId>maven-antrun-plugin</artifactId>
												<versionRange>${maven-antrun-plugin.version}</versionRange>
												<goals>
													<goal>run</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<execute>
													<runOnConfiguration>true</runOnConfiguration>
													<runOnIncremental>false</runOnIncremental>
												</execute>
											</action>
										</pluginExecution>

										<!-- Ignore tidy goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.codehaus.mojo</groupId>
												<artifactId>tidy-maven-plugin</artifactId>
												<versionRange>${tidy-maven-plugin.version}</versionRange>
												<goals>
													<goal>check</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>

										<!-- Ignore delombok goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.projectlombok</groupId>
												<artifactId>lombok-maven-plugin</artifactId>
												<versionRange>${lombok-maven-plugin.version}</versionRange>
												<goals>
													<goal>delombok</goal>
													<goal>testDelombok</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>

										<!-- Ignore checkstyle goals -->
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>org.apache.maven.plugins</groupId>
												<artifactId>maven-checkstyle-plugin</artifactId>
												<versionRange>${maven-checkstyle-plugin.version}</versionRange>
												<goals>
													<goal>check</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<ignore />
											</action>
										</pluginExecution>
									</pluginExecutions>
								</lifecycleMappingMetadata>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-source</id>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/main/lombok</source>
									</sources>
								</configuration>
							</execution>
							<execution>
								<id>add-test-source</id>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/test/lombok</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Delombok: Do not execute the delombok plugin unless a lombok sources folder exists -->
		<profile>
			<id>delombok</id>
			<activation>
				<file>
					<exists>src/main/lombok</exists>
				</file>
			</activation>
			<dependencies>
				<dependency>
					<groupId>de.lars-sh</groupId>
					<artifactId>lombok-annotations</artifactId>
					<version>${lombok-annotations.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>delombok</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Test Delombok: Do not execute the delombok plugin unless a lombok
			test sources folder exists -->
		<profile>
			<id>delombok-test</id>
			<activation>
				<file>
					<exists>src/test/lombok</exists>
				</file>
			</activation>
			<dependencies>
				<dependency>
					<groupId>de.lars-sh</groupId>
					<artifactId>lombok-annotations</artifactId>
					<version>${lombok-annotations.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
						<executions>
							<execution>
								<goals>
									<goal>testDelombok</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- IDEA only: Add lombok library to dependencies and lombok sources to class path -->
		<profile>
			<id>idea-only</id>
			<activation>
				<property>
					<name>idea.maven.embedder.version</name>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok</artifactId>
					<version>${lombok.version}</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>add-source</id>
								<goals>
									<goal>add-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/main/lombok</source>
									</sources>
								</configuration>
							</execution>
							<execution>
								<id>add-test-source</id>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${project.basedir}/src/test/lombok</source>
									</sources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- Update eclipse settings -->
		<profile>
			<id>update-eclipse</id>
			<activation>
				<property>
					<name>m2e.version</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>eclipse-settings</id>
								<phase>initialize</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- .settings -->
										<mkdir dir="${project.basedir}/.settings" />

										<!-- .settings/checkstyle.xml -->
										<copy file="${project.build.directory}/checkstyle.xml" tofile="${project.basedir}/.settings/checkstyle.xml" overwrite="true" force="true" />

										<!-- .checkstyle -->
										<echo level="info" message="Update .checkstyle" />
										<echoxml file="${project.basedir}/.checkstyle">
											<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
												<local-check-config name="Checkstyle" location=".settings/checkstyle.xml" type="project" description="">
													<additional-data name="protect-config-file" value="false" />
												</local-check-config>
												<fileset name="main" enabled="true" check-config-name="Checkstyle" local="true">
													<file-match-pattern match-pattern="^src/main/java/" include-pattern="true" />
													<file-match-pattern match-pattern="^src/main/lombok/" include-pattern="true" />
												</fileset>
												<fileset name="test" enabled="true" check-config-name="Checkstyle" local="true">
													<file-match-pattern match-pattern="^src/test/java/" include-pattern="true" />
													<file-match-pattern match-pattern="^src/test/lombok/" include-pattern="true" />
												</fileset>
											</fileset-config>
										</echoxml>

										<!-- .settings/*.properties -->
										<propertyfile file="${project.basedir}/.settings/edu.umd.cs.findbugs.core.prefs">
											<entry key="detector_threshold" value="3" />
											<entry key="effort" value="max" />
											<entry key="filter_settings" value="Low|BAD_PRACTICE,CORRECTNESS,EXPERIMENTAL,I18N,MALICIOUS_CODE,MT_CORRECTNESS,PERFORMANCE,SECURITY,STYLE|false|20" />
											<entry key="filter_settings_neg" value="NOISE|" />
											<entry key="includefilter0" value="spotbugs-exclude.xml|true" />
											<entry key="run_at_full_build" value="true" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.core.resources.prefs">
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="encoding/&lt;project&gt;" value="UTF-8" />
											<entry key="encoding//src/main/java" value="UTF-8" />
											<entry key="encoding//src/main/lombok" value="UTF-8" />
											<entry key="encoding//src/main/resources" value="UTF-8" />
											<entry key="encoding//src/test/java" value="UTF-8" />
											<entry key="encoding//src/test/lombok" value="UTF-8" />
											<entry key="encoding//src/test/resources" value="UTF-8" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.core.runtime.prefs">
											<entry key="line.separator" value="&#10;" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.jdt.ui.prefs">
											<entry key="cleanup.add_default_serial_version_id" value="true" />
											<entry key="cleanup.add_generated_serial_version_id" value="false" />
											<entry key="cleanup.add_missing_annotations" value="true" />
											<entry key="cleanup.add_missing_deprecated_annotations" value="true" />
											<entry key="cleanup.add_missing_methods" value="false" />
											<entry key="cleanup.add_missing_nls_tags" value="false" />
											<entry key="cleanup.add_missing_override_annotations" value="true" />
											<entry key="cleanup.add_missing_override_annotations_interface_methods" value="true" />
											<entry key="cleanup.add_serial_version_id" value="false" />
											<entry key="cleanup.always_use_blocks" value="true" />
											<entry key="cleanup.always_use_parentheses_in_expressions" value="false" />
											<entry key="cleanup.always_use_this_for_non_static_field_access" value="false" />
											<entry key="cleanup.always_use_this_for_non_static_method_access" value="false" />
											<entry key="cleanup.convert_functional_interfaces" value="true" />
											<entry key="cleanup.convert_to_enhanced_for_loop" value="true" />
											<entry key="cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false" />
											<entry key="cleanup.correct_indentation" value="true" />
											<entry key="cleanup.format_source_code" value="true" />
											<entry key="cleanup.format_source_code_changes_only" value="false" />
											<entry key="cleanup.insert_inferred_type_arguments" value="false" />
											<entry key="cleanup.lazy_logical_operator" value="true" />
											<entry key="cleanup.make_local_variable_final" value="true" />
											<entry key="cleanup.make_parameters_final" value="true" />
											<entry key="cleanup.make_private_fields_final" value="true" />
											<entry key="cleanup.make_type_abstract_if_missing_method" value="false" />
											<entry key="cleanup.make_variable_declarations_final" value="true" />
											<entry key="cleanup.merge_conditional_blocks" value="true" />
											<entry key="cleanup.never_use_blocks" value="false" />
											<entry key="cleanup.never_use_parentheses_in_expressions" value="true" />
											<entry key="cleanup.number_suffix" value="true" />
											<entry key="cleanup.organize_imports" value="true" />
											<entry key="cleanup.push_down_negation" value="true" />
											<entry key="cleanup.qualify_static_field_accesses_with_declaring_class" value="false" />
											<entry key="cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true" />
											<entry key="cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="false" />
											<entry key="cleanup.qualify_static_member_accesses_with_declaring_class" value="true" />
											<entry key="cleanup.qualify_static_method_accesses_with_declaring_class" value="false" />
											<entry key="cleanup.remove_private_constructors" value="true" />
											<entry key="cleanup.remove_redundant_modifiers" value="true" />
											<entry key="cleanup.remove_redundant_semicolons" value="true" />
											<entry key="cleanup.remove_redundant_type_arguments" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces_all" value="true" />
											<entry key="cleanup.remove_trailing_whitespaces_ignore_empty" value="false" />
											<entry key="cleanup.remove_unnecessary_array_creation" value="true" />
											<entry key="cleanup.remove_unnecessary_casts" value="true" />
											<entry key="cleanup.remove_unnecessary_nls_tags" value="true" />
											<entry key="cleanup.remove_unused_imports" value="true" />
											<entry key="cleanup.remove_unused_local_variables" value="false" />
											<entry key="cleanup.remove_unused_private_fields" value="true" />
											<entry key="cleanup.remove_unused_private_members" value="false" />
											<entry key="cleanup.remove_unused_private_methods" value="true" />
											<entry key="cleanup.remove_unused_private_types" value="true" />
											<entry key="cleanup.simplify_lambda_expression_and_method_ref" value="true" />
											<entry key="cleanup.sort_members" value="false" />
											<entry key="cleanup.sort_members_all" value="false" />
											<entry key="cleanup.use_anonymous_class_creation" value="false" />
											<entry key="cleanup.use_autoboxing" value="true" />
											<entry key="cleanup.use_blocks" value="true" />
											<entry key="cleanup.use_blocks_only_for_return_and_throw" value="false" />
											<entry key="cleanup.use_directly_map_method" value="true" />
											<entry key="cleanup.use_lambda" value="true" />
											<entry key="cleanup.use_parentheses_in_expressions" value="true" />
											<entry key="cleanup.use_this_for_non_static_field_access" value="false" />
											<entry key="cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true" />
											<entry key="cleanup.use_this_for_non_static_method_access" value="false" />
											<entry key="cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true" />
											<entry key="cleanup.use_unboxing" value="true" />
											<entry key="cleanup_profile" value="_de.lars-sh" />
											<entry key="cleanup.use_var" value="true" />
											<entry key="cleanup_settings_version" value="2" />
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup" value="true" />
											<entry key="formatter_profile" value="_de.lars-sh" />
											<entry key="formatter_settings_version" value="19" />
											<entry key="org.eclipse.jdt.ui.exception.name" value="e" />
											<entry key="org.eclipse.jdt.ui.gettersetter.use.is" value="true" />
											<entry key="org.eclipse.jdt.ui.ignorelowercasenames" value="true" />
											<entry key="org.eclipse.jdt.ui.importorder" value="java;javax;org;com;" />
											<entry key="org.eclipse.jdt.ui.keywordthis" value="false" />
											<entry key="org.eclipse.jdt.ui.ondemandthreshold" value="99" />
											<entry key="org.eclipse.jdt.ui.overrideannotation" value="true" />
											<entry key="org.eclipse.jdt.ui.staticondemandthreshold" value="99" />
											<entry key="org.eclipse.jdt.ui.text.custom_code_templates" value="" />
											<entry key="sp_cleanup.add_default_serial_version_id" value="true" />
											<entry key="sp_cleanup.add_generated_serial_version_id" value="false" />
											<entry key="sp_cleanup.add_missing_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_deprecated_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_methods" value="false" />
											<entry key="sp_cleanup.add_missing_nls_tags" value="false" />
											<entry key="sp_cleanup.add_missing_override_annotations" value="true" />
											<entry key="sp_cleanup.add_missing_override_annotations_interface_methods" value="true" />
											<entry key="sp_cleanup.add_serial_version_id" value="false" />
											<entry key="sp_cleanup.always_use_blocks" value="true" />
											<entry key="sp_cleanup.always_use_parentheses_in_expressions" value="false" />
											<entry key="sp_cleanup.always_use_this_for_non_static_field_access" value="false" />
											<entry key="sp_cleanup.always_use_this_for_non_static_method_access" value="false" />
											<entry key="sp_cleanup.convert_functional_interfaces" value="true" />
											<entry key="sp_cleanup.convert_to_enhanced_for_loop" value="true" />
											<entry key="sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used" value="false" />
											<entry key="sp_cleanup.correct_indentation" value="true" />
											<entry key="sp_cleanup.format_source_code" value="true" />
											<entry key="sp_cleanup.format_source_code_changes_only" value="false" />
											<entry key="sp_cleanup.insert_inferred_type_arguments" value="false" />
											<entry key="sp_cleanup.lazy_logical_operator" value="true" />
											<entry key="sp_cleanup.make_local_variable_final" value="true" />
											<entry key="sp_cleanup.make_parameters_final" value="true" />
											<entry key="sp_cleanup.make_private_fields_final" value="true" />
											<entry key="sp_cleanup.make_type_abstract_if_missing_method" value="false" />
											<entry key="sp_cleanup.make_variable_declarations_final" value="true" />
											<entry key="sp_cleanup.merge_conditional_blocks" value="true" />
											<entry key="sp_cleanup.never_use_blocks" value="false" />
											<entry key="sp_cleanup.never_use_parentheses_in_expressions" value="true" />
											<entry key="sp_cleanup.number_suffix" value="true" />
											<entry key="sp_cleanup.on_save_use_additional_actions" value="true" />
											<entry key="sp_cleanup.organize_imports" value="true" />
											<entry key="sp_cleanup.push_down_negation" value="true" />
											<entry key="sp_cleanup.qualify_static_field_accesses_with_declaring_class" value="false" />
											<entry key="sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class" value="true" />
											<entry key="sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class" value="false" />
											<entry key="sp_cleanup.qualify_static_member_accesses_with_declaring_class" value="true" />
											<entry key="sp_cleanup.qualify_static_method_accesses_with_declaring_class" value="false" />
											<entry key="sp_cleanup.remove_private_constructors" value="true" />
											<entry key="sp_cleanup.remove_redundant_modifiers" value="true" />
											<entry key="sp_cleanup.remove_redundant_semicolons" value="true" />
											<entry key="sp_cleanup.remove_redundant_type_arguments" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces_all" value="true" />
											<entry key="sp_cleanup.remove_trailing_whitespaces_ignore_empty" value="false" />
											<entry key="sp_cleanup.remove_unnecessary_array_creation" value="true" />
											<entry key="sp_cleanup.remove_unnecessary_casts" value="true" />
											<entry key="sp_cleanup.remove_unnecessary_nls_tags" value="true" />
											<entry key="sp_cleanup.remove_unused_imports" value="true" />
											<entry key="sp_cleanup.remove_unused_local_variables" value="false" />
											<entry key="sp_cleanup.remove_unused_private_fields" value="true" />
											<entry key="sp_cleanup.remove_unused_private_members" value="false" />
											<entry key="sp_cleanup.remove_unused_private_methods" value="true" />
											<entry key="sp_cleanup.remove_unused_private_types" value="true" />
											<entry key="sp_cleanup.simplify_lambda_expression_and_method_ref" value="true" />
											<entry key="sp_cleanup.sort_members" value="false" />
											<entry key="sp_cleanup.sort_members_all" value="false" />
											<entry key="sp_cleanup.use_anonymous_class_creation" value="false" />
											<entry key="sp_cleanup.use_autoboxing" value="true" />
											<entry key="sp_cleanup.use_blocks" value="true" />
											<entry key="sp_cleanup.use_blocks_only_for_return_and_throw" value="false" />
											<entry key="sp_cleanup.use_directly_map_method" value="true" />
											<entry key="sp_cleanup.use_lambda" value="true" />
											<entry key="sp_cleanup.use_parentheses_in_expressions" value="true" />
											<entry key="sp_cleanup.use_this_for_non_static_field_access" value="false" />
											<entry key="sp_cleanup.use_this_for_non_static_field_access_only_if_necessary" value="true" />
											<entry key="sp_cleanup.use_this_for_non_static_method_access" value="false" />
											<entry key="sp_cleanup.use_this_for_non_static_method_access_only_if_necessary" value="true" />
											<entry key="sp_cleanup.use_unboxing" value="true" />
											<entry key="sp_cleanup.use_var" value="true" />
										</propertyfile>
										<propertyfile file="${project.basedir}/.settings/org.eclipse.jdt.core.prefs">
											<entry key="eclipse.preferences.version" value="1" />
											<entry key="org.eclipse.jdt.core.codeComplete.argumentPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.argumentSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.fieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.fieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.localPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.localSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes" value="" />
											<entry key="org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes" value="" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation" value="${eclipse.compiler.missingNonNullByDefaultAnnotation}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnull" value="edu.umd.cs.findbugs.annotations.NonNull" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnull.secondary" value="${eclipse.compiler.nonnull.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnullbydefault" value="de.larssh.utils.annotations.NonNullByDefault" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary" value="${eclipse.compiler.nonnullbydefault.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullable" value="edu.umd.cs.findbugs.annotations.Nullable" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullable.secondary" value="${eclipse.compiler.nullable.secondary}" />
											<entry key="org.eclipse.jdt.core.compiler.annotation.nullanalysis" value="${eclipse.compiler.nullAnalysis}" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.methodParameters" value="${eclipse.compiler.codegen.methodParameters}" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8" />
											<entry key="org.eclipse.jdt.core.compiler.codegen.unusedLocal" value="preserve" />
											<entry key="org.eclipse.jdt.core.compiler.compliance" value="1.8" />
											<entry key="org.eclipse.jdt.core.compiler.debug.lineNumber" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.debug.localVariable" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.debug.sourceFile" value="generate" />
											<entry key="org.eclipse.jdt.core.compiler.doc.comment.support" value="${eclipse.compiler.javadoc}" />
											<entry key="org.eclipse.jdt.core.compiler.problem.APILeak" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.annotationSuperInterface" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.autoboxing" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.comparingIdentical" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deadCode" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.discouragedReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.emptyStatement" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fallthroughCase" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fatalOptionalError" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.fieldHiding" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.finalParameterBound" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.forbiddenReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.indirectStaticAccess" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadoc" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTags" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility" value="private" />
											<entry key="org.eclipse.jdt.core.compiler.problem.localVariableHiding" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.methodWithConstructorName" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingDefaultCase" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocComments" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility" value="default" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription" value="all_standard_tags" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTags" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility" value="private" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingSerialVersion" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.noEffectAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullReference" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullSpecViolation" value="error" />
											<entry key="org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.parameterAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.potentialNullReference" value="${eclipse.compiler.potentialNullReference}" />
											<entry key="org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.rawTypeReference" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantNullCheck" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.redundantSuperinterface" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.specialParameterHidingField" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.staticAccessReceiver" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressWarnings" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.terminalDeprecation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.typeParameterHiding" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unhandledWarningToken" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unnecessaryElse" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess" value="ignore" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedImport" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedLabel" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedLocal" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete" value="enabled" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedPrivateMember" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedTypeParameter" value="info" />
											<entry key="org.eclipse.jdt.core.compiler.problem.unusedWarningToken" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast" value="warning" />
											<entry key="org.eclipse.jdt.core.compiler.release" value="disabled" />
											<entry key="org.eclipse.jdt.core.compiler.source" value="1.8" />
											<entry key="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647" />
											<entry key="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.align_with_spaces" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="49" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="81" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="48" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line" />
											<entry key="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_html" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.format_source_code" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.comment.line_length" value="80" />
											<entry key="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.compact_else_if" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.continuation_indentation" value="2" />
											<entry key="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2" />
											<entry key="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off" />
											<entry key="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on" />
											<entry key="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.indentation.size" value="4" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert" />
											<entry key="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_if_empty" />
											<entry key="org.eclipse.jdt.core.formatter.lineSplit" value="120" />
											<entry key="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="-1" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines" />
											<entry key="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.tabulation.char" value="tab" />
											<entry key="org.eclipse.jdt.core.formatter.tabulation.size" value="4" />
											<entry key="org.eclipse.jdt.core.formatter.text_block_indentation" value="0" />
											<entry key="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true" />
											<entry key="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true" />
											<entry key="org.eclipse.jdt.core.javaFormatter" value="org.eclipse.jdt.core.defaultJavaFormatter" />
										</propertyfile>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
