<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>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-parent</artifactId>
	<packaging>pom</packaging>
	<version>3.15-beta2-SNAPSHOT</version>
	<name>Apache POI - the Java API for Microsoft Documents</name>
	<description>Maven build of Apache POI for Sonar checks</description>
	<url>http://poi.apache.org/</url>
	
	<mailingLists>
		<mailingList>
			<name>POI Users List</name>
			<subscribe>user-subscribe@poi.apache.org</subscribe>
			<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
		</mailingList>
		<mailingList>
			<name>POI Developer List</name>
			<subscribe>dev-subscribe@poi.apache.org</subscribe>
			<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
			<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
		</mailingList>
	</mailingLists>
	
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>
	
	<organization>
		<name>Apache Software Foundation</name>
		<url>http://www.apache.org/</url>
	</organization>
	
	<issueManagement>
		<system>bugzilla</system>
		<url>https://issues.apache.org/bugzilla/</url>
	</issueManagement>
	
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/poi/trunk</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</developerConnection>
		<url>http://svn.apache.org/viewvc/poi</url>
	</scm>
	
	<modules>
		<module>main</module>
		<module>ooxml-schema</module>
		<module>ooxml-schema-encryption</module>
		<module>ooxml-schema-security</module>
		<module>ooxml</module>
		<module>scratchpad</module>
		<module>excelant</module>
		<module>examples</module>
	</modules>
	
	<properties>
		<project.build.sourceEncoding>ASCII</project.build.sourceEncoding>
		<!-- Try to disable running SVN blame as it causes errors here because the source is copied from the actual SVN location here! -->
		<sonar.scm.disabled>true</sonar.scm.disabled>

		<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
		<xmlbeans.version>2.6.0</xmlbeans.version>
		<junit.version>4.12</junit.version>
		<maven.plugin.resources.version>3.0.1</maven.plugin.resources.version>
		<maven.plugin.jar.version>3.0.1</maven.plugin.jar.version>
		<maven.plugin.clean.version>3.0.0</maven.plugin.clean.version>
		<maven.plugin.download.version>1.1.0</maven.plugin.download.version>
		<maven.plugin.antrun.version>1.8</maven.plugin.antrun.version>
		<maven.plugin.surefire.version>2.19.1</maven.plugin.surefire.version>
	</properties>
	
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.5.1</version>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>${maven.plugin.surefire.version}</version>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.surefire</groupId>
						<artifactId>surefire-junit47</artifactId>
						<version>${maven.plugin.surefire.version}</version>
					</dependency>
				</dependencies>
				<configuration>
					<systemPropertyVariables>
						<POI.testdata.path>../../test-data</POI.testdata.path>
						<java.awt.headless>true</java.awt.headless>
						<org.apache.poi.util.POILogger>org.apache.poi.util.NullLogger</org.apache.poi.util.POILogger>
					</systemPropertyVariables>
					<!-- use to following to analyze OOM issues:	-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -->
					<argLine>-Duser.language=en -Duser.country=US -Xmx1024m</argLine>
					<excludes>
						<exclude>**/All*Tests.java</exclude>
						<exclude>**/TestUnfixedBugs.java</exclude>
						<exclude>**/TestcaseRecordInputStream.java</exclude>
						<exclude>**/POITestCase.java</exclude>
						<!-- TODO: error about no public construct, seems to run with JUnit 3.8... -->
						<exclude>**/TestWordToConverterSuite*.java</exclude>
						<exclude>**/TestExcelConverterSuite*.java</exclude>
					</excludes>
					<!--test>TestPPTX2PNG</test-->
					<!--parallel>both</parallel>
				<threadCount>10</threadCount-->
				</configuration>
			</plugin>
		</plugins>
	</build>
	
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<profiles>
		<!-- We need a fair amount of memory to compile the xml schema, -->
		<!-- but limit it in case it goes wrong!                        -->
		<!-- Pick the right amount based on 32 vs 64 bit jvm            -->
        <!-- ********************************************************** -->
        <!-- If you are using IntelliJ, you might want to check         -->
        <!-- http://stackoverflow.com/questions/24115142                -->
        <!-- ********************************************************** -->
		<profile>
			<id>32bitstuff</id>
			<activation>
				<property>
					<name>sun.arch.data.model</name>
					<value>32</value>
				</property>
			</activation>
			<properties>
				<maven.compiler.maxmem>512m</maven.compiler.maxmem>
                <argLine>-Xmx768m -XX:MaxPermSize=128m @{argLine}</argLine>
			</properties>
		</profile>
		
		<profile>
			<id>64bitstuff</id>
			<activation>
				<property>
					<name>sun.arch.data.model</name>
					<value>64</value>
				</property>
			</activation>
			<properties>
				<maven.compiler.maxmem>768m</maven.compiler.maxmem>
                <argLine>-Xmx1024m -XX:MaxPermSize=256m @{argLine}</argLine>
			</properties>
		</profile>

		<profile>
			<id>xmlbean</id>
      <activation>
        <file><exists>xmlbeans.marker</exists></file>
      </activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>xmlbeans-maven-plugin</artifactId>
						<version>2.3.3</version>
						<executions>
							<execution>
								<phase>process-sources</phase>
								<goals>
									<goal>xmlbeans</goal>
								</goals>
                <configuration>
                  <schemaDirectory>${basedir}/target/schemas</schemaDirectory>
                  <javaSource>1.5</javaSource>
                  <noJavac>true</noJavac>
                  <noUpa>${xmlbeans.noUpa}</noUpa>
                  <noPvr>${xmlbeans.noPvr}</noPvr>
                  <xmlConfigs>
                    <xmlConfig implementation="java.io.File">${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionCertificate.xsdconfig</xmlConfig>
                    <xmlConfig implementation="java.io.File">${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionInfo.xsdconfig</xmlConfig>
                    <xmlConfig implementation="java.io.File">${basedir}/../../src/ooxml/resources/org/apache/poi/poifs/crypt/encryptionPassword.xsdconfig</xmlConfig>
                    <xmlConfig implementation="java.io.File">${basedir}/../../src/ooxml/resources/org/apache/poi/schemas/ooxmlSchemas.xsdconfig</xmlConfig>
                  </xmlConfigs>
                </configuration>
							</execution>
						</executions>
					</plugin>

          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>${maven.plugin.antrun.version}</version>
            <executions>
              <execution>
                <id>copy-xmltype-and-xsdconfig</id>
                <phase>generate-sources</phase>
                <goals><goal>run</goal></goals>                   
                <configuration>
                  <target>
                    <copy todir="${basedir}/target/generated-sources/xmlbeans">
                      <fileset dir="${basedir}/../../src/ooxml/java">
                        <include name="org/apache/poi/POIXMLTypeLoader.java"/>
                        <include name="org/apache/poi/util/DocumentHelper.java"/>
                        <include name="org/apache/poi/util/SAXHelper.java"/>
                      </fileset>
                      <fileset dir="${basedir}/../../src/java">
                        <include name="org/apache/poi/util/POILogFactory.java"/>
                        <include name="org/apache/poi/util/POILogger.java"/>
                        <include name="org/apache/poi/util/NullLogger.java"/>
                        <include name="org/apache/poi/util/Internal.java"/>
                      </fileset>
                    </copy>
                    <copy todir="${basedir}/target/schemas">
                      <fileset dir="${basedir}/../../src/ooxml/resources/org/apache/poi/schemas"/>
                    </copy>
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>replace-xmltypeloader</id>
                <phase>process-sources</phase>
                <goals><goal>run</goal></goals>                   
                <configuration>
                  <target>
                    <replace dir="${basedir}/target/generated-sources/xmlbeans" includes="**/*.java" excludes="**/impl/**">
                        <replacetoken>org.apache.xmlbeans.XmlBeans.getContextTypeLoader()</replacetoken>
                        <replacevalue>org.apache.poi.POIXMLTypeLoader</replacevalue>
                    </replace>                    
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>remove-xmltypeloader-from-schema-jar</id>
                <phase>prepare-package</phase>
                <goals><goal>run</goal></goals>                   
                <configuration>
                  <target>
                    <touch file="${basedir}/target/generated-sources/xmlbeans/.staleFlag"/>
                    <delete dir="${basedir}/target/classes/org/apache"/>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
				</plugins>
			</build>
      <dependencies>
        <dependency>
          <groupId>org.apache.xmlbeans</groupId>
          <artifactId>xmlbeans</artifactId>
          <version>${xmlbeans.version}</version>
        </dependency>
      </dependencies>
		</profile>
	</profiles>
</project>