<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>com.remondis</groupId>
    <artifactId>propertypath</artifactId>
    <version>0.1.3</version>
	<packaging>jar</packaging>
	<name>Property Path</name>
	<description>A library for simplifying transitive get calls on a path of Java Bean properties.</description>
	<url>https://github.com/remondis-it/propertypath</url>
	<scm>
		<connection>scm:git:https://github.com/remondis-it/propertypath.git</connection>
		<developerConnection>scm:git:git@github.com:remondis-it/propertypath.git</developerConnection>
		<url>https://github.com/remondis-it/propertypath.git</url>
	</scm>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>
	<developers>
		<developer>
			<id>schuettec</id>
			<name>Christopher Schütte</name>
			<email>christopher.schuette@remondis.de</email>
			<roles>
				<role>developer</role>
			</roles>
			<timezone>+2</timezone>
			<url>N/A</url>
		</developer>
	</developers>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>
	<distributionManagement>
		<repository>
			<id>bintray-schuettec-maven</id>
			<name>schuettec-maven</name>
			<url>https://api.bintray.com/maven/schuettec/maven/com.remondis.propertypath/;publish=1</url>
		</repository>
	</distributionManagement>
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.0.1</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.0.0</version>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<additionalparam>${javadoc.opts}</additionalparam>
								<additionalJOption>-Xdoclint:none</additionalJOption>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>2.4</version>
					<configuration>
						<archive>
							<manifest>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
								<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
							</manifest>
							<manifestEntries>
								<Bundle-Vendor>REMONDIS IT Services GmbH &amp; Co. KG</Bundle-Vendor>
								<Bundle-DocURL>https://github.com/remondis-it/propertypath</Bundle-DocURL>
								<Automatic-Module-Name>com.remondis.propertypath</Automatic-Module-Name>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>net.revelc.code.formatter</groupId>
										<artifactId>formatter-maven-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>validate</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
				<configuration>
					<debug>true</debug>
					<optimize>true</optimize>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<version>2.8.0</version>
				<executions>
					<execution>
						<phase>validate</phase>
						<goals>
							<goal>validate</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<lineEnding>LF</lineEnding>
					<configFile>${project.basedir}/shared/eclipse-formatter/eclipse-formatter-config.xml</configFile>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M2</version>
				<executions>
					<execution>
						<id>enforce</id>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>3.0.0</version>
								</requireMavenVersion>
								<requireReleaseDeps>
									<failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
									<message>No Snapshots Allowed!</message>
									<excludes>
										<!-- We want to exclude child module dependencies from this check,
											as we're always using SNAPSHOT versions (except when performing a release) -->
										<exclude>${project.groupId}:*</exclude>
									</excludes>
								</requireReleaseDeps>
							</rules>
							<fail>true</fail>
						</configuration>
						<goals>
							<goal>enforce</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.12</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>2.18.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-core</artifactId>
				<version>3.9.1</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>3.2.9</version>
            <scope>compile</scope>
            <!-- Exclusion needed due to bug in cglib POM. -->
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.3.16.RELEASE</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.16.RELEASE</version>
			<scope>provided</scope>
		</dependency>

		<!-- Test scoped dependencies -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
		</dependency>
	</dependencies>
</project>