<?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.7.0-incubating-SNAPSHOT</version>
	</parent>
	<artifactId>odfvalidator</artifactId>
	<version>1.2.0-incubating-SNAPSHOT</version>
	<packaging>war</packaging>

	<dependencies>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>odfdom-java</artifactId>
			<version>0.9.0-incubating-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
		</dependency>
		<dependency>
			<groupId>net.java.dev.msv</groupId>
			<artifactId>msv-core</artifactId>
			<version>2013.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.iso_relax.verifier.jaxp.validation</groupId>
			<artifactId>isorelax-jaxp-bridge</artifactId>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
		</dependency>
        <dependency>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<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>

	<!--
   The POM of org.iso_relax.verifier.jaxp.validation:isorelax-jaxp-bridge:jar:1.0
   on the central repo is not 4.0.0 complaint so that we should pick the one SMX
   Repo already provides, as otherwise building under Maven 3.0.4 would fail!
   So delete any old .m2 cache entries of yours for this artifact beforehand if
   you make use of Maven 3.0.4+
 -->
	<repositories>
		<repository>
			<id>apache.smx.repo</id>
			<url>http://svn.apache.org/repos/asf/servicemix/m2-repo/</url>
			<name>Apache ServiceMix Repo</name>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
			<releases>
				<enabled>true</enabled>
			</releases>
		</repository>
	</repositories>

	<!-- Build Settings -->
	<build>
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-webdav-jackrabbit</artifactId>
				<version>1.0-beta-7</version>
			</extension>
		</extensions>
		<plugins><!--
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>1.0-beta-3</version>
				<executions>
					<execution>
						<id>download-odf-schema-v1.2</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://docs.oasis-open.org/office/v1.2</url>
							<fromFile>os/OpenDocument-v1.2-os-schemas.zip</fromFile>
							<toDir>${project.build.directory}/schemas</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-odf-manifest-schema-v1.1</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://docs.oasis-open.org/office/v1.1</url>
							<fromFile>OS/OpenDocument-manifest-schema-v1.1.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.1</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-odf-schema-v1.1</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://docs.oasis-open.org/office/v1.1</url>
							<fromFile>OS/OpenDocument-schema-v1.1.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.1</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-odf-strict-schema-v1.1</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://docs.oasis-open.org/office/v1.1</url>
							<fromFile>OS/OpenDocument-strict-schema-v1.1.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.1</toDir>
						</configuration>
					</execution>
                    <!- https://issues.apache.org/jira/browse/ODFTOOLKIT-406
                    Disabled due to a security exception on Apache servers, when downloading from that OASIS host
                    Error handling resource: sun.security.validator.ValidatorException: 
                        PKIX path building failed: 
                            sun.security.provider.certpath.SunCertPathBuilderException: 
                                unable to find valid certification path to requested target
                                                        
					<execution>
						<id>download-odf-manifest-schema-v1.0</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://oasis-open.org/committees/download.php/12570</url>
							<fromFile>OpenDocument-manifest-schema-v1.0-os.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.0</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-odf-schema-v1.0</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://www.oasis-open.org/committees/download.php/12571</url>
							<fromFile>OpenDocument-schema-v1.0-os.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.0</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-odf-strict-schema-v1.0</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://www.oasis-open.org/committees/download.php/12569</url>
							<fromFile>OpenDocument-strict-schema-v1.0-os.rng</fromFile>
							<toDir>${project.build.directory}/classes/schema/odf1.0</toDir>
						</configuration>
					</execution>
                                        ->     
					<execution>
						<id>download-mathml-schema-v3.0</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://www.w3.org/Math/RelaxNG</url>
							<fromFile>mathml3-relaxng.zip</fromFile>
							<toDir>${project.build.directory}/schemas</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-mathml-schema-v2.0</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://www.w3.org/Math/XMLSchema</url>
							<fromFile>mathml2.tgz</fromFile>
							<toDir>${project.build.directory}/schemas</toDir>
						</configuration>
					</execution>
					<execution>
						<id>download-mathml-schema-v1.01</id>
						<phase>validate</phase>
						<goals>
							<goal>download-single</goal>
						</goals>
						<configuration>
							<url>dav:http://www.w3.org/pub/WWW/TR/REC-MathML</url>
							<fromFile>mmlents.zip</fromFile>
							<toDir>${project.build.directory}/schemas</toDir>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.2</version>
				<executions>
					<execution>
						<id>unzip schema packages</id>
						<phase>validate</phase>
						<configuration>
							<tasks>
								<echo message="unzip odf 1.2 schemas" />
								<unzip src="${project.build.directory}/schemas/OpenDocument-v1.2-os-schemas.zip" dest="${project.build.directory}/classes/schema/odf1.2/" />
								<echo message="unzip mathml 3.0 schemas" />
								<unzip src="${project.build.directory}/schemas/mathml3-relaxng.zip" dest="${project.build.directory}/schemas/" />
								<move file="${project.build.directory}/schemas/mathml3" tofile="${project.build.directory}/classes/schema/mathml3.0" />
								<echo message="untar mathml 2.0 schemas" />
								<untar src="${project.build.directory}/schemas/mathml2.tgz" dest="${project.build.directory}/schemas/" />
								<move file="${project.build.directory}/schemas/mathml2" tofile="${project.build.directory}/classes/schema/mathml2.0" />
								<echo message="unzip mathml 1.01 schemas" />
								<unzip src="${project.build.directory}/schemas/mmlents.zip" dest="${project.build.directory}/schemas/" />
								<move file="${project.build.directory}/schemas/mmlents" tofile="${project.build.directory}/classes/schema/mathml1.01" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>

				</executions>
			</plugin>-->
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
                    <!-- defined in the parent pom.xml -->
					<source>${jdk.version}</source>
					<target>${jdk.version}</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>
						<!--  No custom manifest worked, neither the below..
							<index>true</index>
							<manifest>
								<addClasspath>true</addClasspath>
								<odfdomName>ODFDOM Validator</odfdomName>
								<odfdomVersion>${project.version}</odfdomVersion>
								<odfdomWebsite>http://incubator.apache.org/odftoolkit/conformance/ODFValidator.html</odfdomWebsite>
								<odfdomBuiltDate>${build.timestamp}</odfdomBuiltDate>
								<odfdomSupportedOdfVersion>1.2</odfdomSupportedOdfVersion>
								<mainClass>org.odftoolkit.odfvalidator.Main</mainClass>
							</manifest>
						</archive>-->
						<manifestEntries>
							<version>${project.version}</version>
						</manifestEntries>
						<manifestSections>
							<manifestSection>
								<name>odfvalidator</name>
								<manifestEntries>
									<ODFDOM-Name>ODFDOM Validator</ODFDOM-Name>
									<ODFDOM-Version>${project.version}</ODFDOM-Version>
									<ODFDOM-Website>http://incubator.apache.org/odftoolkit/conformance/ODFValidator.html</ODFDOM-Website>
									<ODFDOM-Built-Date>${build.timestamp}</ODFDOM-Built-Date>
									<ODFDOM-Supported-Odf-Version>1.2</ODFDOM-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-surefire-plugin</artifactId>
				<!-- Explizit version required for fix on systemPropertyVariables -->
				<version>2.15</version>
				<configuration>
					<systemPropertyVariables>
						<odfdom.version>${project.version}</odfdom.version>
						<odfdom.timestamp>${build.timestamp}</odfdom.timestamp>
						<org.odftoolkit.odfdom.validation>org.odftoolkit.odfdom.pkg.DefaultErrorHandler</org.odftoolkit.odfdom.validation>
					</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>
					<archive>
						<manifestEntries>							
							<version>${project.version}</version>
							<Main-Class>org.odftoolkit.odfvalidator.Main</Main-Class>
						</manifestEntries>
					</archive>
					<descriptors>					
						<descriptor>src/main/assembly/src.xml</descriptor>
					</descriptors>
				</configuration>
				<executions>
					<execution>
						<id>single</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>src/main/resources/**</exclude>
						<exclude>src/test/resources/**</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<!-- 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>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<doctitle>ODFDOM</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>ODFDOM Validator API v${project.version} - http://incubator.apache.org/odftoolkit/</windowtitle>
				</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>ODF Validator</name>
	<description>
		ODF Validator is a tool that validates OpenDocument files and checks them for certain conformance criteria.
	</description>
	<url>http://incubator.apache.org/odftoolkit/conformance/ODFValidator.html</url>
	<inceptionYear>2008</inceptionYear>
	<licenses>
		<license>
			<name>Apache 2</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</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/validator</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/odf/trunk/validator</developerConnection>
		<url>http://svn.apache.org/viewvc/incubator/odf/trunk/validator</url>
	</scm>
	<profiles>
		<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/odfdom.jar</classesDirectory>
									<systemPropertyVariables>
										<testresourcefolder>performance</testresourcefolder>
										<executetimes>1</executetimes>
										<testflag>test</testflag>
									</systemPropertyVariables>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<!-- Explizit version required for fix on systemPropertyVariables -->
						<version>2.6</version>
						<configuration>
							<systemPropertyVariables>
								<odfdom.version>${project.version}</odfdom.version>
								<odfdom.timestamp>${build.timestamp}</odfdom.timestamp>
								<org.odftoolkit.odfdom.validation>true</org.odftoolkit.odfdom.validation>
							</systemPropertyVariables>
							<skip>true</skip>
						</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-960
  -->
		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>1.1</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
