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

    Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.

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

    SPDX-License-Identifier: BSD-3-Clause

-->

<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>com.sun.xml.bind.mvn</groupId>
        <artifactId>jaxb-osgi</artifactId>
        <version>2.3.3-b02</version>
    </parent>

    <artifactId>tests</artifactId>
    <name>JAXB OSGi Tests</name>
    <description>
        Tests for JAXB RI OSGi bundles.
        They should be in separate module because of dependency-hell of osgi and extra-osgi modules.
    </description>

    <dependencies>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-osgi</artifactId>
        </dependency>
    </dependencies>

    <profiles>
        <profile>
            <id>default-profile</id>
            <activation>
                <property>
                    <name>!dev</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.osgi</groupId>
                    <artifactId>osgi.core</artifactId>
                    <version>${felix.osgi.core}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>osgi-test-osgi</artifactId>
                    <version>${project.version}</version>
                    <scope>test</scope>
                </dependency>
                <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>osgi-test-parent</artifactId>
                    <version>${project.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-junit4osgi-plugin</artifactId>
                <version>${felix.junit4osgi}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <phase>integration-test</phase>
                        <configuration>
                            <skip>${skipOsgiTests}</skip>
                            <m_deployProjectArtifact>true</m_deployProjectArtifact>
                            <configuration>
                                <org.osgi.framework.system.packages.extra>
                                    javax.xml,
                                    javax.xml.stream,
                                    javax.lang.model.util,
                                    org.xml.sax.ext,
                                    javax.lang.model.type,
                                    javax.lang.model,
                                    javax.xml.bind.annotation,
                                    javax.xml.bind.helpers,
                                    javax.xml.bind,
                                    org.xml.sax.helpers,
                                    javax.xml.transform.dom,
                                    javax.annotation.processing,
                                    javax.xml.transform.dom,
                                    javax.xml.validation,
                                    javax.xml.namespace,
                                    javax.xml.bind.annotation.adapters,
                                    com.sun.source.tree,
                                    org.w3c.dom,
                                    javax.lang.model.element,
                                    javax.imageio.stream,
                                    org.xml.sax,
                                    javax.xml.stream.util,
                                    javax.xml.transform.sax,
                                    javax.activation,
                                    javax.tools,
                                    javax.xml.parsers,
                                    javax.imageio,
                                    javax.xml.transform,
                                    javax.swing.border,
                                    javax.xml.xpath,
                                    javax.swing.tree,
                                    javax.xml.transform.stream,
                                    org.w3c.dom.ls,
                                    javax.xml.datatype,
                                    javax.swing,
                                    javax.xml.stream.events,
                                    com.sun.source.util,
                                    javax.xml.bind.attachment
                                </org.osgi.framework.system.packages.extra>
                            </configuration>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
