<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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.
-->

<!-- $Rev: 939008 $ $Date: 2010-04-28 09:48:35 -0700 (Wed, 28 Apr 2010) $ -->

<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>org.apache.geronimo.genesis.config</groupId>
        <artifactId>project-config</artifactId>
        <version>1.5</version>
    </parent>

    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>specs-ci</artifactId>
    <packaging>pom</packaging>
    <name>Geronimo Specifications -- CI Setup</name>
    <version>0-SNAPSHOT</version>

    <description>
      This file exists only to make the CI setup easier
    </description>

    <profiles>
        <profile>
            <id>JavaEE5AndOlder</id>
            <modules>
                <module>geronimo-osgi-support</module>

                <module>geronimo-annotation_1.0-MR1_spec</module>
                <module>geronimo-annotation_1.0_spec</module>
                <module>geronimo-availability_0.4_spec</module>
                <module>geronimo-availability_1.0_spec</module>
                <module>geronimo-ccpp_1.0_spec</module>
                <module>geronimo-commonj_1.1_spec</module>
                <module>geronimo-ejb_3.0_spec</module>
                <module>geronimo-el_1.0_spec</module>
                <module>geronimo-interceptor_3.0_spec</module>
                <module>geronimo-j2ee-deployment_1.1_spec</module>
                <module>geronimo-jacc_1.1_spec</module>
                <module>geronimo-javaee-deployment_1.1MR3_spec</module>
                <module>geronimo-jaxb_2.0_spec</module>
                <module>geronimo-jaxb_2.1_spec</module>
                <module>geronimo-jaxws_2.1.1_spec</module>
                <module>geronimo-jaxws_2.1_spec</module>
                <module>geronimo-jpa_1.0_spec</module>
                <module>geronimo-jsp_2.1_spec</module>
                <module>geronimo-servlet_2.5_spec</module>
                <module>geronimo-stax-api_1.2_spec</module>
                <module>geronimo-ws-metadata_2.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>JavaSE6</id>
            <modules>
                <module>geronimo-activation_1.1_spec</module>
                <module>geronimo-saaj_1.3_spec</module>
                <module>geronimo-stax-api_1.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>JavaEE6</id>
            <modules>
                <module>geronimo-ejb_3.1_spec</module>
                <module>geronimo-ejb_3.1_spec-alt</module>
                <module>geronimo-servlet_3.0_spec</module>
                <module>geronimo-jsp_2.2_spec</module>
                <module>geronimo-el_2.2_spec</module>
                <module>geronimo-jms_1.1_spec</module>
                <module>geronimo-jta_1.1_spec</module>
                <module>geronimo-javamail_1.4_spec</module>
                <module>geronimo-j2ee-connector_1.6_spec</module>
                <!-- Web Services 1.3          NONE -->
                <module>geronimo-jaxrpc_1.1_spec</module>
                <module>geronimo-jaxws_2.2_spec</module>
                <module>geronimo-jaxrs_1.1_spec</module>
                <module>geronimo-jaxb_2.2_spec</module>
                <module>geronimo-jaxr_1.0_spec</module>
                <module>geronimo-j2ee-management_1.1_spec</module>
                <!-- Deployment 1.2            NONE -->
                <module>geronimo-jacc_1.4_spec</module>
                <module>geronimo-jaspic_1.0_spec</module>
                <!-- DEBUG 1.0                 NONE -->
                <!-- JSTL 1.2                  NONE -->
                <!-- WS Metadata 2.1           NONE -->
                <!-- JSF 2.0                   NONE -->
                <module>geronimo-annotation_1.1_spec</module>
                <module>geronimo-jpa_2.0_spec</module>
                <module>geronimo-validation_1.0_spec</module>
                <!-- Managed Beans 1.0         NONE -->
                <module>geronimo-interceptor_1.1_spec</module>
                <module>geronimo-jcdi_1.0_spec</module>
                <module>geronimo-atinject_1.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>JavaEE7</id>
            <modules>
                <module>geronimo-ejb_3.2_spec</module>
                <module>geronimo-servlet_3.1_spec</module>
                <!-- JSP 2.3                   NONE -->
                <!-- EL 3.0                    NONE -->
                <module>geronimo-jms_2.0_spec</module>
                <module>geronimo-jta_1.2_spec</module>
                <module>geronimo-javamail_1.5_spec</module>
                <!-- Connector 1.7             NONE -->
                <!-- Web Services 1.4          NONE -->
                <module>geronimo-jaxrpc_1.1_spec</module>
                <module>geronimo-jaxws_2.2_spec</module>
                <module>geronimo-jaxrs_2.0_spec</module>
                <module>geronimo-websockets_1.0_spec</module>
                <module>geronimo-json_1.0_spec</module>
                <module>geronimo-concurrent_1.0_spec</module>
                <module>geronimo-jbatch_1.0_spec</module>
                <module>geronimo-jaxb_2.2_spec</module>
                <module>geronimo-jaxr_1.0_spec</module>
                <module>geronimo-j2ee-management_1.1_spec</module>
                <!-- Deployment 1.2            NONE -->
                <!-- JACC 1.5                  NONE -->
                <!-- JASPIC 1.1                NONE -->
                <!-- DEBUG 1.0                 NONE -->
                <!-- JSTL 1.2                  NONE -->
                <!-- WS Metadata 2.1           NONE -->
                <!-- JSF 2.2                   NONE -->
                <module>geronimo-annotation_1.2_spec</module>
                <module>geronimo-jpa_2.1_spec</module>
                <module>geronimo-validation_1.1_spec</module>
                <!-- Managed Beans 1.0         NONE -->
                <module>geronimo-interceptor_1.2_spec</module>
                <module>geronimo-jcdi_1.1_spec</module>
                <module>geronimo-atinject_1.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>JavaEE8</id>
            <modules>
                <module>geronimo-ejb_3.2_spec</module>
                <!-- Servlet 4.0               NONE -->
                <!-- JSP 2.3                   NONE -->
                <!-- EL 3.0                    NONE -->
                <module>geronimo-jms_2.0_spec</module>
                <module>geronimo-jta_1.2_spec</module>
                <!-- JavaMail 1.6              NONE -->
                <!-- Connectors 1.7            NONE -->
                <!-- Web Services 1.4          NONE -->
                <module>geronimo-jaxrpc_1.1_spec</module>
                <module>geronimo-jaxrs_2.1_spec</module>
                <!-- Websocket 1.1             NONE -->
                <module>geronimo-json_1.1_spec</module>
                <module>geronimo-jsonb_1.0_spec</module>
                <module>geronimo-concurrent_1.0_spec</module>
                <module>geronimo-jbatch_1.0_spec</module>
                <module>geronimo-jaxr_1.0_spec</module>
                <module>geronimo-j2ee-management_1.1_spec</module>
                <!-- Deployment 1.2            NONE -->
                <!-- JACC 1.5                  NONE -->
                <!-- JASPIC 1.1                NONE -->
                <module>geronimo-security_1.0_spec</module>
                <!-- DEBUG 1.0                 NONE -->
                <!-- JSTL 1.2                  NONE -->
                <!-- WS Metadata 2.1           NONE -->
                <!-- JSF 2.3                   NONE -->
                <module>geronimo-annotation_1.3_spec</module>
                <module>geronimo-jpa_2.2_spec</module>
                <module>geronimo-validation_2.0_spec</module>
                <!-- Managed Beans 1.0         NONE -->
                <module>geronimo-interceptor_1.2_spec</module>
                <module>geronimo-jcdi_2.0_spec</module>
                <module>geronimo-atinject_1.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>MicroProfile10</id>
            <modules>
                <!-- CDI 1.2 -->
                <module>geronimo-atinject_1.0_spec</module>
                <module>geronimo-annotation_1.2_spec</module>
                <!-- EL 3.0 -->
                <module>geronimo-interceptor_1.2_spec</module>
                <module>geronimo-jaxrs_2.0_spec</module>
                <module>geronimo-json_1.0_spec</module>
            </modules>
        </profile>
        <profile>
            <id>MicroProfile11</id>
            <modules>
                <!-- CDI 1.2                MP 1.0 -->
                <!-- Inject 1.0             MP 1.0 -->
                <!-- Common Annotations 1.2 MP 1.0 -->
                <!-- EL 3.0                 MP 1.0 -->
                <!-- Interceptor 1.2        MP 1.0 -->
                <!-- JAX-RS 2.0.1           MP 1.0 -->
                <!-- JSONP 1.0              MP 1.0 -->
                <!-- MP-Config 1.0 -->
            </modules>
        </profile>
        <profile>
            <id>MicroProfile12</id>
            <modules>
                <!-- CDI 1.2                MP 1.0 -->
                <!-- Inject 1.0             MP 1.0 -->
                <!-- Common Annotations 1.2 MP 1.0 -->
                <!-- EL 3.0                 MP 1.0 -->
                <!-- Interceptor 1.2        MP 1.0 -->
                <!-- JAX-RS 2.0.1           MP 1.0 -->
                <!-- JSONP 1.0              MP 1.0 -->
                <!-- MP-Config 1.1 -->
                <!-- MP-FaultTolerance 1.0 -->
                <!-- MP-Health 1.0 -->
                <!-- MP-Metrics 1.0 -->
                <!-- MP-JWT Auth 1.0 -->
            </modules>
        </profile>
        <profile>
            <id>MicroProfile13</id>
            <modules>
                <!-- CDI 1.2                MP 1.0 -->
                <!-- Inject 1.0             MP 1.0 -->
                <!-- Common Annotations 1.2 MP 1.0 -->
                <!-- EL 3.0                 MP 1.0 -->
                <!-- Interceptor 1.2        MP 1.0 -->
                <!-- JAX-RS 2.0.1           MP 1.0 -->
                <!-- JSONP 1.0              MP 1.0 -->
                <!-- MP-Config 1.2 -->
                <!-- MP-FaultTolerance 1.0 -->
                <!-- MP-Health 1.0 -->
                <!-- MP-Metrics 1.1 -->
                <!-- MP-JWT Auth 1.0 -->
                <!-- MP-Open API 1.0 -->
                <!-- MP-Rest Client 1.0 -->
                <!-- MP-Open Tracing 1.0 -->
            </modules>
        </profile>
        <profile>
            <id>MicroProfile14</id>
            <modules>
                <!-- CDI 1.2                MP 1.0 -->
                <!-- Inject 1.0             MP 1.0 -->
                <!-- Common Annotations 1.2 MP 1.0 -->
                <!-- EL 3.0                 MP 1.0 -->
                <!-- Interceptor 1.2        MP 1.0 -->
                <!-- JAX-RS 2.0.1           MP 1.0 -->
                <!-- JSONP 1.0              MP 1.0 -->
                <!-- MP-Config 1.3 -->
                <!-- MP-FaultTolerance 1.1 -->
                <!-- MP-Health 1.0 -->
                <!-- MP-Metrics 1.1 -->
                <!-- MP-JWT Auth 1.1 -->
                <!-- MP-Open API 1.0 -->
                <!-- MP-Rest Client 1.1 -->
                <!-- MP-Open Tracing 1.1 -->
            </modules>
        </profile>
        <profile>
            <id>MicroProfile20</id>
            <modules>
                <module>geronimo-jcdi_2.0_spec</module>
                <!-- Inject 1.0             MP 1.0 -->
                <!-- EL 3.0                 MP 1.0 -->
                <!-- Interceptor 1.2        MP 1.0 -->
                <module>geronimo-jaxrs_2.1_spec</module>
                <module>geronimo-jsonb_1.0_spec</module>
                <module>geronimo-json_1.1_spec</module>
                <module>geronimo-annotation_1.3_spec</module>
                <!-- MP-Config 1.3 -->
                <!-- MP-FaultTolerance 1.1 -->
                <!-- MP-Health 1.0 -->
                <!-- MP-Metrics 1.1 -->
                <!-- MP-JWT Auth 1.1 -->
                <!-- MP-Open API 1.0 -->
                <!-- MP-Rest Client 1.1 -->
                <!-- MP-Open Tracing 1.1 -->
            </modules>
        </profile>
        <profile>
            <id>others</id>
            <modules>
                <module>geronimo-jcache_1.0_spec</module>
            </modules>
        </profile>
    </profiles>


  <!--
  This is not a real pom, so we really don't need to maintain it publicly.
  Better to not release it and not have snapshots published of it.
  -->
  <distributionManagement>
    <repository>
      <id>localhost</id>
      <url>file://${basedir}/target/repo/</url>
    </repository>
    <snapshotRepository>
      <id>localhost</id>
      <url>file://${basedir}/target/snapshot-repo/</url>
    </snapshotRepository>
  </distributionManagement>

</project>

