<!--

    Copyright (C) 2009 eXo Platform SAS.

    This 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 (at your option) any later version.

    This software 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 software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

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

   <parent>
      <groupId>org.exoplatform</groupId>
      <artifactId>foundation.parent</artifactId>
      <version>1.0.0</version>
   </parent>

   <modelVersion>4.0.0</modelVersion>
   <groupId>org.exoplatform.ws</groupId>
   <artifactId>config</artifactId>
   <name>eXo WS Config</name>
   <version>2.1.Alpha2</version>
   <packaging>pom</packaging>

   <scm>
      <connection>scm:svn:http://svn.exoplatform.org/projects/exorh/exo-jcr/ws/tags/2.1.Alpha2</connection>
      <developerConnection>scm:svn:http://svn.exoplatform.org/projects/exorh/exo-jcr/ws/tags/2.1.Alpha2</developerConnection>
      <url>http://fisheye.exoplatform.org/browse/projects/exorh/exo-jcr/ws/tags/2.1.Alpha2</url>
   </scm>

   <properties>
      <exo.product.name>exo-ws</exo.product.name>
      <exo.product.specification>2.0</exo.product.specification>
   </properties>

   <modules>
      <module>commons</module>
      <module>frameworks/json</module>
      <module>frameworks/servlet</module>
      <module>rest/core</module>
      <module>rest/ext</module>
   </modules>

   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.exoplatform.kernel</groupId>
            <artifactId>exo.kernel.component.common</artifactId>
            <version>${org.exoplatform.kernel.version}</version>
         </dependency>
         <dependency>
            <groupId>org.exoplatform.core</groupId>
            <artifactId>exo.core.component.xml-processing</artifactId>
            <version>${org.exoplatform.core.version}</version>
         </dependency>
         <dependency>
            <groupId>org.exoplatform.ws</groupId>
            <artifactId>exo.ws.frameworks.json</artifactId>
            <version>2.1.Alpha2</version>
         </dependency>
         <dependency>
            <groupId>org.exoplatform.ws</groupId>
            <artifactId>exo.ws.commons</artifactId>
            <version>2.1.Alpha2</version>
         </dependency>
         <dependency>
            <groupId>org.exoplatform.ws</groupId>
            <artifactId>exo.ws.rest.core</artifactId>
            <version>2.1.Alpha2</version>
         </dependency>

         <dependency>
            <groupId>com.sun.xml.stream</groupId>
            <artifactId>sjsxp</artifactId>
            <version>1.0</version>
         </dependency>
         <dependency>
            <groupId>stax</groupId>
            <artifactId>stax-api</artifactId>
            <version>1.0</version>
         </dependency>
         <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.1</version>
         </dependency>
         <dependency>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.4</version>
         </dependency>
         <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.0</version>
         </dependency>
         <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <!--      <version>1.2.1</version>-->
            <version>1.0</version>
         </dependency>
         <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
         </dependency>
         <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>jsr250-api</artifactId>
            <version>1.0</version>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <dependencies>
      <dependency>
         <groupId>emma</groupId>
         <artifactId>emma</artifactId>
         <version>2.0.5312</version>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <build>
      <resources>
         <resource>
            <directory>src/main/java</directory>
            <includes>
               <include>**/*.xml</include>
               <include>**/*.xsl</include>
               <include>**/*.xsd</include>
               <include>**/*.properties</include>
               <include>**/*.ion</include>
               <include>**/*.conf</include>
               <include>**/*.config</include>
               <include>**/*.groovy</include>
            </includes>
         </resource>
         <resource>
            <directory>src/main/resources</directory>
            <includes>
               <include>**/*.xml</include>
               <include>**/*.xsl</include>
               <include>**/*.xsd</include>
               <include>**/*.properties</include>
               <include>**/login.conf</include>
               <include>**/*.ion</include>
               <include>**/*.conf</include>
               <include>**/*.config</include>
               <include>**/*.groovy</include>
            </includes>
         </resource>
      </resources>
      <testResources>
         <testResource>
            <directory>src/test/java</directory>
            <includes>
               <include>**/*.properties</include>
               <include>**/*.xml</include>
               <include>**/*.xsl</include>
               <include>**/*.xsd</include>
               <include>**/*.txt</include>
               <include>**/*.conf</include>
               <include>**/*.config</include>
               <include>**/*.groovy</include>
            </includes>
         </testResource>
         <testResource>
            <directory>src/test/resources</directory>
            <includes>
               <include>**/*.properties</include>
               <include>**/*.xml</include>
               <include>**/*.xsl</include>
               <include>**/*.xsd</include>
               <include>**/*.txt</include>
               <include>**/*.conf</include>
               <include>**/*.config</include>
               <include>**/*.groovy</include>
            </includes>
         </testResource>
      </testResources>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <skip>${exo.test.skip}</skip>
               <useFile>${exo.test.use.file}</useFile>
               <forkMode>once</forkMode><!-- once , pertest -->
               <testFailureIgnore>${exo.test.failure.ignore}</testFailureIgnore>
               <classesDirectory>${exo.test.classesdirectory}</classesDirectory>
               <includes>
                  <include>**/*Test.java</include>
               </includes>
               <systemProperties>
                  <property>
                     <name>emma.coverage.out.file</name>
                     <value>target/emma/coverage.ec</value>
                  </property>
               </systemProperties>
            </configuration>
         </plugin>
         <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.3</version>
            <executions>
               <execution>
                  <id>emma1</id>
                  <phase>test-compile</phase>
                  <configuration>
                     <tasks if="emma.run">
                        <echo message="[EMMA] Start classes instrumentation ..." />
                        <taskdef resource="emma_ant.properties" classpathref="maven.dependency.classpath" />
                        <mkdir dir="target" />
                        <mkdir dir="target/classes" />
                        <mkdir dir="target/emma/classes" />
                        <!-- Do nothing if the directory already exist -->
                        <copy todir="target/emma/classes" verbose="false" overwrite="true">
                           <fileset dir="target/classes" />
                        </copy>
                        <emma enabled="true">
                           <instr mode="overwrite" metadatafile="target/emma/metadata.em">
                              <filter excludes="*.xml.*" />
                              <filter excludes="*JiBX*" />
                              <instrpath>
                                 <dirset dir="target">
                                    <include name="emma/classes" />
                                 </dirset>
                              </instrpath>
                           </instr>
                        </emma>
                     </tasks>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
               <execution>
                  <id>emma2</id>
                  <phase>test</phase>
                  <configuration>
                     <tasks if="emma.run">
                        <echo message="[EMMA] Start report generation..." />
                        <taskdef resource="emma_ant.properties" classpathref="maven.dependency.classpath" />
                        <emma enabled="true">
                           <!--                   merged file will be rewritted by last project -->
                           <merge outfile="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/target/coverage.es">
                              <fileset dir="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/">
                                 <include name="**/target/emma/*.e*" />
                                 <include name="**/target/emma/*.e*" />
                              </fileset>
                              <!--                     just for the first launnch -->
                              <fileset file="${exo.projects.directory.config}/coverage.es" />
                           </merge>
                           <report>
                              <sourcepath>
                                 <dirset dir="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/">
                                    <include name="**/src/**/java" />
                                 </dirset>
                              </sourcepath>
                              <fileset dir="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/target/">
                                 <include name="*.es" />
                              </fileset>
                              <html outfile="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/target/coverage.html" />
                              <xml outfile="${exo.projects.directory.src}/ws/tags/2.1.Alpha2/target/coverage.xml" />
                           </report>
                        </emma>
                     </tasks>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
            <dependencies>
               <dependency>
                  <groupId>emma</groupId>
                  <artifactId>emma</artifactId>
                  <version>2.0.5312</version>
                  <scope>test</scope>
               </dependency>
               <dependency>
                  <groupId>emma</groupId>
                  <artifactId>emma_ant</artifactId>
                  <version>2.0.5312</version>
                  <scope>test</scope>
               </dependency>
            </dependencies>
         </plugin>
      </plugins>
   </build>

   <reporting>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <configuration>
               <configLocation>${exo.projects.directory.config}/exo-checkstyle-checker.xml</configLocation>
               <suppressionsLocation>${exo.projects.directory.config}/exo-checkstyle-suppressions.xml</suppressionsLocation>
            </configuration>
         </plugin>

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
               <aggregate>true</aggregate>
               <reportOutputDirectory>target/javadoc</reportOutputDirectory>
               <maxmemory>512m</maxmemory>
               <minmemory>256m</minmemory>
            </configuration>
         </plugin>
      </plugins>
   </reporting>

   <profiles>
      <profile>
         <id>default</id>
         <properties>
            <org.exoplatform.kernel.version>2.2.Alpha2</org.exoplatform.kernel.version>
            <org.exoplatform.core.version>2.3.Alpha2</org.exoplatform.core.version>
         </properties>
         <activation>
            <property>
               <name>default</name>
            </property>
            <activeByDefault>true</activeByDefault>
         </activation>
      </profile>
   </profiles>
</project>
