<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>org.eobjects.datacleaner</groupId>
		<artifactId>DataCleaner</artifactId>
		<version>4.5</version>
	</parent>
	<properties>
		<kettle.version>6.0.1.0-386</kettle.version>
		<datacleaner.version>4.5.4</datacleaner.version>
		<mainClass>org.datacleaner.Main</mainClass>
	</properties>
	<artifactId>pdi-datacleaner</artifactId>
	<name>DataCleaner for Pentaho Data Integration</name>
	<packaging>jar</packaging>
	<version>4.5.2</version>

	<scm>
		<url>https://github.com/datacleaner/pdi-datacleaner</url>
		<connection>scm:git:https://github.com/datacleaner/pdi-datacleaner.git</connection>
		<developerConnection>scm:git:https://github.com/datacleaner/pdi-datacleaner.git</developerConnection>
		<tag>pdi-datacleaner-4.5.2</tag>
	</scm>

	<repositories>
		<!-- PENTAHO REPOSITORIES -->
		<repository>
			<id>pentaho-repo</id>
			<url>http://repo.pentaho.org/artifactory/repo</url>
		</repository>
		<repository>
			<id>pentaho-third-party</id>
			<url>http://repo.pentaho.org/artifactory/third-party/</url>
		</repository>
	</repositories>

	<build>
		<finalName>DataCleaner-PDI-plugin</finalName>

		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>src/main/zip</directory>
				<targetPath>${project.build.directory}</targetPath>
				<filtering>true</filtering>
			</resource>
		</resources>

		<plugins>

			<plugin>
				<!-- Configure release plugin to not deploy - no suitable repo -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<goals />
				</configuration>
			</plugin>

			<plugin>
				<!-- Copy dependencies to lib/ folder -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<!-- Copy dependencies to lib/ -->
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<includeScope>runtime</includeScope>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<!-- make the jar file executable when dependencies are available in 
					lib/ folder -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.3.1</version>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<addDefaultImplementationEntries>true
							</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true
							</addDefaultSpecificationEntries>
							<classpathPrefix>lib</classpathPrefix>
							<mainClass>${mainClass}</mainClass>
							<useUniqueVersions>false</useUniqueVersions>
						</manifest>
						<manifestEntries>
							<SplashScreen-Image>images/splash.png</SplashScreen-Image>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>

			<!-- Assembly which creates the zip and tar.gz distributables -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.3</version><!--$NO-MVN-MAN-VER$ -->
				<configuration>
					<finalName>DataCleaner-PDI</finalName>
					<descriptors>
						<descriptor>src/main/assembly/kettle-zip-assembly.xml</descriptor>
					</descriptors>
				</configuration>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- Ban the xml-apis jar file because it conflicts with the one that 
				is available in Kettle at runtime -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-versions</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<bannedDependencies>
									<excludes>
										<exclude>org.apache.hadoop</exclude>
										<exclude>xml-apis:xml-apis</exclude>
										<exclude>org.slf4j:slf4j-log4j12</exclude>
										<exclude>javax.xml.bind:jaxb-api</exclude>
										<exclude>org.eobejcts.datacleaner:DataCleaner-desktop-api</exclude>
										<exclude>org.eobejcts.datacleaner:DataCleaner-desktop-ui</exclude>
									</excludes>
								</bannedDependencies>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<!-- KETTLE dependencies -->
		<dependency>
			<groupId>pentaho-kettle</groupId>
			<artifactId>kettle-core</artifactId>
			<version>${kettle.version}</version>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-beanutils</groupId>
					<artifactId>commons-beanutils-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>pentaho-kettle</groupId>
			<artifactId>kettle-engine</artifactId>
			<version>${kettle.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>pentaho-kettle</groupId>
			<artifactId>kettle-ui-swt</artifactId>
			<version>${kettle.version}</version>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- DataCleaner dependencies -->


		<dependency>
			<groupId>org.eobjects.datacleaner</groupId>
			<artifactId>DataCleaner-xml-config</artifactId>
			<version>${datacleaner.version}</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.eobjects.datacleaner</groupId>
					<artifactId>DataCleaner-standard-components</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eobjects.datacleaner</groupId>
			<artifactId>DataCleaner-uniqueness</artifactId>
			<version>${datacleaner.version}</version>
		</dependency>

		<dependency>
			<groupId>org.eobjects.datacleaner</groupId>
			<artifactId>DataCleaner-engine-core</artifactId>
			<version>${datacleaner.version}</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.xml.bind</groupId>
					<artifactId>jaxb-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-hbase</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-hadoop</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-elasticsearch</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-cassandra</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-couchdb</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.metamodel</groupId>
					<artifactId>MetaModel-mongodb</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.eobjects.datacleaner</groupId>
			<artifactId>DataCleaner-basic-analyzers</artifactId>
			<version>${datacleaner.version}</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.eobjects.datacleaner</groupId>
			<artifactId>DataCleaner-api</artifactId>
			<version>${datacleaner.version}</version>

			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- TEST dependencies -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
