<?xml version="1.0" encoding="UTF-8"?>
<!--
	PETALS: PETALS Services Platform
	Copyright (C) 2007  EBM WebSourcing

	This library is free software; you can redistribute it and/or
	modify it under the terms of the GNU Lesser General Public
	License as published by the Free Software Foundation; either
	version 2.1 of the License, or any later version.

	This library is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
	Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public
	License along with this library; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
	USA.

	Initial developer(s): EBM WebSourcing

	Instructions to build PEtALS from scratch:
	==========================================
	First, install the petals-quality extension executing the following
	command in the project "petals-quality": mvn install

	Next, in the root directory, execute the following command lines:
	1) mvn -Denv=first
	2) mvn

	Notes:
	- To build the PEtALS release, use "mvn -Denv=release"
	- In continuous integrations system, use "mvn -Denv=continuous-integration"

--><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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<prerequisites>
		<maven>2.0.6</maven>
	</prerequisites>

	<!-- ============== -->
	<!-- Identification -->
	<!-- ============== -->

	<name>Petals</name>
	<artifactId>petals-parent</artifactId>
	<groupId>org.objectweb.petals</groupId>
	<packaging>pom</packaging>
	<version>6</version>

	<organization>
		<name>ObjectWeb Consortium</name>
		<url>http://www.objectweb.org/</url>
	</organization>

	<inceptionYear>2005</inceptionYear>
	<description>PEtALS Services Platform</description>

	<issueManagement>
		<url>http://forge.objectweb.org/tracker/?group_id=213</url>
	</issueManagement>

	<distributionManagement>
		<repository>
			<id>objectweb</id>
			<name>ObjectWeb Maven2 release repository</name>
			<url>
				scp://jupiter.objectweb.org:/var/lib/gforge/chroot/home/groups/maven/htdocs/maven2
			</url>
		</repository>
		<snapshotRepository>
			<id>objectweb</id>
			<name>ObjectWeb Maven2 snapshot repository</name>
			<url>
				scp://jupiter.objectweb.org:/var/lib/gforge/chroot/home/groups/maven/htdocs/maven2-snapshot
			</url>
		</snapshotRepository>
		<!--
			<site>
			<id>ebm-maven-repository</id>
			<name>eBM WebSourcing PEtALS web site</name>
			<url>scp://192.168.1.230:/var/www/site</url>
			</site>
		-->
	</distributionManagement>

	<!-- Source code management -->
	<scm>
		<connection>
			scm:svn:svn://svn.forge.objectweb.org/svnroot/petals/trunk/
		</connection>
		<developerConnection>
			scm:svn:svn+ssh://${scm.username}@svn.forge.objectweb.org/svnroot/petals/trunk/
		</developerConnection>
		<url>
			http://svn.forge.objectweb.org/cgi-bin/viewcvs.cgi/petals/trunk/
		</url>
	</scm>

	<!-- Continuous integration -->
	<ciManagement>
		<system>continuum</system>
		<url>http://www.ebmwebsourcing.com/continuum/</url>
		<notifiers>
			<notifier>
				<type>mail</type>
				<configuration>
					<address>petals-dev@objectweb.org</address>
				</configuration>
			</notifier>
		</notifiers>
	</ciManagement>

	<mailingLists>
		<mailingList>
			<name>PETALS General Development Mailing List</name>
			<subscribe>petals-dev-subscribe@objectweb.org</subscribe>
			<unsubscribe>
				petals-dev-unsubscribe@objectweb.org
			</unsubscribe>
			<archive>
				http://mail-archive.objectweb.org/petals-dev/index.html
			</archive>
		</mailingList>

		<mailingList>
			<name>PETALS Users Mailing List</name>
			<subscribe>petals-users-subscribe@objectweb.org</subscribe>
			<unsubscribe>
				petals-users-unsubscribe@objectweb.org
			</unsubscribe>
			<archive>
				http://mail-archive.objectweb.org/petals-users/index.html
			</archive>
		</mailingList>

		<mailingList>
			<name>Petals Source Code Notification</name>
			<subscribe>
				petals-commits-subscribe@objectweb.org
			</subscribe>
			<unsubscribe>
				petals-commits-unsubscribe@objectweb.org
			</unsubscribe>
			<archive>
				http://mail-archive.objectweb.org/petals-commits/index.html
			</archive>
		</mailingList>
	</mailingLists>

	<!-- ======= -->
	<!-- License -->
	<!-- ======= -->
	<licenses>
		<license>
			<name>GNU LESSER GENERAL PUBLIC LICENSE Version 2.1</name>
			<url>http://www.gnu.org/copyleft/lesser.html</url>
		</license>
	</licenses>

	<!-- ========== -->
	<!-- Developers -->
	<!-- ========== -->
	<developers>
		<developer>
			<name>Adrien Louis</name>
			<id>alouis</id>
			<email>adrien.louis@ebmwebsourcing.com</email>
			<organization>EBM WebSourcing</organization>
			<organizationUrl>
				http://www.ebmwebsourcing.com
			</organizationUrl>
			<roles>
				<role>Project manager</role>
				<role>Architect</role>
				<role>Developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>

		<developer>
			<name>Gael Blondelle</name>
			<id>gblondelle</id>
			<email>gael.blondelle@ebmwebsourcing.com</email>
			<organization>EBM WebSourcing</organization>
			<organizationUrl>
				http://www.ebmwebsourcing.com
			</organizationUrl>
			<timezone>+1</timezone>
		</developer>

		<developer>
			<name>Olivier Fabre</name>
			<id>ofabre</id>
			<email>olivier.fabre@ebmwebsourcing.com</email>
			<organization>EBM WebSourcing</organization>
			<organizationUrl>
				http://www.ebmwebsourcing.com
			</organizationUrl>
			<roles>
				<role>Developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>

		<developer>
			<name>Christophe Hamerling</name>
			<id>chamerling</id>
			<email>christophe.hamerling@ebmwebsourcing.com</email>
			<url>http://www.ebmwebsourcing.com/chamerling</url>
			<organization>EBM WebSourcing</organization>
			<organizationUrl>
				http://www.ebmwebsourcing.com
			</organizationUrl>
			<roles>
				<role>Developer</role>
				<role>Community manager</role>
				<role>Release manager</role>
			</roles>
			<timezone>+1</timezone>
		</developer>

		<developer>
			<name>Marie Sauvage</name>
			<id>msauvage</id>
			<email>marie.sauvage@ebmwebsourcing.com</email>
			<organization>EBM WebSourcing</organization>
			<organizationUrl>
				http://www.ebmwebsourcing.com
			</organizationUrl>
			<roles>
				<role>Developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>

		<developer>
			<id>cdeneux</id>
			<name>Christophe DENEUX</name>
			<email>christophe.deneux@capgemini.com</email>
			<organization>Capgemini Sud</organization>
			<organizationUrl>http://www.capgemini.com</organizationUrl>
			<roles>
				<role>Maven Reviewer</role>
				<role>Code Reviewer</role>
				<role>Developer</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>


	<!-- ============ -->
	<!-- Contributors -->
	<!-- ============ -->
	<contributors>

	</contributors>

	<!-- ========== -->
	<!-- Properties -->
	<!-- ========== -->
	<properties>
		<cobertura.version>2.0-beta1</cobertura.version>
		<site.version>2.0-beta-4</site.version>
		<mprojectinfo.version>2.0-beta-3</mprojectinfo.version>
		<easymock.version>2.2</easymock.version>
		<umlgraph.version>4.6</umlgraph.version>
		<topDirectoryLocation>.</topDirectoryLocation>
	</properties>

	<repositories>
		<repository>
			<id>objectweb-repo</id>
			<name>ObjectWeb Repository</name>
			<url>http://maven.objectweb.org/maven2</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>objectweb-snapshot-repo</id>
			<name>Objectweb Snapshot Repository</name>
			<url>http://maven.objectweb.org/maven2-snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>private</id>
			<name>Private Repository</name>
			<url>
				file:${basedir}/${topDirectoryLocation}/etc/maven/private-repository
			</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>private</id>
			<name>Private Repository</name>
			<url>
				file:${basedir}/${topDirectoryLocation}/etc/maven/private-repository
			</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>

		<!--
		 | This repository is needed by the maven-checkstyle-plugin.
		 | Remove it when the release 2.2 will be available.
         |-->
		<pluginRepository>
			<id>apache.snapshots</id>
			<name>Apache Snapshot Repository</name>
			<url>
				http://people.apache.org/repo/m2-snapshot-repository
			</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>3.8.1</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.easymock</groupId>
				<artifactId>easymock</artifactId>
				<version>${easymock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.easymock</groupId>
				<artifactId>easymockclassextension</artifactId>
				<version>${easymock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>log4j</groupId>
				<artifactId>log4j</artifactId>
				<version>1.2.13</version>
			</dependency>

			<dependency>
				<groupId>javax.jbi</groupId>
				<artifactId>jbi</artifactId>
				<version>1.0</version>
			</dependency>
			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>2.1</version>
			</dependency>
			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>1.2</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<!-- ======== -->
	<!-- Profiles -->
	<!-- ======== -->
	<!--
		| Several profiles are defined to build Petals:
		|    - a profile to use the first time, to build only plugins.
		|      It is identified by -Denv=first,
		|    - a default profile used during PEtALS developement,
		|    - a profile used to build the PEtALS release,
		|    - a profile used in a continous integration context.
		|
		| !!! When adding a module, caution to update all impacted profiles. !!!
	-->

	<profiles>
		<!--
			| The following profile will be used when developping Petals.
			|      mvn -Denv=first ...
		-->
		<profile>
			<id>plugins</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<property>
					<name>env</name>
					<value>first</value>
				</property>
			</activation>
			<properties>
				<java.compiler.showWarnings>
					true
				</java.compiler.showWarnings>
				<java.compiler.debug>true</java.compiler.debug>
				<java.compiler.optimize>false</java.compiler.optimize>
			</properties>
			<modules>
				<module>petals-jbi-descriptor</module>
				<module>petals-jmx</module>
				<module>petals-plugins</module>
			</modules>
		</profile>
		<!--
			| The following profile will be used when developping Petals.
			| It is activated by default.
		-->
		<profile>
			<id>developpementment</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<java.compiler.showWarnings>
					true
				</java.compiler.showWarnings>
				<java.compiler.debug>true</java.compiler.debug>
				<java.compiler.optimize>false</java.compiler.optimize>
			</properties>
			<modules>
				<module>petals-plugins</module>
				<module>petals-component-framework</module>
				<module>petals-jbi-descriptor</module>
				<module>petals-tools</module>
				<module>petals-components</module>
				<module>petals-platform</module>
				<module>petals-samples</module>
				<module>petals-test</module>
				<module>petals-jmx</module>
				<!--<module>petals-demos</module>-->
				<module>petals-skin</module>
			</modules>
		</profile>
		<!--
			| The following profile will be used when releasing Petals.
			| It is activated using the following command-line:
			|      mvn -Denv=release ...
		-->
		<profile>
			<id>release</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<property>
					<name>env</name>
					<value>release</value>
				</property>
			</activation>
			<properties>
				<java.compiler.showWarnings>
					false
				</java.compiler.showWarnings>
				<java.compiler.debug>false</java.compiler.debug>
				<java.compiler.optimize>true</java.compiler.optimize>
			</properties>
			<modules>
				<module>petals-plugins</module>
				<module>petals-component-framework</module>
				<module>petals-jbi-descriptot</module>
				<module>petals-tools</module>
				<module>petals-components</module>
				<module>petals-platform</module>
				<module>petals-samples</module>
				<module>petals-jmx</module>
				<!--<module>petals-demos</module>-->
				<module>petals-skin</module>
			</modules>
		</profile>
		<!--
			| The following profile will be used by the continuous integration system.
			| It is activated using the following command-line:
			|      mvn -Denv=intg ...
		-->
		<profile>
			<id>continuous-integration</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<property>
					<name>env</name>
					<value>intg</value>
				</property>
			</activation>
			<properties>
				<java.compiler.showWarnings>
					false
				</java.compiler.showWarnings>
				<java.compiler.debug>false</java.compiler.debug>
				<java.compiler.optimize>true</java.compiler.optimize>
			</properties>
			<modules>
				<module>petals-plugins</module>
				<module>petals-component-framework</module>
				<module>petals-jbi-descriptor</module>
				<module>petals-tools</module>
				<module>petals-components</module>
				<module>petals-platform</module>
				<module>petals-samples</module>
				<module>petals-jmx</module>
				<!--<module>petals-demos</module>-->
				<module>petals-skin</module>
			</modules>
		</profile>
	</profiles>

	<!-- =================== -->
	<!-- Build Specification -->
	<!-- =================== -->
	<build>
		<extensions>
			<extension>
				<groupId>org.objectweb.petals</groupId>
				<artifactId>petals-quality</artifactId>
				<version>1.0</version>
			</extension>
		</extensions>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>2.1.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>2.0-beta-4</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>2.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>2.1</version>
					<configuration>
						<archive>
							<manifest>
								<addClasspath>true</addClasspath>
								<addExtensions/>
								<classpathPrefix/>
							</manifest>
							<manifestEntries>
								<mode>development</mode>
								<url>${pom.url}</url>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.0.1</version>
					<configuration>
						<source>1.5</source>
						<target>1.5</target>
						<showDeprecation>true</showDeprecation>
						<showWarnings>
							${java.compiler.showWarnings}
						</showWarnings>
						<fork>false</fork>
						<debug>${java.compiler.debug}</debug>
						<optimize>${java.compiler.optimize}</optimize>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-assembly-plugin</artifactId>
					<groupId>org.apache.maven.plugins</groupId>
					<version>2.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-eclipse-plugin</artifactId>
					<groupId>org.apache.maven.plugins</groupId>
					<version>2.3</version>
					<configuration>
						<downloadSources>true</downloadSources>
						<additionalBuildCommands>
							<buildcommand>
								com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder
							</buildcommand>
							<buildcommand>
								net.sourceforge.pmd.runtime.pmdBuilder
							</buildcommand>
						</additionalBuildCommands>
						<additionalProjectnatures>
							<projectnature>
								com.atlassw.tools.eclipse.checkstyle.CheckstyleNature
							</projectnature>
							<projectnature>
								net.sourceforge.pmd.runtime.pmdNature
							</projectnature>
						</additionalProjectnatures>
						<additionalConfig>
							<!-- Checkstyle configuration files -->
							<file>
								<name>.checkstyle</name>
								<content>
									<![CDATA[
									<?xml version="1.0" encoding="UTF-8"?>
										<fileset-config file-format-version="1.2.0" simple-config="true">
											<local-check-config name="PetalsCheckstyle" location="${basedir}/${topDirectoryLocation}/petals-quality/src/main/resources/checkstyle.xml" type="external" description="">
												<additional-data name="protect-config-file" value="false"/>
											</local-check-config>
											<fileset name="tous" enabled="true" check-config-name="PetalsCheckstyle" local="true">
												<file-match-pattern match-pattern="." include-pattern="true"/>
											</fileset>
<filter name="FilesFromPackage" enabled="true">
        <filter-data value="src/test/java"/>
        <filter-data value="src/test/resources"/>
    </filter>
										</fileset-config>
									]]>
								</content>
							</file>
							<!-- PMD configuration files -->
							<!-- To uncomment when MECLIPSE-219 will be fixed
							<file>
								<name>.pmd</name>
								<content>
									<![CDATA[
										<?xml version="1.0" encoding="UTF-8"?>
										<pmd>
											<useProjectRuleSet>true</useProjectRuleSet>
											<rules/>
											<includeDerivedFiles>false</includeDerivedFiles>
										</pmd>
									]]>
								</content>
							</file>
							<file>
								<name>.ruleset</name>
								<content></content>
								</file>
							-->
						</additionalConfig>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

		<defaultGoal>install</defaultGoal>
	</build>

	<reporting>
		<plugins>
			<!--  create javadoc -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<reportSets>
					<reportSet>
						<id>uml</id>
						<configuration>
							<doclet>
								gr.spinellis.umlgraph.doclet.UmlGraphDoc
							</doclet>
							<docletArtifact>
								<groupId>gr.spinellis</groupId>
								<artifactId>UmlGraph</artifactId>
								<version>${umlgraph.version}</version>
							</docletArtifact>
							<additionalparam>
								-inferrel -inferdep -quiet -hide java.*
								-collpackages java.util.* -qualify
								-postfixpackage -nodefontsize 9
								-nodefontpackagesize 7
							</additionalparam>
							<encoding>ISO-8859-1</encoding>
							<show>private</show>
							<source>1.5</source>
						</configuration>
						<reports>
							<report>javadoc</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<!--  create HTML pages from sources -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
			</plugin>

			<!--  get changelog from SCM -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changelog-plugin</artifactId>
			</plugin>

			<!--  Generate changes from changes.xml file -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-changes-plugin</artifactId>
				<reportSets>
					<reportSet>
						<reports>
							<report>changes-report</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<!-- PMD plugin -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
				<configuration>
					<rulesets>
						<ruleset>pmd.xml</ruleset>
					</rulesets>
					<linkXref>true</linkXref>
					<sourceEncoding>UTF-8</sourceEncoding>
					<minimumTokens>100</minimumTokens>
					<targetJdk>1.5</targetJdk>
					<includeTests>true</includeTests>
				</configuration>
			</plugin>

			<!-- Removed to enable children releases -->
			<!--
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.2-SNAPSHOT</version>
				<configuration>
					<configLocation>checkstyle.xml</configLocation>
					<includeTestSourceDirectory>
						true
					</includeTestSourceDirectory>
				</configuration>
			</plugin>
			-->

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<configuration>
					<threshold>Low</threshold>
					<effort>Max</effort>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>taglist-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jdepend-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>
</project>
