<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>

	<parent>
		<groupId>au.csiro</groupId>
		<artifactId>elk-distribution-parent</artifactId>
		<version>0.5.0</version>
	</parent>

	<artifactId>elk-distribution-owlapi-parent</artifactId>
	<name>ELK Distribution Packages for OWL API</name>
	<description>Contains binaries, sources, examples, third-party libraries, and usage instructions for using ELK from OWL API</description>
	<packaging>pom</packaging>

	<modules>
		<module>elk-distribution-owlapi-resources</module>
		<module>elk-distribution-owlapi4</module>
	</modules>

	<profiles>
		<profile>
			<id>java-8+</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<modules>
				<module>elk-distribution-owlapi5</module>
			</modules>
		</profile>
	</profiles>

	<properties>
		<owlapi.major.version>4</owlapi.major.version>
		<owlapi.version>${owlapi4.version}</owlapi.version>
		<java.required.version>7</java.required.version>
		<elk.filename>elk-owlapi${owlapi.major.version}-library-${project.version}</elk.filename>
		<elk-sources.filename>${elk.filename}-sources</elk-sources.filename>
		<elk-owlapi.assembly-id>elk-owlapi${owlapi.major.version}-package</elk-owlapi.assembly-id>
		<!-- the next release version used in changes.xml -->
		<release.version>
			${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}
		</release.version>
		<!-- to switch off execution of some plug-ins, e.g., in this parent project -->
		<skip>true</skip>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>elk-owlapi${owlapi.major.version}</artifactId>
				<version>${project.version}</version>
				<exclusions>
					<exclusion>
						<groupId>net.sourceforge.owlapi</groupId>
						<artifactId>*</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.owlapi</groupId>
				<artifactId>owlapi-apibinding</artifactId>
				<version>${owlapi.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>net.sourceforge.owlapi</groupId>
				<artifactId>owlapi-api</artifactId>
				<version>${owlapi.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>elk-util-testing</artifactId>
				<version>${project.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<!-- including shared resources, such as Changes.txt and README.txt -->
				<artifactId>maven-remote-resources-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>process</goal>
						</goals>
						<configuration>
							<skip>${skip}</skip>
							<resourceBundles>
								<resourceBundle>${project.groupId}:elk-distribution-resources:${project.version}</resourceBundle>
								<resourceBundle>${project.groupId}:elk-distribution-owlapi-resources:${project.version}</resourceBundle>
							</resourceBundles>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<!-- set additional properties like currentYear -->
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<configuration>
					<skip>${skip}</skip>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-enforcer-plugin</artifactId>
				<configuration>
					<skip>${skip}</skip>
				</configuration>
				<executions>
					<execution>
						<id>verify-required-owlapi-properties</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<!-- properties used in owlapi-zip.xml -->
								<requireProperty>
									<property>elk-owlapi.assembly-id</property>
								</requireProperty>
								<requireProperty>
									<property>elk.filename</property>
								</requireProperty>
								<requireProperty>
									<property>elk-sources.filename</property>
								</requireProperty>
								<!-- properties used in README.txt -->
								<requireProperty>
									<property>elk.wiki</property>
								</requireProperty>
								<requireProperty>
									<property>project.inceptionYear</property>
								</requireProperty>
								<requireProperty>
									<property>currentYear</property>
								</requireProperty>
								<requireProperty>
									<property>owlapi.version</property>
								</requireProperty>
								<requireProperty>
									<property>java.required.version</property>
								</requireProperty>
								<requireProperty>
									<property>elk.filename</property>
								</requireProperty>
								<requireProperty>
									<property>project.parent.url</property>
								</requireProperty>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<!-- prepare dependencies that should be zipped -->
				<artifactId>maven-dependency-plugin</artifactId>
				<configuration>
					<overWriteReleases>false</overWriteReleases>
					<overWriteSnapshots>false</overWriteSnapshots>
					<overWriteIfNewer>true</overWriteIfNewer>
					<includeScope>runtime</includeScope>
					<excludes>META-INF/**</excludes>
				</configuration>
				<executions>
					<execution>
						<id>unpack-elk-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>unpack-dependencies</goal>
						</goals>
						<configuration>
							<skip>${skip}</skip>
							<includeGroupIds>${project.groupId}</includeGroupIds>
							<excludeScope>provided</excludeScope>
							<outputDirectory>${project.build.directory}/elk-classes</outputDirectory>
						</configuration>
					</execution>
					<execution>
						<id>unpack-elk-dependencies-sources</id>
						<phase>package</phase>
						<goals>
							<goal>unpack-dependencies</goal>
						</goals>
						<configuration>
							<skip>${skip}</skip>
							<includeGroupIds>${project.groupId}</includeGroupIds>
							<excludeScope>provided</excludeScope>
							<classifier>sources</classifier>
							<outputDirectory>${project.build.directory}/elk-sources</outputDirectory>
						</configuration>
					</execution>
					<execution>
						<id>copy-third-party-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<skip>${skip}</skip>
							<excludeGroupIds>${project.groupId}</excludeGroupIds>
							<excludeScope>provided</excludeScope>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
					<execution>
						<id>copy-third-party-dependencies-sources</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<skip>${skip}</skip>
							<excludeGroupIds>${project.groupId}</excludeGroupIds>
							<excludeScope>provided</excludeScope>
							<classifier>sources</classifier>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<excludedGroups>${project.groupId}</excludedGroups>
					<excludedScopes>provided</excludedScopes>
				</configuration>
				<executions>
					<execution>
						<id>download-third-party-licenses</id>
						<goals>
							<goal>download-licenses</goal>
						</goals>
						<configuration>
							<skipDownloadLicenses>${skip}</skipDownloadLicenses>
						</configuration>
					</execution>
					<execution>
						<id>add-third-party-license-summary</id>
						<goals>
							<goal>add-third-party</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<!-- creating jar and zip files -->
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<skipAssembly>${skip}</skipAssembly>
					<appendAssemblyId>false</appendAssemblyId>
				</configuration>
				<executions>
					<execution>
						<id>create-elk-classes-jar</id>
						<goals>
							<goal>single</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<finalName>${elk.filename}</finalName>
							<attach>false</attach>
							<descriptors>
								<descriptor>${project.build.directory}/maven-shared-archive-resources/elk-classes.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
					<execution>
						<id>create-elk-sources-jar</id>
						<goals>
							<goal>single</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<finalName>${elk-sources.filename}</finalName>
							<attach>false</attach>
							<descriptors>
								<descriptor>${project.build.directory}/maven-shared-archive-resources/elk-sources.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
					<execution>
						<id>create-owlapi-zip</id>
						<goals>
							<goal>single</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<descriptors>
								<descriptor>${project.build.directory}/maven-shared-archive-resources/owlapi-zip.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>


</project>
