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

    MIT License

    Copyright (c) 2019 Bayu Dwiyan Satria

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

-->
<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.bayudwiyansatria</groupId>
	<artifactId>apache-spark</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>

	<!-- Project Information -->
	<name>Bayu Dwiyan Satria - Apache Spark Libraries</name>
	<description>Bayu Dwiyan Satria For Apache Spark Environment.</description>
	<url>https://bayudwiyansatria.github.io//Library-Apache-Spark</url>
	<inceptionYear>2018</inceptionYear>
	<organization>
		<name>Bayu Dwiyan Satria</name>
		<url>https://github.com/bayudwiyansatria</url>
	</organization>
	<licenses>
		<license>
			<name>MIT LICENSE</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
			<distribution>repo</distribution>
			<comments>Open Source</comments>
		</license>
	</licenses>
	
	<developers>
		<developer>
			<id>bayudwiyansatria</id>
			<name>Bayu Dwiyan Satria</name>
			<email>bayudwiyansatria@gmail.com</email>
			<url>https://profile.bayudwiyansatria.com</url>
			<organization>Bayu Dwiyan Satria</organization>
			<organizationUrl>https://developer.bayudwiyansatria.com</organizationUrl>
			<roles>
				<role>architect</role>
				<role>project-leader</role>
				<role>developer</role>
			</roles>
			<timezone>Asia/Jakarta</timezone>
			<properties>
				<picUrl>https://en.gravatar.com/userimage/72544412/59315c817109ceaeffaa6b421f08c6d5.png</picUrl>
			</properties>
		</developer>
	</developers>
	<contributors/>
	
	<mailingLists>
		<mailingList>
			<name>Bayu Dwiyan Satria</name>
			<subscribe>bayudwiyansatria@gmail.com</subscribe>
			<unsubscribe>bayudwiyansatria@gmail.com</unsubscribe>
			<post>bayudwiyansatria@gmail.com</post>
			<archive>bayudwiyansatria@gmail.com</archive>
		</mailingList>
	</mailingLists>
	
	<modules/>
	
	<scm>
		<connection>scm:git:git://github.com/bayudwiyansatria/Library-Apache-Spark.git</connection>
		<developerConnection>scm:git:git@github.com:bayudwiyansatria/Library-Apache-Spark.git</developerConnection>
		<url>https://github.com/bayudwiyansatria/Library-Apache-Spark</url>
		<tag>HEAD</tag>
	</scm>

	<issueManagement>
		<system>Github</system>
		<url>https://github.com/bayudwiyansatria/Library-Apache-Spark/issues</url>
	</issueManagement>
	<ciManagement>
		<system>Github</system>
		<url>https://github.com/bayudwiyansatria/Library-Apache-Spark/actions</url>
	</ciManagement>
	
	<distributionManagement>
		<snapshotRepository>
			<id>jira</id>
			<name>The Central Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>jira</id>
			<name>The Central Repository</name>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>
	
	<properties>
		<!-- Project Properties -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.test.coverage.targetPercentage>70%</project.test.coverage.targetPercentage>
		
		<!-- Dependency Properties -->
		<checkstyle.version>8.11</checkstyle.version>
		
		<!-- JVM Properties -->
		<java.version>1.8</java.version>
		<maven.version>3.6.1</maven.version>
		<java.optimize>true</java.optimize>
		<gpg.executable>gpg</gpg.executable>
		
		<!-- Main Properties -->
		<maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
		<maven-clover-plugin.version>4.3.0</maven-clover-plugin.version>
		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
		<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
		<maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
		<maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
		<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
		<maven-exec-plugin.version>1.6.0</maven-exec-plugin.version>
		<maven-license-plugin.version>3.0</maven-license-plugin.version>
		<maven-os-plugin.version>1.5.0.Final</maven-os-plugin.version>
		<maven-pmd-plugin.version>3.10.0</maven-pmd-plugin.version>
		<maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
		<maven-shade-plugin.version>3.2.1</maven-shade-plugin.version>
		<maven-site-plugin.version>3.7.1</maven-site-plugin.version>
		<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
		<maven-resources-plugin.version>3.0.1</maven-resources-plugin.version>
		<maven-spotbugs-plugin.version>3.1.11</maven-spotbugs-plugin.version>
		<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
		<maven-versions-plugin.version>2.7</maven-versions-plugin.version>
		
		<!-- Operation Properties -->
		<maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
		<maven-install-plugin.version>2.4</maven-install-plugin.version>
		<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
		<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
		<maven-extra-enforcer-rules.version>1.0-beta-9</maven-extra-enforcer-rules.version>
		
		<!-- Extra Properties -->
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<maven-scm-plugin.version>1.11.2</maven-scm-plugin.version>
		<maven-scm-provider-gitexe.version>1.11.2</maven-scm-provider-gitexe.version>
		<maven-changelog-plugin.version>2.3</maven-changelog-plugin.version>
		<maven-jxr-plugin.version>2.5</maven-jxr-plugin.version>
		
		<!-- Third Party Properties-->
		<junit.version>4.12</junit.version>
		<hamcrest.version>1.3</hamcrest.version>
		<slf4j.version>1.7.25</slf4j.version>
		<sonatype.plugins.version>1.6.7</sonatype.plugins.version>
		<github.plugins.version>0.12</github.plugins.version>
		<bayudwiyansatria.core.version>1.1.8-SNAPSHOT</bayudwiyansatria.core.version>
		<bayudwiyansatria.ml.version>1.0</bayudwiyansatria.ml.version>
		<apache-logging-log4j.version>2.12.1</apache-logging-log4j.version>
		<scala-language.version>2.11.2</scala-language.version>
		<apache-spark.version>2.4.4</apache-spark.version>
	</properties>
	
	<!-- Project Dependencies -->
	<dependencyManagement>
		<dependencies/>
	</dependencyManagement>
	<dependencies>
		<!-- Logging -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>${apache-logging-log4j.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
			<exclusions/>
		</dependency>
		
		<!-- Required -->
		<dependency>
			<groupId>com.bayudwiyansatria</groupId>
			<artifactId>core</artifactId>
			<version>${bayudwiyansatria.core.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.hamcrest</groupId>
					<artifactId>hamcrest-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-simple</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.bayudwiyansatria</groupId>
			<artifactId>ml</artifactId>
			<version>${bayudwiyansatria.ml.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.hamcrest</groupId>
					<artifactId>hamcrest-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-simple</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.scala-lang</groupId>
			<artifactId>scala-library</artifactId>
			<version>${scala-language.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-simple</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-network-common_2.11</artifactId>
			<version>${apache-spark.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-catalyst_2.11</artifactId>
			<version>${apache-spark.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-launcher_2.11</artifactId>
			<version>${apache-spark.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-mllib_2.11</artifactId>
			<version>${apache-spark.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-yarn_2.11</artifactId>
			<version>${apache-spark.version}</version>
		</dependency>
	</dependencies>
	
	<repositories>
		<repository>
			<id>central</id>
			<name>Central Repository</name>
			<url>https://repo1.maven.org/maven2</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
			<layout>default</layout>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>central</id>
			<name>Central Repository</name>
			<url>https://repo1.maven.org/maven2</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
			<layout>default</layout>
		</pluginRepository>
	
	</pluginRepositories>

	<build>
		<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
		<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
		<outputDirectory>${project.build.directory}/classes</outputDirectory>
		<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
		<extensions/>
		<defaultGoal>package</defaultGoal>
		<resources>
			<resource>
				<directory>${project.basedir}/src/main/resources</directory>
				<includes>
					<include>configuration.xml</include>
				</includes>
				<excludes>
					<exclude>**/*.properties</exclude>
				</excludes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>${project.basedir}/src/main/resources</directory>
				<includes>
					<include>configuration.xml</include>
				</includes>
				<excludes>
					<exclude>**/*.properties</exclude>
				</excludes>
			</testResource>
		</testResources>
		<directory>${project.basedir}/target</directory>
		<finalName>${project.artifactId}-${project.version}</finalName>
		<filters/>
		<pluginManagement>
			<plugins/>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<version>${maven-clean-plugin.version}</version>
				<executions>
					<execution>
						<id>auto-clean</id>
						<phase>clean</phase>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven-enforcer-plugin.version}</version>
				<configuration>
					<rules><dependencyConvergence/></rules>
				</configuration>
    </plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<configuration>
					<optimize>true</optimize>
					<encoding>${project.build.sourceEncoding}</encoding>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<showWarnings>true</showWarnings>
					<showDeprecation>true</showDeprecation>
				</configuration>
			</plugin>
			<plugin>
				<groupId>com.mycila</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<version>${maven-license-plugin.version}</version>
				<configuration>
					<header>${project.basedir}/LICENSE</header>
					<properties>
						<project>${project.name}</project>
						<founder>${project.organization.name}</founder>
						<owner>${project.organization.name}</owner>
						<year>${project.inceptionYear}</year>
						<website>${project.organization.url}</website>
					</properties>
					<mapping>
						<java>default_style</java>
					</mapping>
					<headerDefinitions>
						<headerDefinition>${project.basedir}/header.xml</headerDefinition>
					</headerDefinitions>
					<includes>
						<include>src/main/**/*</include>
						<include>src/test/**/*</include>
						<include>pom.xml</include>
					</includes>
					<excludes>
						<exclude>src/main/resources/*</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<id>add-licenses</id>
						<phase>process-sources</phase>
						<goals>
							<goal>format</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
				<version>${maven-versions-plugin.version}</version>
				<executions>
					<execution>
						<id>analyze-dependency-updates</id>
						<phase>compile</phase>
						<goals>
							<goal>display-dependency-updates</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-scm-plugin</artifactId>
				<version>${maven-scm-plugin.version}</version>
				<configuration>
					<goals>install</goals>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>${maven-surefire-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${maven-jar-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>${maven-source-plugin.version}</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>${maven-javadoc-plugin.version}</version>
				<configuration>
					<windowtitle>${project.name}, version ${project.version}</windowtitle>
					<doctitle>${project.name}, version ${project.version}</doctitle>
					<use>false</use>
					<quiet>true</quiet>
					<notimestamp>true</notimestamp>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadoc</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>${maven-resources-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>${maven-shade-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>${maven-dependency-plugin.version}</version>
				<configuration>
					<ignoreNonCompile>true</ignoreNonCompile>
					<failOnWarning>false</failOnWarning>
					<ignoredDependencies>
						<ignoredDependency>log4j:log4j</ignoredDependency>
						<ignoredDependency>org.apache.logging.log4j:log4j-api</ignoredDependency>
						<ignoredDependency>org.scala-lang:scala-library</ignoredDependency>
						<ignoredDependency>org.apache.spark:spark-core_2.11</ignoredDependency>
						<ignoredDependency>org.apache.spark:spark-catalyst_2.11</ignoredDependency>
						<ignoredDependency>org.apache.spark:spark-network-common_2.11</ignoredDependency>
						<ignoredDependency> org.apache.spark:spark-launcher_2.11</ignoredDependency>
						<ignoredDependency> org.apache.spark:spark-yarn_2.11</ignoredDependency>
					</ignoredDependencies>
				</configuration>
				<executions>
					<execution>
						<id>analyze-dependencies</id>
						<phase>verify</phase>
						<goals>
							<goal>analyze</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>${maven-gpg-plugin.version}</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>${maven-site-plugin.version}</version>
			</plugin>
			<plugin>
				<groupId>com.github.github</groupId>
				<artifactId>site-maven-plugin</artifactId>
				<version>${github.plugins.version}</version>
				<configuration>
					<server>github</server>
					<message>Building site for ${project.name}</message>
					<merge>true</merge>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>site</goal>
						</goals>
						<phase>site</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>${sonatype.plugins.version}</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>jira</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>${maven-release-plugin.version}</version>
				<configuration>
					<tag>v${project.version}</tag>
					<tagNameFormat>v@{project.version}</tagNameFormat>
					<autoVersionSubmodules>true</autoVersionSubmodules>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.scm</groupId>
						<artifactId>maven-scm-provider-gitexe</artifactId>
						<version>${maven-scm-provider-gitexe.version}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
	<reports/>
	<reporting>
		<outputDirectory>${project.basedir}/target/site</outputDirectory>
		<!-- Default Site Pages -->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>${maven-project-info-reports-plugin.version}</version>
			</plugin>
			<!-- Java Documentation -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
			</plugin>
		</plugins>
	</reporting>
	<profiles/>
</project>