<!--
   Copyright 2012, 2022 International Business Machines Corp.

   See the NOTICE file distributed with this work for additional information
   regarding copyright ownership. Licensed under the Apache License,
   Version 2.0 (the "License"); you may not use this file except in compliance
   with the License. You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

   SPDX-License-Identifier: Apache-2.0
 -->
<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/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>org.eclipse.ee4j</groupId>
        <artifactId>project</artifactId>
        <version>1.0.7</version>
        <relativePath />
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>jakarta.batch</groupId>
    <artifactId>batch-api-parent</artifactId>
    <version>2.1.1</version>
    <packaging>pom</packaging>
    <name>batch-parent</name>
    <description>
        Batch processing is a pervasive workload pattern, expressed by a distinct application organization and
        execution model. It is found across virtually every industry, applied to such tasks as statement
        generation, bank postings, risk evaluation, credit score calculation, inventory management, portfolio
        optimization, and on and on. Nearly any bulk processing task from any business sector is a candidate for
        batch processing.
        Batch processing is typified by bulk-oriented, non-interactive, background execution. Frequently long-
        running, it may be data or computationally intensive, execute sequentially or in parallel, and may be
        initiated through various invocation models, including ad hoc, scheduled, and on-demand.
        Batch applications have common requirements, including logging, checkpointing, and parallelization.
        Batch workloads have common requirements, especially operational control, which allow for initiation
        of, and interaction with, batch instances; such interactions include stop and restart.
    </description>
    <url>https://github.com/eclipse-ee4j/batch-api</url>
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <connection>scm:git:https://github.com/eclipse-ee4j/batch-api.git</connection>
        <developerConnection>scm:git:https://github.com/eclipse-ee4j/batch-api.git</developerConnection>
        <url>https://github.com/eclipse-ee4j/batch-api</url>
        <tag>2.1.1</tag>
    </scm>

    <developers>
        <developer>
            <id>scottkurz</id>
            <name>Scott Kurz</name>
            <email>skurz@us.ibm.com</email>
        </developer>
        <developer>
            <id>dmbelina</id>
            <name>Dan Belina</name>
            <email>belina@us.ibm.com</email>
        </developer>
        <developer>
            <id>ajmauer</id>
            <name>Andrew Mauer</name>
            <email>ajmauer@us.ibm.com</email>
        </developer>
    </developers>

    <!-- Setup issue with GPG agent on Windows makes me need to run this first to "prime" the GPG agent in order 
         to then use the preferred mechanism of -Poss-release, from the parent.  Not a huge deal, but hopefully
         can be removed to make things a bit cleaner when this usage issue is figured out. -->
    <profiles>
        <profile>
            <id>perform-release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-gpg-plugin</artifactId>
                            <version>1.4</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <properties>

        <!-- Building the project -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <version.java>11</version.java>

        <!-- Dependencies -->
        <version.jakarta.enterprise.jakarta.enterprise.cdi-api>4.0.0</version.jakarta.enterprise.jakarta.enterprise.cdi-api>
        <version.jakarta.inject.jakarta.inject-api>2.0.1</version.jakarta.inject.jakarta.inject-api>

        <version.org.sonatype.plugins.nexus-staging-maven-plugin>1.6.6</version.org.sonatype.plugins.nexus-staging-maven-plugin>
        <version.org.apache.maven.plugins.maven-antrun-plugin>1.8</version.org.apache.maven.plugins.maven-antrun-plugin>
        <version.org.apache.maven.plugins.maven-assembly-plugin>3.3.0</version.org.apache.maven.plugins.maven-assembly-plugin>
        <version.org.apache.maven.plugins.maven-compiler-plugin>3.8.1</version.org.apache.maven.plugins.maven-compiler-plugin>
        <version.org.apache.maven.plugins.maven-failsafe-plugin>2.18</version.org.apache.maven.plugins.maven-failsafe-plugin>
        <version.org.apache.maven.plugins.maven-jar-plugin>2.4</version.org.apache.maven.plugins.maven-jar-plugin>
        <version.org.apache.maven.plugins.maven-resources-plugin>2.7</version.org.apache.maven.plugins.maven-resources-plugin>
        <version.org.apache.maven.plugins.maven-surefire-plugin>2.18</version.org.apache.maven.plugins.maven-surefire-plugin>

    </properties>

    <modules>
        <module>api</module>
        <module>spec</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${version.jakarta.enterprise.jakarta.enterprise.cdi-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${version.jakarta.inject.jakarta.inject-api}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-compiler-plugin}</version>
                    <configuration>
                        <source>${version.java}</source>
                        <target>${version.java}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin> 
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-antrun-plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>enforce-versions</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireJavaVersion>
                                        <version>[11.0,12.0)</version>
                                        <message> ! JDK 11 is required !</message>
                                    </requireJavaVersion>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-failsafe-plugin}</version>
                </plugin> 
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-jar-plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-resources-plugin}</version>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.org.apache.maven.plugins.maven-surefire-plugin}</version>
                </plugin>
            </plugins>
        </pluginManagement>

    </build>
</project>

