<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
-->

<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>
    <parent>
      <groupId>org.apache.odftoolkit</groupId>
      <artifactId>odftoolkit</artifactId>
      <version>0.6-incubating</version>
    </parent>

    <artifactId>simple-odf</artifactId>
    <version>0.8-incubating</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
           <groupId>${project.groupId}</groupId>
           <artifactId>odfdom-java</artifactId>
           <version>0.8.9-incubating</version>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss</maven.build.timestamp.format>
    </properties>
    <!-- Build Settings -->
    <build>
        <defaultGoal>install</defaultGoal>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <meminitial>512m</meminitial>
                    <maxmem>1024m</maxmem>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.1</version>
                <configuration>
                    <archive>
                        <index>true</index>
                        <manifest>
                            <mainClass>org.odftoolkit.simple.JarManifest</mainClass>
                        </manifest>
                        <manifestEntries>
                            <version>${project.version}</version>
                        </manifestEntries>
                        <manifestSections>
                            <manifestSection>
                                <name>SIMPLE-ODF</name>
                                <manifestEntries>
                                    <SIMPLE-ODF-Name>Simple Java API for ODF(Simple ODF)</SIMPLE-ODF-Name>
                                    <SIMPLE-ODF-Version>${project.version}</SIMPLE-ODF-Version>
                                    <SIMPLE-ODF-Website>http://incubator.apache.org/odftoolkit/simple/index.html</SIMPLE-ODF-Website>
                                    <SIMPLE-ODF-Built-By>${user.name}</SIMPLE-ODF-Built-By>
                                    <SIMPLE-ODF-Built-Date>${build.timestamp}</SIMPLE-ODF-Built-Date>
                                    <SIMPLE-ODF-Supported-ODF-Version>1.2</SIMPLE-ODF-Supported-ODF-Version>
                                </manifestEntries>
                            </manifestSection>
                        </manifestSections>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <!-- Workaround for http://jira.codehaus.org/browse/MGPG-9 -->
                    <mavenExecutorId>forked-path</mavenExecutorId>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <doctitle>Simple Java API for ODF(Simple ODF)</doctitle>
                    <minmemory>512m</minmemory>
                    <maxmemory>1024m</maxmemory>
                    <links>
                        <link>http://download.oracle.com/javase/6/docs/api/</link>
                        <link>http://xerces.apache.org/xerces-j/apiDocs/</link>
                        <link>http://odfdom.odftoolkit.org/0.8.7/odfdom/apidocs/</link>
                    </links>
                    <splitindex>true</splitindex>
                    <windowtitle>Simple ODF v${project.version} - http://odftoolkit</windowtitle>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <systemPropertyVariables>
                        <simple.version>${project.version}</simple.version>
                        <simple.timestamp>${build.timestamp}</simple.timestamp>
                    </systemPropertyVariables>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>single</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <configuration>
                            <tasks>
                                <copy file="./README.txt" tofile="./target/README.txt" overwrite="yes">
                                    <filterset>
                                        <filter token="VERSION" value="${project.version}" />
                                        <filter token="DATE" value="${build.timestamp}" />
                                    </filterset>
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>src/test/resources/**</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
        <extensions>
            <extension>
                <groupId>org.jvnet.wagon-svn</groupId>
                <artifactId>wagon-svn</artifactId>
                <version>1.9</version>
            </extension>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-webdav-jackrabbit</artifactId>
                <version>1.0-beta-7</version>
            </extension>
        </extensions>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <doctitle>Simple Java API for ODF(Simple ODF)</doctitle>
                    <minmemory>512m</minmemory>
                    <maxmemory>1024m</maxmemory>
                    <links>
                        <link>http://download.oracle.com/javase/6/docs/api/</link>
                        <link>http://xerces.apache.org/xerces-j/apiDocs/</link>
                    </links>
                    <splitindex>true</splitindex>
                    <windowtitle>Simple ODF API v${project.version} - http://incubator.apache.org/odftoolkit/</windowtitle>
                </configuration>
            </plugin>
            <!-- Code Coverage Testing generated by Cobertura -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <instrumentation>
                        <excludes>
                            <exclude>org/odftoolkit/**/*Test.class</exclude>
                        </excludes>
                    </instrumentation>
                </configuration>
            </plugin>
            <!-- Reporting integration test results -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.5</version>
                <reportSets>
                    <reportSet>
                        <id>integration-tests</id>
                        <reports>
                            <report>report-only</report>
                        </reports>
                        <configuration>
                            <outputName>failsafe-report</outputName>
                        </configuration>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
    <!-- More Project Information -->
    <name>Simple Java API for ODF (Simple ODF)</name>
    <description>A simple API for easy manipulation of ODF documents.</description>
    <url>http://incubator.apache.org/odftoolkit/simple/index.html</url>
    <inceptionYear>2010</inceptionYear>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/odf/trunk/simple</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/odf/trunk/simple</developerConnection>
        <url>http://svn.apache.org/viewvc/incubator/odf/trunk/simple</url>
    </scm>
    <profiles>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>release</name>
                    <value />
                </property>
            </activation>
            <build>
                <plugins>
                    <!--
                        We want to deploy the artifact to a staging location for perusal
                    -->
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                        <executions>
                            <execution>
                                <id>single</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <inherited>true</inherited>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <configuration>
                            <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
                            <updateReleaseInfo>true</updateReleaseInfo>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                            <attach>true</attach>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>integration-test</id>
            <activation>
                <property>
                    <name>integration-test</name>
                </property>
            </activation>
            <build>
                <defaultGoal>verify</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <version>2.5</version>
                        <executions>
                            <execution>
                                <id>failsafe-it</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                                <configuration>
                                    <classesDirectory>${basedir}/target/simple-odf.jar</classesDirectory>
                                    <systemPropertyVariables>
                                        <testresourcefolder>performance</testresourcefolder>
                                        <executetimes>1</executetimes>
                                        <testflag>test</testflag>
                                    </systemPropertyVariables>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <!-- Explizit version required for fix on systemPropertyVariables -->
                        <version>2.5</version>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>1.5</source>
                            <target>1.5</target>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!--
            Profile for deploying to the Sonatype repository, which requires GPG
            signatures see:
            https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
            https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven
            https://issues.sonatype.org/browse/OSSRH-1321
        -->
        <profile>
            <id>release-javadoc</id>
            <activation>
                <property>
                    <name>deploy</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <defaultGoal>site</defaultGoal>
            </build>
            <properties>
                <project.reporting.outputDirectory>target/site/apidocs</project.reporting.outputDirectory>
            </properties>
            <!-- <distributionManagement>
                <site>
                    <id>simple-odf-website</id>
                    <name>Simple Java API for ODF(Simple ODF)</name>
                    <url>dav:https://odftoolkit.org/website/simple/${project.version}/simple</url>
                </site>
            </distributionManagement> -->
        </profile>
    </profiles>
</project>
