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

    Copyright (c) 2019, 2021 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0 which is available at
    http://www.eclipse.org/legal/epl-2.0,
    or the Eclipse Distribution License v. 1.0 which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-->

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>

    <name>EclipseLink MOXy</name>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.moxy</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.parent</artifactId>
        <version>4.0.0-SNAPSHOT</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <properties>
        <comp.xlint>-Xlint:all,-serial,-exports</comp.xlint>

        <test-skip-moxy-jaxb-srg>${skipTests}</test-skip-moxy-jaxb-srg>
        <test-skip-moxy-jaxb>true</test-skip-moxy-jaxb>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <optional>true</optional>
        </dependency>

        <!--Other modules-->
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.asm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.core</artifactId>
        </dependency>

        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.eclipse.angus</groupId>
            <artifactId>angus-activation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.angus</groupId>
            <artifactId>angus-mail</artifactId>
        </dependency>

        <!--Test dependencies-->
        <!--Test framework-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Other modules-->
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.core</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <!--APIs and other libs used in test classes-->
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>jakarta.el</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.parsson</groupId>
            <artifactId>parsson</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <optional>true</optional>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <optional>true</optional>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <!-- required for BeanValidationRuntimeTestCase to pass
                        TODO: fix the test so this can go away -->
                    <includeEmptyDirs>true</includeEmptyDirs>
                </configuration>
            </plugin>
            <!--Add licence files (about.html, license.html, readme.html) to the build output directory-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <!--Resolve dependencies into Maven properties like ${org.eclipse.persistence:org.eclipse.persistence.jpa:jar} for JPA module-->
                    <execution>
                        <id>get-test-classpath-to-properties</id>
                        <goals>
                            <goal>properties</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-testCompile</id>
                        <configuration>
                            <compilerArgs>
                                <arg>--add-exports</arg>
                                <arg>org.eclipse.persistence.core/org.eclipse.persistence.internal.oxm.conversion=org.eclipse.persistence.moxy.test</arg>
                                <arg>--add-exports</arg>
                                <arg>org.eclipse.persistence.core/org.eclipse.persistence.internal.oxm.schema=org.eclipse.persistence.moxy.test</arg>
                                <arg>--add-exports</arg>
                                <arg>org.eclipse.persistence.core/org.eclipse.persistence.internal.oxm.schema.model=org.eclipse.persistence.moxy.test</arg>
                            </compilerArgs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                        <configuration>
                            <instructions>
                                <Export-Package>
                                    org.eclipse.persistence.internal.jaxb,
                                    org.eclipse.persistence.internal.jaxb.many,
                                    *
                                </Export-Package>
                                <Import-Package>
                                    org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}",
                                    *
                                </Import-Package>
                            </instructions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--Run specified tests/test suite-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <workingDirectory>${project.build.directory}/test-run</workingDirectory>
                    <systemPropertyVariables>
                        <eclipselink.xml.platform>${test.xml.platform}</eclipselink.xml.platform>
                        <parser>${test.xml.parser}</parser>
                    </systemPropertyVariables>
                </configuration>
                <executions>
                    <execution>
                        <id>default-test</id>
                        <configuration>
                            <skipTests>${test-skip-moxy-srg}</skipTests>
                            <excludes>
                                <exclude>*</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-moxy-jaxb-srg</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skipTests>${test-skip-moxy-jaxb-srg}</skipTests>
                            <reportNameSuffix>test-moxy-jaxb-srg</reportNameSuffix>
                            <includes>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBSRGTestSuite</include>
                            </includes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-moxy-jaxb</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skipTests>${test-skip-moxy-jaxb}</skipTests>
                            <reportNameSuffix>test-moxy-jaxb</reportNameSuffix>
                            <forkCount>1</forkCount>
                            <reuseForks>false</reuseForks>
                            <includes>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBTestSuite2</include>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBTestSuite3</include>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBTestSuite4</include>
                                <include>org.eclipse.persistence.testing.jaxb.JAXBBeanValidationTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.beanvalidation.BeanValidationHelperTestCase</include>
                                <include>org.eclipse.persistence.testing.jaxb.listofobjects.JAXBListOfObjectsSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.annotations.AnnotationsTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.externalizedmetadata.ExternalizedMetadataTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.javadoc.JavadocAnnotationExamplesTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.schemagen.SchemaGenTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.xmladapter.XmlAdapterTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.dynamic.DynamicJAXBTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.json.JSONTestSuite</include>
                                <include>org.eclipse.persistence.testing.jaxb.rs.RESTfulTestSuite</include>
                                <include>org.eclipse.persistence.testing.moxy.unit.**.*TestCase</include>
                                <include>org.eclipse.persistence.testing.jaxb.annotations.xmlidref.XmlIdSystemPropertyNotSetTestCase</include>
                                <include>org.eclipse.persistence.testing.jaxb.annotations.xmlvalue.XmlValueSystemPropertyNotSetTestCase</include>
                                <include>org.eclipse.persistence.testing.jaxb.annotations.xmlvalue.XmlValueSystemPropertyTestCase</include>
                            </includes>
                            <excludes>
                                <exclude>org.eclipse.persistence.testing.moxy.unit.**.*NonDefaultTestCase</exclude>
                                <exclude>org.eclipse.persistence.testing.jaxb.**.*NonDefaultTestCase</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-moxy-jaxb-non-default-system-properties</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <skipTests>${test-skip-moxy-jaxb}</skipTests>
                            <reportNameSuffix>test-moxy-jaxb-non-default-system-properties</reportNameSuffix>
                            <systemPropertyVariables>
                                <org.eclipse.persistence.moxy.annotation.xml-id-extension>true</org.eclipse.persistence.moxy.annotation.xml-id-extension>
                                <org.eclipse.persistence.moxy.annotation.xml-value-extension>true</org.eclipse.persistence.moxy.annotation.xml-value-extension>
                                <org.eclipse.persistence.json.type-compatibility>true</org.eclipse.persistence.json.type-compatibility>
                                <org.eclipse.persistence.json.use-xsd-types-prefix>true</org.eclipse.persistence.json.use-xsd-types-prefix>
                                <eclipselink.logging.level.moxy>FINE</eclipselink.logging.level.moxy>
                                <eclipselink.logging.payload.moxy>true</eclipselink.logging.payload.moxy>
                            </systemPropertyVariables>
                            <includes>
                                <include>org.eclipse.persistence.testing.moxy.unit.**.*NonDefaultTestCase</include>
                                <include>org.eclipse.persistence.testing.jaxb.**.*NonDefaultTestCase</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--
            To run tests on JPMS, remove all surefire executions except of the default-test
            and uncomment following:
            -->
<!--        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                        <version>${ant.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-junitlauncher</artifactId>
                        <version>${ant.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-junit</artifactId>
                        <version>${ant.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <record name="${project.build.directory}/build.txt" loglevel="verbose" action="start" />

                                <path id="moxy.test.module.path">
                                    <pathelement path="${project.build.outputDirectory}"/>
                                    <pathelement path="${project.build.testOutputDirectory}"/>

                                    <pathelement path="${org.glassfish:jakarta.json:jar}"/>

                                    <pathelement path="${org.eclipse.persistence:org.eclipse.persistence.asm:jar}"/>
                                    <pathelement path="${org.eclipse.persistence:org.eclipse.persistence.core:jar}"/>

                                    <pathelement path="${jakarta.annotation:jakarta.annotation-api:jar}"/>
                                    <pathelement path="${jakarta.el:jakarta.el-api:jar}"/>
                                    <pathelement path="${jakarta.inject:jakarta.inject-api:jar}"/>
                                    <pathelement path="${jakarta.validation:jakarta.validation-api:jar}"/>
                                    <pathelement path="${jakarta.ws.rs:jakarta.ws.rs-api:jar}"/>
                                    <pathelement path="${jakarta.xml.bind:jakarta.xml.bind-api:jar}"/>

                                    <pathelement path="${com.fasterxml:classmate:jar}"/>
                                    <pathelement path="${com.sun.activation:jakarta.activation:jar}"/>
                                    <pathelement path="${com.sun.mail:jakarta.mail:jar}"/>
                                    <pathelement path="${com.sun.xml.bind:jaxb-core:jar}"/>
                                    <pathelement path="${com.sun.xml.bind:jaxb-impl:jar}"/>
                                    <pathelement path="${com.sun.xml.bind:jaxb-xjc:jar}"/>

                                    <pathelement path="${org.glassfish:jakarta.el:jar}"/>
                                    <pathelement path="${org.glassfish.jersey.core:jersey-common:jar}"/>
                                    <pathelement path="${org.hamcrest:hamcrest-core:jar}"/>
                                    <pathelement path="${org.hibernate.validator:hibernate-validator:jar}"/>
                                    <pathelement path="${org.jboss.logging:jboss-logging:jar}"/>
                                    <pathelement path="${junit:junit:jar}"/>
                                </path>

                                <path id="moxy.test.class.path">
                                    <pathelement path="${org.glassfish.hk2:osgi-resource-locator:jar}"/>
                                </path>

                                <echo message="Running moxy tests on JPMS"/>
                                <property name="report.dir" location="${project.build.directory}"/>
                                <property name="src.dir" location="${project.build.testSourceDirectory}"/>
                                <property name="build.dir" location="${project.build.directory}/ant-run"/>
                                <delete dir="${report.dir}/jaxb" failonerror="false"/>
                                <mkdir dir="${report.dir}/jaxb"/>
                                <mkdir dir="${build.dir}"/>
                                <mkdir dir="${build.dir}/tmp"/>

                                <junit fork="true" failureproperty="junit.failed.jaxb" logfailedtests="true" showoutput="yes" printsummary="yes"
                                       dir="${build.dir}" tempdir="${build.dir}/tmp" >
                                    <jvmarg value="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"/>
                                    <modulepath refid="moxy.test.module.path"/>
                                    <classpath refid="moxy.test.class.path"/>
                                    <jvmarg value="-ea"/>
                                    <jvmarg line="- -add-modules jakarta.json,org.eclipse.persistence.moxy.test,com.fasterxml.classmate"/>
                                    <sysproperty key="platformType" value="SAX"/>
                                    <sysproperty key="metadataType" value="JAVA"/>
                                    <sysproperty key="useLogging" value="false"/>
                                    <sysproperty key="eclipselink.xml.platform" value="org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform"/>
                                    <sysproperty key="parser" value="org.eclipse.persistence.platform.xml.jaxp.JAXPParser"/>
                                    <batchtest todir="${report.dir}/jaxb">
                                        <fileset dir="${src.dir}">
                                            <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite2.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite3.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/JAXBTestSuite4.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/JAXBBeanValidationTestSuite.java" />
                                            <include name="org/eclipse/persistence/testing/jaxb/beanvalidation/BeanValidationHelperTestCase.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/annotations/AnnotationsTestSuite.java"/>
                                            <include
                                                name="org/eclipse/persistence/testing/jaxb/externalizedmetadata/ExternalizedMetadataTestSuite.java"/>
                                            <include
                                                name="org/eclipse/persistence/testing/jaxb/javadoc/JavadocAnnotationExamplesTestSuite.java"/>
                                            <include
                                                name="org/eclipse/persistence/testing/jaxb/typemappinginfo/TypeMappingInfoTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/schemagen/SchemaGenTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/xmladapter/XmlAdapterTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/json/JSONTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/rs/RESTfulTestSuite.java"/>
                                            <include name="org/eclipse/persistence/testing/moxy/unit/**/*TestCase.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/annotations/xmlidref/XmlIdSystemPropertyNotSetTestCase.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/annotations/xmlidref/XmlValueSystemPropertyNotSetTestCase.java"/>
                                            <include name="org/eclipse/persistence/testing/jaxb/annotations/xmlidref/XmlValueSystemPropertyTestCase.java"/>
                                        </fileset>
                                        <formatter type="xml"/>
                                    </batchtest>
                                </junit>

                                <junitreport todir="${report.dir}/jaxb">
                                    <fileset dir="${report.dir}/jaxb">
                                        <include name="**/*.xml"/>
                                    </fileset>
                                    <report todir="${report.dir}/jaxb"/>
                                </junitreport>

                                <fail message="TESTS FAILED !">
                                    <condition>
                                        <and>
                                            <isset property="junit.failed.jaxb"/>
                                            <istrue value="${test.fail.fast}"/>
                                        </and>
                                    </condition>
                                </fail>
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>-->
        </plugins>
    </build>

    <profiles>
        <!--MOXy related profiles-->
        <profile>
            <id>test-srg</id>
            <properties>
                <test-skip-moxy-jaxb-srg>false</test-skip-moxy-jaxb-srg>
            </properties>
        </profile>
        <profile>
            <id>test-lrg</id>
            <properties>
                <test-skip-moxy-jaxb-srg>true</test-skip-moxy-jaxb-srg>
                <test-skip-moxy-jaxb>false</test-skip-moxy-jaxb>
            </properties>
        </profile>
        <profile>
            <id>test-moxy-srg</id>
            <properties>
                <test-skip-moxy-jaxb-srg>false</test-skip-moxy-jaxb-srg>
            </properties>
        </profile>
        <profile>
            <id>test-moxy-lrg</id>
            <properties>
                <test-skip-moxy-jaxb-srg>true</test-skip-moxy-jaxb-srg>
                <test-skip-moxy-jaxb>false</test-skip-moxy-jaxb>
            </properties>
        </profile>
        <profile>
            <id>test-moxy-jaxb-srg</id>
            <properties>
                <test-skip-moxy-jaxb-srg>false</test-skip-moxy-jaxb-srg>
            </properties>
        </profile>
        <profile>
            <id>test-moxy-jaxb</id>
            <properties>
                <test-skip-moxy-jaxb>false</test-skip-moxy-jaxb>
            </properties>
        </profile>
    </profiles>
</project>
