<?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>io.janusproject</groupId>
	<artifactId>io.janusproject</artifactId>
	<version>2.0.1.0</version>


	<name>Janus Project</name>
	<url>http://www.janusproject.io/</url>
	<inceptionYear>2014</inceptionYear>

	<description>
	Janus is an open-source multi-agent platform fully implemented in Java 1.7. 
	Janus enables developers to quickly create web, enterprise and desktop multiagent-based applications. 
	It provides a comprehensive set of features to develop, run, display and monitor multiagent-based applications. 
	Janus-based applications can be distributed across a network. 
	Janus could be used as an agent-oriented platform, an organizational platform, and/or an holonic platform. 
	It also natively manages the concept of recursive agents and holons.
	
	Janus is jointly developed by the multiagent teams of the Laboratoire Systèmes et Transports and the Grupo de Investigación en Tecnologías Informáticas Avanzadas de Tucumán.
	
	This is the new version of Janus fully reimplemented to support the SARL Agent-Oriented Programming Language (http://www.sarl.io).
	
	</description>

	<packaging>pom</packaging>

	<!-- ======================================= -->
	<!-- ==== Main properties === -->
	<!-- ======================================= -->

	<properties>
		<year>2014</year>
		<copyrighters>Sebastian RODRIGUEZ, Nicolas GAUD, Stéphane GALLAND</copyrighters>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<sarl.version.range>[0.1.0,0.2.0)</sarl.version.range>
		<sarl.spec.version>0.1</sarl.spec.version>
		<guice.version>4.0-beta4</guice.version>
		<guava.version>17.0.2</guava.version>
		<jeromq.version>0.3.4</jeromq.version>
		<gson.version>2.2.4</gson.version>
		<hazelcast.version>3.3-EA2</hazelcast.version>
		<afc.version>11.0</afc.version>
	</properties>

	<!-- ======================================= -->
	<!-- ==== Modules' configuration === -->
	<!-- ======================================= -->
	<modules>
		<module>io.janusproject.kernel</module>
	</modules>
	<!-- ======================================= -->
	<!-- ==== Organization and License details === -->
	<!-- ======================================= -->

	<organization>
		<name>Janus Project Consortium</name>
		<url>http://www.janusproject.io/</url>
	</organization>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>

	<!-- ======================================= -->
	<!-- ==== Dependency Management === -->
	<!-- ======================================= -->
	<dependencyManagement>

		<dependencies>
			<dependency>
				<groupId>io.sarl.maven</groupId>
				<artifactId>io.sarl.maven.sdk</artifactId>
				<version>${sarl.version.range}</version>
				<type>pom</type>
				<exclusions>
					<exclusion>
						<artifactId>guava</artifactId>
						<groupId>com.google.guava</groupId>
					</exclusion>
				</exclusions>
			</dependency>

			<dependency>
				<groupId>com.google.inject</groupId>
				<artifactId>guice</artifactId>
				<version>${guice.version}</version>
				<exclusions>
					<exclusion>
						<artifactId>guava</artifactId>
						<groupId>com.google.guava</groupId>
					</exclusion>
				</exclusions>
			</dependency>

			<dependency>
				<groupId>com.google.inject.extensions</groupId>
				<artifactId>guice-multibindings</artifactId>
				<version>${guice.version}</version>
			</dependency>

			<dependency>
				<groupId>com.hazelcast</groupId>
				<artifactId>hazelcast</artifactId>
				<version>${hazelcast.version}</version>
			</dependency>

			<dependency>
				<groupId>commons-cli</groupId>
				<artifactId>commons-cli</artifactId>
				<version>1.2</version>
			</dependency>

			<dependency>
				<groupId>org.zeromq</groupId>
				<artifactId>jeromq</artifactId>
				<version>${jeromq.version}</version>
			</dependency>

			<dependency>
				<groupId>io.janusproject.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>

			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>${gson.version}</version>
			</dependency>

			<dependency>
				<groupId>org.arakhne.afc.core</groupId>
				<artifactId>vmutils</artifactId>
				<version>${afc.version}</version>
			</dependency>

			<!-- Testing -->
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-api-mockito</artifactId>
				<version>1.5.5</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-module-junit4</artifactId>
				<version>1.5.5</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<scope>test</scope>
				<version>4.11</version>
			</dependency>

			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-all</artifactId>
				<scope>test</scope>
				<version>1.9.5</version>
			</dependency>
		</dependencies>

	</dependencyManagement>
	<!-- ======================================= -->
	<!-- ==== Plugins Dependency Management === -->
	<!-- ======================================= -->


	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>1.7</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.4</version>
				</plugin>
				<plugin>
					<groupId>org.jasig.maven</groupId>
					<artifactId>maven-notice-plugin</artifactId>
					<version>1.0.6.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>2.6</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>2.2.1</version>
				</plugin>

				<!-- Configure the checkstyle plugin. This plugin must be
				     activated module per module in the module's pom files. -->
				<plugin>
				        <groupId>org.apache.maven.plugins</groupId>
				        <artifactId>maven-checkstyle-plugin</artifactId>
				        <version>2.12.1</version>
					<executions>
						<execution>
				        		<phase>prepare-package</phase>
				        		<goals>
				        			<goal>checkstyle</goal>
				        		</goals>
						</execution>
					</executions>
				        <configuration>
				        	<configLocation>${main.basedir}/checkstyle/checkstyle.xml</configLocation>
				        	<suppressionsLocation>${main.basedir}/checkstyle/suppressions.xml</suppressionsLocation>
				        	<headerLocation>${main.basedir}/checkstyle/ClassHeader.txt</headerLocation>
				        	<enableRSS>false</enableRSS>
				        	<linkXRef>false</linkXRef>
				        	<consoleOutput>true</consoleOutput>
				       		<failsOnError>true</failsOnError>
				       		<failOnViolation>true</failOnViolation>
						<includeTestSourceDirectory>false</includeTestSourceDirectory>
						<enableRulesSummary>true</enableRulesSummary>
						<propertyExpansion>main.basedir=${main.basedir}</propertyExpansion>
				        </configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>1.5</version>
				</plugin>

				<plugin>
					<groupId>org.arakhne.afc.maven</groupId>
					<artifactId>tag-replacer</artifactId>
					<version>11.0</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.9.1</version>
					<configuration>
						<docencoding>${project.build.sourceEncoding}</docencoding>
						<encoding>${project.build.sourceEncoding}</encoding>
						<charset>${project.build.sourceEncoding}</charset>
						<show>protected</show>
						<detectLinks>true</detectLinks>
						<detectJavaApiLink>true</detectJavaApiLink>
						<links>
							<link>http://www.sarl.io/docs/api/</link>
							<link>http://hazelcast.org/docs/latest/javadoc/</link>
							<link>http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/</link>
							<link>http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/</link>
							<link>http://google-guice.googlecode.com/svn/trunk/javadoc/</link>
						</links>
						<docfilessubdirs>true</docfilessubdirs>
						<excludePackageNames></excludePackageNames>
						<breakiterator>true</breakiterator>
						<version>true</version>
						<author>true</author>
						<keywords>true</keywords>
						<useStandardDocletOptions>true</useStandardDocletOptions>
						<excludePackageNames></excludePackageNames>
						<bottom>&lt;small&gt;Copyright &amp;copy;
							${project.inceptionYear}-${year} ${copyrighters}.
						</bottom>
						<groups>
							<group>
								<title>Boot and Configuration</title>
								<packages>io.janusproject</packages>
							</group>
							<group>
								<title>Janus Micro-Kernel</title>
								<packages>io.janusproject.kernel*</packages>
							</group>
							<group>
								<title>Context Space Service</title>
								<packages>io.janusproject.services.contextspace*</packages>
							</group>
							<group>
								<title>Distributed Data Service</title>
								<packages>io.janusproject.services.distributeddata*</packages>
							</group>
							<group>
								<title>Executor Service</title>
								<packages>io.janusproject.services.executor*</packages>
							</group>
							<group>
								<title>Infrastructure Service</title>
								<packages>io.janusproject.services.infrastructure*</packages>
							</group>
							<group>
								<title>Kernel Discovery Service</title>
								<packages>io.janusproject.services.kerneldiscovery*</packages>
							</group>
							<group>
								<title>Logging Service</title>
								<packages>io.janusproject.services.logging*</packages>
							</group>
							<group>
								<title>Network Service</title>
								<packages>io.janusproject.services.network*</packages>
							</group>
							<group>
								<title>Spawn Service</title>
								<packages>io.janusproject.services.spawn*</packages>
							</group>
							<group>
								<title>Generic Service API</title>
								<packages>io.janusproject.services.api*:io.janusproject.services.impl*</packages>
							</group>
							<group>
								<title>Injection Modules</title>
								<packages>io.janusproject.modules*</packages>
							</group>
						</groups>
						<tags>
							<tag>
								<name>mavengroupid</name>
								<placement>pt</placement>
								<head>Maven Group Id:</head>
							</tag>
							<tag>
								<name>mavenartifactid</name>
								<placement>pt</placement>
								<head>Maven Artifact Id:</head>
							</tag>
							<tag>
								<name>fires</name>
								<placement>m</placement>
								<head>Fired Events:</head>
							</tag>
						</tags>
					</configuration>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>license-maven-plugin</artifactId>
										<versionRange>[1.2,)</versionRange>
										<goals>
											<goal>check-file-header</goal>
											<goal>update-project-license</goal>
											<goal>update-file-header</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[2.4,)</versionRange>
										<goals>
											<goal>properties</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-changes-plugin</artifactId>
										<versionRange>[2.7,)</versionRange>
										<goals>
											<goal>announcement-generate</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-assembly-plugin</artifactId>
										<versionRange>[2.2.1,)</versionRange>
										<goals>
											<goal>single</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>

			</plugins>
		</pluginManagement>

		<plugins>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-resources</id>
						<phase>validate</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>${basedir}/target/classes/META-INF</outputDirectory>
							<resources>
								<resource>
									<directory>${basedir}</directory>
									<filtering>true</filtering>
									<includes>
										<include>**/NOTICE</include>
										<include>**/LICENSE</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.jasig.maven</groupId>
				<artifactId>maven-notice-plugin</artifactId>
				<configuration>
					<generateChildNotices>true</generateChildNotices>
					<noticeTemplate>licenses/NOTICE.template</noticeTemplate>
					<licenseMapping>
						<param>licenses/license-mappings-janus.xml</param>
						<param>licenses/license-mappings.xml</param>
					</licenseMapping>
					<!-- <outputDir>src/main/resources/META-INF/</outputDir> -->
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>check</goal>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>package</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<verbose>false</verbose>
					<addSvnKeyWords>false</addSvnKeyWords>
					<copyrightOwners>${copyrighters}</copyrightOwners>
				</configuration>
				<executions>
					<execution>
						<id>first</id>
						<goals>
							<goal>update-file-header</goal>
						</goals>
						<phase>process-sources</phase>
						<configuration>
							<licenseName>apache_v2</licenseName>
							<includes>
								<include>*.java</include>
								<include>*.xml</include>
							</includes>
							<excludes>
								<exclude>*.png</exclude>
								<exclude>*.txt</exclude>
								<exclude>NOTICE</exclude>
								<exclude>**/NOTICE.expected</exclude>
								<exclude>**/NOTICE.template</exclude>
								<exclude>LICENSE</exclude>
							</excludes>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>release-tasks</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.arakhne.afc.maven</groupId>
						<artifactId>tag-replacer</artifactId>
						<executions>
							<execution>
								<id>update-source-tags</id>
								<phase>process-sources</phase>
								<goals>
									<goal>generatereplacesrc</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<!-- ======================================= -->
	<!-- ==== Third-Party Repositories === -->
	<!-- ==== Should be removed when all === -->
	<!-- ==== dependencies are available on === -->
	<!-- ==== central === -->
	<!-- ======================================= -->
	<repositories>
		<repository>
			<id>io.sarl.maven</id>
			<name>SARL Repository</name>
			<url>http://maven.sarl.io/</url>
		</repository>
		<repository>
			<id>io.janusproject.maven</id>
			<name>Janus Repository</name>
			<url>http://maven.janusproject.io/</url>
		</repository>
	</repositories>

	<!-- ======================================= -->
	<!-- ==== Organization Information === -->
	<!-- ======================================= -->

	<developers>
		<developer>
			<id>srodriguez</id>
			<name>Sebastian Rodriguez</name>
			<email>srodriguez@citat.org.ar</email>
			<url>http://citat.org.ar/members/sebastian-rodriguez/</url>
			<organization>
				Grupo de Investigaci&amp;oacute;n en Tecnolog&amp;iacute;as Inform&amp;aacute;ticas Avanzadas de Tucum&amp;aacute;n
			</organization>
			<organizationUrl>http://citat.org.ar/</organizationUrl>
			<roles>
				<role>Co-founder</role>
				<role>Architect</role>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<id>ngaud</id>
			<name>Nicolas Gaud</name>
			<email>nicolas.gaud@utbm.fr</email>
			<url>http://www.multiagent.fr/People:Gaud_nicolas</url>
			<organization>
				IRTES-SET -
				Universit&amp;eacute; de
				Technologie de
				Belfort-Montba&amp;eacute;liard
			</organization>
			<organizationUrl>http://www.multiagent.fr</organizationUrl>
			<roles>
				<role>Co-founder</role>
				<role>Architect</role>
				<role>Developer</role>
			</roles>
		</developer>
		<developer>
			<id>sgalland</id>
			<name>St&amp;eacute;phane Galland</name>
			<email>stephane.galland@utbm.fr</email>
			<url>http://www.multiagent.fr/People:Galland_stephane</url>
			<organization>
				IRTES-SET -
				Universit&amp;eacute; de
				Technologie de
				Belfort-Montba&amp;eacute;liard
			</organization>
			<organizationUrl>http://www.multiagent.fr</organizationUrl>
			<roles>
				<role>Architect</role>
				<role>Developer</role>
			</roles>
		</developer>
	</developers>

	<!-- =================== -->
	<!-- ==== Deployment === -->
	<!-- =================== -->

	<distributionManagement>
		<repository>
			<id>local-release-repository</id>
			<url>file:///var/www/janus-maven-repository/</url>
		</repository>
		<snapshotRepository>
			<id>local-snapshot-repository</id>
			<url>file:///var/www/janus-maven-repository/</url>
		</snapshotRepository>
	</distributionManagement>

	<!-- ==================== -->
	<!-- ==== Development === -->
	<!-- ==================== -->

	<scm>
		<connection>scm:git:git@github.com:janus-project/janusproject.git</connection>
		<developerConnection>scm:git:git@github.com:janus-project/janusproject.git</developerConnection>
		<url>git@github.com:janus-project/janusproject.git</url>
	</scm>

</project>
