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

<!--

  Copyright 2003 - 2010 The eFaps Team

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  Author:          The eFaps Team
  Revision:        $Rev: 6914 $
  Last Changed:    $Date: 2011-08-15 19:21:47 -0500 (Mon, 15 Aug 2011) $
  Last Changed By: $Author: jan@moxter.net $

-->

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

    <!-- ************************************************************************
    * Module Definition
    ************************************************************************* -->
    <packaging>jar</packaging>
    <groupId>org.efaps</groupId>
    <artifactId>efaps-kernel</artifactId>
    <version>1.17.0</version>
    <description>eFaps is a framework used to map objects with or without attached files to
a relational database and optional file systems (only for attaches files). Configurable access control can be provided down to object and attribute level depending on implementation and use case. Depending on requirements, events (like triggers) allow to implement business logic and to separate business logic from user interface.
The framework includes integrations (e.g. webdav, full text search) and a web application as 'simple' configurable user interface. Some best practises, example web application modules (e.g. team work module) support administrators and implementers using this framework.
    </description>
    <name>eFaps</name>
    <url>http://maven-efaps-plugin.efaps.org</url>
    <licenses>
        <license>
            <name>Apache 2.0 License</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>tim.moxter</id>
            <name>Tim Moxter</name>
            <email>tim.moxter(ad)efaps.org</email>
            <url>www.efaps.org</url>
            <organization>moxter.net Ltd. &amp; Co.KG</organization>
            <organizationUrl>http://www.moxter.net/de/</organizationUrl>
            <timezone>+1</timezone>
            <properties />
        </developer>
        <developer>
            <id>jan.moxter</id>
            <name>Jan Moxter</name>
            <email>jan.moxter(ad)efaps.org</email>
            <url>www.efaps.org</url>
            <organization>moxter.net S.A.C, Peru</organization>
            <organizationUrl>http://www.moxter.net/pe/</organizationUrl>
            <timezone>-5</timezone>
            <properties />
        </developer>
    </developers>
    <inceptionYear>2003</inceptionYear>
    <organization>
        <name>The eFaps Team</name>
        <url>http://www.efaps.org</url>
    </organization>

    <!-- Environment Settings -->
    <issueManagement>
        <system>eFaps Issues on Google Code</system>
        <url>http://issues.efaps.org</url>
    </issueManagement>

    <!-- SubVersion Repository -->
    <scm>
        <connection>scm:svn:http://efaps.googlecode.com/svn/eFaps-kernel/tags/V1.17.0</connection>
        <developerConnection>scm:svn:https://efaps.googlecode.com/svn/eFaps-kernel/tags/V1.17.0</developerConnection>
        <url>http://efaps.googlecode.com/svn/eFaps-kernel/tags/V1.17.0</url>
    </scm>

    <!-- Distribution Repository -->
    <distributionManagement>
        <site>
            <id>efaps.googlecode.com</id>
            <name>Maven eFaps Plug-In Site</name>
            <url>svn:https://efaps.googlecode.com/svn/site/eFaps-Kernel</url>
        </site>
        <snapshotRepository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>sonatype-nexus-staging</id>
            <name>Nexus Release Repository</name>
            <url>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <!-- correct encoding -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!-- ************************************************************************
    * Profiles
    ************************************************************************* -->
    <profiles>
        <!--
            Release Profile is done without tests, but with source and JavaDoc!
        -->
        <profile>
            <id>release-profile</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <!-- No test.. -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                   <!-- Attach Sources -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.1.2</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- Attach JavaDoc -->
                    <plugin>
                        <inherited>true</inherited>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.8</version>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- Update Release Info -->
                    <plugin>
                        <inherited>true</inherited>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <updateReleaseInfo>true</updateReleaseInfo>
                        </configuration>
                    </plugin>
                     <!-- signing the artefact with gpg -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.3</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>


    <!-- ************************************************************************
    * Reporting
    ************************************************************************* -->


    <!-- ************************************************************************
    * Project itself
    ************************************************************************* -->
    <build>
        <plugins>
            <!--
                Compiler Settings:
                - Java 1.6 is needed!
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!--
                JavaCC Settings:
                - Target package must be set
                - goal 'javacc' must be called in phase 'process-resources'
            -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>javacc-maven-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>javacc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--
                Test configuration
            -->
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>${basedir}/src/test/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>

             <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <mavenExecutorId>forked-path</mavenExecutorId>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.0-beta-3</version>
                <configuration>
                    <reportPlugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-project-info-reports-plugin</artifactId>
                            <reportSets>
                                <reportSet>
                                    <reports>
                                        <report>index</report>
                                        <report>summary</report>
                                        <report>dependencies</report>
                                        <report>project-team</report>
                                        <!--   <report>mailing-list</report>-->
                                        <!-- <report>cim</report> -->
                                        <report>issue-tracking</report>
                                        <report>license</report>
                                        <report>scm</report>
                                    </reports>
                                </reportSet>
                            </reportSets>
                        </plugin>
                        <!-- JavaCC reporting -->
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>javacc-maven-plugin</artifactId>
                        </plugin>
                        <!-- java doc -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <version>2.7</version>
                            <configuration>
                                <minmemory>128m</minmemory>
                                <maxmemory>1g</maxmemory>
                                <level>private</level>
                                <detectLinks />
                            </configuration>
                        </plugin>
                        <!-- source code -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-jxr-plugin</artifactId>
                            <version>2.2</version>
                            <configuration>
                                <linkJavadoc>false</linkJavadoc>
                                <javadocDir>apidocs</javadocDir>
                            </configuration>
                        </plugin>
                        <!-- checkstyle -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-checkstyle-plugin</artifactId>
                            <version>2.6</version>
                            <configuration>
                                <configLocation>${basedir}/src/checkstyle/efaps_checks.xml</configLocation>
                            </configuration>
                        </plugin>
                        <!-- PMD report -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-pmd-plugin</artifactId>
                            <version>2.5</version>
                            <configuration>
                                <linkXref>true</linkXref>
                                <sourceEncoding>utf-8</sourceEncoding>
                                <targetJdk>1.5</targetJdk>
                            </configuration>
                        </plugin>
                        <!--  findbugs report -->
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>findbugs-maven-plugin</artifactId>
                            <version>2.3.1</version>
                            <configuration />
                        </plugin>
                    </reportPlugins>
                </configuration>
            </plugin>
        </plugins>

        <!-- Needed for the upload of the site -->
        <extensions>
            <extension>
                <groupId>org.jvnet.wagon-svn</groupId>
                <artifactId>wagon-svn</artifactId>
                <version>1.11</version>
            </extension>
        </extensions>
    </build>

    <!-- ************************************************************************
    * Depencies
    ************************************************************************+ -->
    <dependencies>

        <!--
            For Logging Purpose
            http://www.slf4j.org
        -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>

        <!-- JDBC driver -->
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.0-801.jdbc4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.17</version>
        </dependency>

        <!-- used for toString methods -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <!-- easy XML reader
            using version 2.XX leads to problems on creation of the FactoryParser if different
            Xerces versions are on the OS.
        -->
        <dependency>
            <groupId>commons-digester</groupId>
            <artifactId>commons-digester</artifactId>
            <version>1.8.1</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- The Symplified encryption to store the passwords in the DataBase -->
        <dependency>
            <groupId>org.jasypt</groupId>
            <artifactId>jasypt</artifactId>
            <version>1.7.1</version>
        </dependency>

        <!-- For interpreting expressions (e.g. of xml definitions) -->
        <dependency>
            <groupId>commons-jexl</groupId>
            <artifactId>commons-jexl</artifactId>
            <version>1.1</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Transaction Manager -->
        <dependency>
            <groupId>commons-transaction</groupId>
            <artifactId>commons-transaction</artifactId>
            <version>1.1</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-codec</artifactId>
                    <groupId>commons-codec</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--
            Commons codec is used to decode/encode the passwords in the
            database
        -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.5</version>
        </dependency>

        <!--
            File system used for checkin / checkout on external resources. The
            commons logging must be excluded because eFaps uses slf4j logger.

            http://commons.apache.org/vfs/
        -->
        <dependency>
            <groupId>commons-vfs</groupId>
            <artifactId>commons-vfs</artifactId>
            <version>1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- to define a higher version (needed from another tool) -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
        </dependency>

        <!--
            Joda Time is used to have a quality replacement for Java date and
            time classes
        -->
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>1.6.2</version>
        </dependency>

        <!-- the yuicompressor is used to compress javascript and css files -->
        <dependency>
            <groupId>com.yahoo.platform.yui</groupId>
            <artifactId>yuicompressor</artifactId>
            <version>2.4.6</version>
        </dependency>

        <!-- wikiutil from efaps to compile wiki into html -->
        <dependency>
            <groupId>org.efaps</groupId>
            <artifactId>wikiutil</artifactId>
            <version>0.0.3</version>
        </dependency>

        <!-- JasperReport as a flexible reporting tool -->
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>4.0.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>1.5.8</version>
        </dependency>
        <dependency>
            <groupId>ar.com.fdvs</groupId>
            <artifactId>DynamicJasper</artifactId>
            <version>3.0.13</version>
            <exclusions>
                <exclusion>
                    <artifactId>jasperreports</artifactId>
                    <groupId>jasperreports</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- needed and marked optional in jasper report -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.7</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.12</version>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.9.1</version>
        </dependency>

        <!--  ivy dependency management -->
        <dependency>
            <groupId>org.apache.ivy</groupId>
            <artifactId>ivy</artifactId>
            <version>2.2.0</version>
        </dependency>


        <!-- dependencies for REST -->
        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-multipart</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.8</version>
        </dependency>

        <!-- timer for background prozesses -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.0.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jta</artifactId>
                    <groupId>javax.transaction</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.1</version>
        </dependency>

        <dependency>
            <groupId>javax.jcr</groupId>
            <artifactId>jcr</artifactId>
            <version>2.0</version>
        </dependency>

        <!-- test -->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <classifier>jdk15</classifier>
            <version>5.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- java transaction manager -->
        <dependency>
            <groupId>jotm</groupId>
            <artifactId>jotm</artifactId>
            <version>2.0.10</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.resource</groupId>
                    <artifactId>connector-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- replacement for the javax.resource.connector-api-1.5 needed by jotm-->
        <dependency>
            <groupId>org.ow2.spec.ee</groupId>
            <artifactId>ow2-connector-1.5-spec</artifactId>
            <version>1.0.9</version>
            <scope>test</scope>
        </dependency>
        <!-- Needed indirectly for the transaction manager -->
        <dependency>
            <groupId>javax.resource</groupId>
            <artifactId>connector</artifactId>
            <version>1.0</version>
            <scope>test</scope>
        </dependency>
        <!--
            used as javax.naming.* implementation
            (needed to connect to eFaps database)
        -->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-jndi</artifactId>
            <version>7.0.1.v20091125</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>7.0.1.v20091125</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>7.0.1.v20091125</version>
            <scope>test</scope>
        </dependency>
        <!-- connection Pooling, used as J2EE resource -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
            <scope>test</scope>
        </dependency>
   </dependencies>
</project>

