<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>5.0.1-SNAPSHOT</version>
    <name>Apache POI - the Java API for Microsoft Documents</name>
    <description>Maven build of Apache POI for Sonar checks</description>
    <url>https://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>Apache 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://bz.apache.org/bugzilla/</url>
    </issueManagement>

    <scm>
        <connection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</developerConnection>
        <url>https://svn.apache.org/viewvc/poi</url>
    </scm>

    <repositories>
        <repository>
            <id>apache-releases-repo</id>
            <name>apache releases repo</name>
            <url>https://repository.apache.org/content/repositories/releases</url>
        </repository>
    </repositories>

    <modules>
        <module>main</module>
        <module>ooxml-full</module>
        <module>ooxml</module>
        <module>scratchpad</module>
        <module>excelant</module>
        <module>examples</module>
        <module>integration-test</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</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>

        <sonar.organization>apache</sonar.organization>
        <sonar.projectKey>poi-parent</sonar.projectKey>
        <sonar.moduleKey>${project.artifactId}</sonar.moduleKey>

        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <!-- sonar.jacoco.reportPaths>target/jacoco.exec</sonar.jacoco.reportPaths -->
        <sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>

        <!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
        <xmlbeans.version>4.0.0</xmlbeans.version>
        <junit.version>5.7.0</junit.version>
        <xmlunit.version>2.8.2</xmlunit.version>
        <mockito.version>3.6.28</mockito.version>
        <maven.plugin.resources.version>3.2.0</maven.plugin.resources.version>
        <maven.plugin.jar.version>3.2.0</maven.plugin.jar.version>
        <maven.plugin.clean.version>3.1.0</maven.plugin.clean.version>
        <maven.plugin.download.version>1.6.0</maven.plugin.download.version>
        <maven.plugin.antrun.version>3.0.0</maven.plugin.antrun.version>
        <maven.plugin.surefire.version>3.0.0-M5</maven.plugin.surefire.version>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven.plugin.surefire.version}</version>
                <configuration>
                    <printSummary>false</printSummary>
                    <systemPropertyVariables>
                        <POI.testdata.path>../../test-data</POI.testdata.path>
                        <java.awt.headless>true</java.awt.headless>
                    </systemPropertyVariables>
                    <!-- use to following to analyze OOM issues:	-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -->
                    <argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp -XX:-OmitStackTraceInFastThrow</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>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.xmlunit</groupId>
            <artifactId>xmlunit-core</artifactId>
            <version>${xmlunit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
            <version>2.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.14.0</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</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</argLine>
            </properties>
        </profile>

    </profiles>
</project>
