<?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>
                <!-- JPA 2.2                   NONE -->
                <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>

