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

    Copyright (c) 2019, 2020 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 Core</name>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.core</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.parent</artifactId>
        <version>3.0.0-M2</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <dependencies>
        <!--Other modules-->
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.asm</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <!--API dependecies-->
        <dependency>
            <groupId>jakarta.enterprise</groupId>
            <artifactId>jakarta.enterprise.cdi-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.jms</groupId>
            <artifactId>jakarta.jms-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.mail</groupId>
            <artifactId>jakarta.mail-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.resource</groupId>
            <artifactId>jakarta.resource-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.transaction</groupId>
            <artifactId>jakarta.transaction-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <!--Filtering enables generate/substitute version/qualifier... properties from Maven into version.properties file-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <!--Initialize build.date and build.time buildNumber properties. Used to generate version.properties in org.eclipse.persistence.core module-->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>build.date</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>create-timestamp</goal>
                        </goals>
                        <configuration>
                            <timestampFormat>yyyyMMdd</timestampFormat>
                            <timestampPropertyName>build.date</timestampPropertyName>
                        </configuration>
                    </execution>
                    <execution>
                        <id>build.time</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>create-timestamp</goal>
                        </goals>
                        <configuration>
                            <timestampFormat>HHmm</timestampFormat>
                            <timestampPropertyName>build.time</timestampPropertyName>
                        </configuration>
                    </execution>
                    <execution>
                        <phase>initialize</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--Generate OSGi bundle/manifest-->
            <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.cache,
                                    org.eclipse.persistence.internal.codegen,
                                    org.eclipse.persistence.internal.core.databaseaccess,
                                    org.eclipse.persistence.internal.core.descriptors,
                                    org.eclipse.persistence.internal.core.helper,
                                    org.eclipse.persistence.internal.core.queries,
                                    org.eclipse.persistence.internal.core.sessions,
                                    org.eclipse.persistence.internal.databaseaccess,
                                    org.eclipse.persistence.internal.descriptors,
                                    org.eclipse.persistence.internal.descriptors.changetracking,
                                    org.eclipse.persistence.internal.dynamic,
                                    org.eclipse.persistence.internal.expressions,
                                    org.eclipse.persistence.internal.helper,
                                    org.eclipse.persistence.internal.helper.linkedlist,
                                    org.eclipse.persistence.internal.history,
                                    org.eclipse.persistence.internal.identitymaps,
                                    org.eclipse.persistence.internal.indirection,
                                    org.eclipse.persistence.internal.jpa.jpql,
                                    org.eclipse.persistence.internal.jpa.parsing,
                                    org.eclipse.persistence.internal.localization,
                                    org.eclipse.persistence.internal.localization.i18n,
                                    org.eclipse.persistence.internal.mappings.converters,
                                    org.eclipse.persistence.internal.oxm,
                                    org.eclipse.persistence.internal.oxm.accessor,
                                    org.eclipse.persistence.internal.oxm.conversion,
                                    org.eclipse.persistence.internal.oxm.documentpreservation,
                                    org.eclipse.persistence.internal.oxm.mappings,
                                    org.eclipse.persistence.internal.oxm.record,
                                    org.eclipse.persistence.internal.oxm.record.deferred,
                                    org.eclipse.persistence.internal.oxm.record.json,
                                    org.eclipse.persistence.internal.oxm.record.namespaces,
                                    org.eclipse.persistence.internal.oxm.schema,
                                    org.eclipse.persistence.internal.oxm.schema.model,
                                    org.eclipse.persistence.internal.oxm.unmapped,
                                    org.eclipse.persistence.internal.platform.database,
                                    org.eclipse.persistence.internal.queries,
                                    org.eclipse.persistence.internal.security,
                                    org.eclipse.persistence.internal.sequencing,
                                    org.eclipse.persistence.internal.sessions,
                                    org.eclipse.persistence.internal.sessions.cdi,
                                    org.eclipse.persistence.internal.sessions.coordination,
                                    org.eclipse.persistence.internal.sessions.coordination.broadcast,
                                    org.eclipse.persistence.internal.sessions.coordination.jms,
                                    org.eclipse.persistence.internal.sessions.coordination.rmi,
                                    org.eclipse.persistence.internal.sessions.factories,
                                    org.eclipse.persistence.internal.sessions.factories.model,
                                    org.eclipse.persistence.internal.sessions.factories.model.event,
                                    org.eclipse.persistence.internal.sessions.factories.model.log,
                                    org.eclipse.persistence.internal.sessions.factories.model.login,
                                    org.eclipse.persistence.internal.sessions.factories.model.platform,
                                    org.eclipse.persistence.internal.sessions.factories.model.pool,
                                    org.eclipse.persistence.internal.sessions.factories.model.project,
                                    org.eclipse.persistence.internal.sessions.factories.model.property,
                                    org.eclipse.persistence.internal.sessions.factories.model.rcm,
                                    org.eclipse.persistence.internal.sessions.factories.model.rcm.command,
                                    org.eclipse.persistence.internal.sessions.factories.model.sequencing,
                                    org.eclipse.persistence.internal.sessions.factories.model.session,
                                    org.eclipse.persistence.internal.sessions.factories.model.transport,
                                    org.eclipse.persistence.internal.sessions.factories.model.transport.discovery,
                                    org.eclipse.persistence.internal.sessions.factories.model.transport.naming,
                                    org.eclipse.persistence.internal.sessions.remote,
                                    org.eclipse.persistence.internal.weaving,
                                    *
                                </Export-Package>
                                <Import-Package>
                                    javax.rmi;version=!;resolution:=optional,
                                    javax.rmi.CORBA;version=!;resolution:=optional,
                                    org.omg.CORBA;version=!;resolution:=optional,
                                    org.omg.CORBA.portable;version=!;resolution:=optional,
                                    org.omg.CORBA_2_3.portable;version=!;resolution:=optional,
                                    org.eclipse.persistence.eis.adapters.xmlfile;resolution:=optional,
                                    org.eclipse.persistence.internal.sessions.coordination.rmi.iiop;resolution:=optional,
                                    org.eclipse.persistence.sessions.coordination.corba.sun;resolution:=optional,
                                    com.sun.xml.bind;version=!;resolution:=optional,
                                    org.glassfish.jaxb.runtime;version=!;resolution:=optional,
                                    weblogic.*;resolution:=optional,
                                    *
                                </Import-Package>
                            </instructions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>java11-dependencies</id>
            <activation>
                <jdk>[11,)</jdk>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>org.glassfish.corba</groupId>
                    <artifactId>glassfish-corba-omgapi</artifactId>
                    <optional>true</optional>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>
