<?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.
-->
<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.tomee</groupId>
        <artifactId>jakartaee-api-parent</artifactId>
        <version>10.0</version>
    </parent>

    <artifactId>jakartaee-api</artifactId>

    <name>Apache TomEE :: Jakarta EE 10 Full API</name>

    <properties>
        <geronimo-j2ee-connector_1.6_spec.version>1.0</geronimo-j2ee-connector_1.6_spec.version>
        <geronimo-j2ee-deployment_1.1_spec.version>1.1</geronimo-j2ee-deployment_1.1_spec.version>
        <geronimo-j2ee-management_1.1_spec.version>1.0.1</geronimo-j2ee-management_1.1_spec.version>
        <geronimo-jaxr_1.0_spec.version>2.1</geronimo-jaxr_1.0_spec.version>
        <geronimo-jaxrpc_1.1_spec.version>2.1</geronimo-jaxrpc_1.1_spec.version>
        <geronimo-osgi.version>1.1</geronimo-osgi.version>

        <!-- Web Profile -->
        <jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version>
        <jakarta.authentication-api.version>3.0.0</jakarta.authentication-api.version>
        <jakarta.ejb-api.version>4.0.1</jakarta.ejb-api.version>
        <jakarta.el-api.version>5.0.1</jakarta.el-api.version>
        <jakarta.enterprise.cdi-api.version>4.0.1</jakarta.enterprise.cdi-api.version>
        <jakarta.enterprise.lang-model-api.version>4.0.1</jakarta.enterprise.lang-model-api.version>

        <!--
        <jakarta.faces-api.version>3.0.0</jakarta.faces-api.version>
        -->
        <jakarta.inject.version>2.0.0</jakarta.inject.version>
        <jakarta.interceptor-api.version>2.1.0</jakarta.interceptor-api.version>
        <jakarta.json-api.version>2.1.1</jakarta.json-api.version>
        <jakarta.json.bind-api.version>3.0.0</jakarta.json.bind-api.version>
        <jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>
        <jakarta.security.enterprise-api.version>3.0.0</jakarta.security.enterprise-api.version>
        <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
        <jakarta.servlet.jsp-api.version>3.1.0</jakarta.servlet.jsp-api.version>
        <jakarta.servlet.jsp.jstl-api.version>3.0.0</jakarta.servlet.jsp.jstl-api.version>
        <jakarta.transaction-api.version>2.0.1</jakarta.transaction-api.version>
        <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
        <jakarta.websocket-api.version>2.1.0</jakarta.websocket-api.version>
        <jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>

        <!-- We use servlet, jsp, jaspic, websocket, el straight from Tomcat APIs -->
        <tomcat.version>10.1.31</tomcat.version>

        <!--  Full platform -->
        <geronimo-activation_2.0_spec.version>1.0.0</geronimo-activation_2.0_spec.version>
        <!--    <jakarta.activation-api.version>2.1.2</jakarta.activation-api.version>-->
        <jakarta.authorization-api.version>2.1.0</jakarta.authorization-api.version>
        <jakarta.batch-api.version>2.1.1</jakarta.batch-api.version>
        <jakarta.enterprise.concurrent-api.version>3.0.2</jakarta.enterprise.concurrent-api.version>
        <jakarta.jms-api.version>3.1.0</jakarta.jms-api.version>
        <jakarta.mail-api.version>2.1.0</jakarta.mail-api.version>
        <jakarta.resource-api.version>2.1.0</jakarta.resource-api.version>

        <!-- Optional APIs -->
        <jakarta.jws-api.version>3.0.0</jakarta.jws-api.version>
        <jakarta.xml.bind-api.version>4.0.0</jakarta.xml.bind-api.version>
        <jakarta.xml.soap-api.version>3.0.0</jakarta.xml.soap-api.version>
        <jakarta.xml.ws-api.version>4.0.0</jakarta.xml.ws-api.version>
    </properties>


    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/filtered-resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <id>clean-shade</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <configuration>
                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
                            <verbose>true</verbose>
                            <filesets>
                                <fileset>
                                    <directory>${project.build.directory}/</directory>
                                    <includes>
                                        <include>**/*.jar</include>
                                        <include>**/*.zip</include>
                                    </includes>
                                </fileset>
                            </filesets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>jakartaee-api-libs</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <finalName>jakartaee-api-libs-${project.version}</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                            <attach>true</attach>
                            <descriptors>
                                <descriptor>src/main/assembly/jakartaee-api-libs.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <id>jakartaee-api-tomcat</id>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createSourcesJar>true</createSourcesJar>
                            <useBaseVersion>true</useBaseVersion>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <shadedArtifactAttached>true</shadedArtifactAttached>
                            <shadedClassifierName>tomcat</shadedClassifierName>
                            <artifactSet>
                                <excludes>
                                    <exclude>*:*:sources</exclude>
                                    <exclude>*:tomcat-*</exclude>
                                    <exclude>jakarta.servlet:*</exclude>
                                    <exclude>jakarta.servlet.jsp:*</exclude>
                                    <exclude>jakarta.el:*</exclude>
                                    <exclude>jakarta.websocket:*</exclude>
                                    <exclude>jakarta.security.auth:*</exclude>
                                </excludes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <artifact>org.apache.geronimo.specs:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.txt</exclude>
                                        <exclude>META-INF/LICENSE</exclude>
                                    </excludes>
                                </filter>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/LICENSE</exclude>
                                        <exclude>META-INF/NOTICE</exclude>
                                        <exclude>META-INF/README.txt</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <manifestEntries>
                                        <Export-Package>
                                            jakarta.xml,jakarta.xml.ws,jakarta.xml.ws.handler,jakarta.xml.ws.handler.soap,jakarta.xml.ws.spi,jakarta.xml.ws.http,jakarta.xml.ws.soap,jakarta.xml.soap,jakarta.xml.namespace,jakarta.xml.registry,jakarta.xml.registry.infomodel,jakarta.xml.rpc,jakarta.xml.rpc.encoding,jakarta.xml.rpc.handler,jakarta.xml.rpc.handler.soap,jakarta.xml.rpc.holders,jakarta.xml.rpc.server,jakarta.xml.rpc.soap,jakarta.xml.stream,jakarta.xml.stream.events,jakarta.xml.stream.util,jakarta.xml.bind,jakarta.xml.bind.annotation,jakarta.xml.bind.annotation.adapters,jakarta.xml.bind.attachment,jakarta.xml.bind.helpers,jakarta.xml.bind.util,jakarta.annotation,jakarta.annotation.security,jakarta.ejb,jakarta.ejb.spi,jakarta.interceptor,jakarta.resource,jakarta.resource.cci,jakarta.resource.spi,jakarta.resource.spi.endpoint,jakarta.resource.spi.security,jakarta.resource.spi.work,jakarta.enterprise,jakarta.enterprise.deploy,jakarta.enterprise.deploy.model,jakarta.enterprise.deploy.model.exceptions,jakarta.enterprise.deploy.shared,jakarta.enterprise.deploy.shared.factories,jakarta.enterprise.deploy.spi,jakarta.enterprise.deploy.spi.exceptions,jakarta.enterprise.deploy.spi.factories,jakarta.enterprise.deploy.spi.status,jakarta.management,jakarta.management.j2ee,jakarta.management.j2ee.statistics,jakarta.security,jakarta.security.jacc,jakarta.jms,jakarta.persistence,jakarta.persistence.spi,jakarta.transaction,jakarta.transaction.xa,jakarta.jws,jakarta.jws.soap
                                        </Export-Package>
                                        <Import-Package>org.apache.geronimo.osgi.registry.api;resolution:=optional
                                        </Import-Package>
                                        <Private-Package>org.apache.geronimo.osgi.locator</Private-Package>
                                        <Bundle-Activator>org.apache.tomee.jakartaee.api.activator.MultiActivator
                                        </Bundle-Activator>
                                        <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
                                        <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton=true
                                        </Bundle-SymbolicName>
                                        <Bundle-Name>${project.name}</Bundle-Name>
                                    </manifestEntries>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                                    <resource>META-INF/LICENSE</resource>
                                    <file>${project.basedir}/src/main/legal/META-INF/tomcat/LICENSE</file>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                                    <resource>META-INF/NOTICE</resource>
                                    <file>${project.basedir}/src/main/legal/META-INF/tomcat/NOTICE</file>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                    <execution>
                        <id>jakartaee-api</id>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createSourcesJar>true</createSourcesJar>
                            <useBaseVersion>true</useBaseVersion>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <artifactSet>
                                <excludes>
                                    <exclude>*:*:sources</exclude>
                                </excludes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <artifact>jakarta:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.txt</exclude>
                                        <exclude>META-INF/LICENSE</exclude>
                                        <exclude>META-INF/NOTICE</exclude>
                                    </excludes>
                                </filter>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/LICENSE</exclude>
                                        <exclude>META-INF/NOTICE</exclude>
                                        <exclude>META-INF/README.txt</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <manifestEntries>
                                        <Export-Package>
                                            jakarta.xml,jakarta.xml.ws,jakarta.xml.ws.handler,jakarta.xml.ws.handler.soap,jakarta.xml.ws.spi,jakarta.xml.ws.http,jakarta.xml.ws.soap,jakarta.xml.soap,jakarta.xml.namespace,jakarta.xml.registry,jakarta.xml.registry.infomodel,jakarta.xml.rpc,jakarta.xml.rpc.encoding,jakarta.xml.rpc.handler,jakarta.xml.rpc.handler.soap,jakarta.xml.rpc.holders,jakarta.xml.rpc.server,jakarta.xml.rpc.soap,jakarta.xml.stream,jakarta.xml.stream.events,jakarta.xml.stream.util,jakarta.xml.bind,jakarta.xml.bind.annotation,jakarta.xml.bind.annotation.adapters,jakarta.xml.bind.attachment,jakarta.xml.bind.helpers,jakarta.xml.bind.util,jakarta.activation,jakarta.annotation,jakarta.annotation.security,jakarta.ejb,jakarta.ejb.spi,jakarta.interceptor,jakarta.resource,jakarta.resource.cci,jakarta.resource.spi,jakarta.resource.spi.endpoint,jakarta.resource.spi.security,jakarta.resource.spi.work,jakarta.enterprise,jakarta.enterprise.deploy,jakarta.enterprise.deploy.model,jakarta.enterprise.deploy.model.exceptions,jakarta.enterprise.deploy.shared,jakarta.enterprise.deploy.shared.factories,jakarta.enterprise.deploy.spi,jakarta.enterprise.deploy.spi.exceptions,jakarta.enterprise.deploy.spi.factories,jakarta.enterprise.deploy.spi.status,jakarta.management,jakarta.management.j2ee,jakarta.management.j2ee.statistics,jakarta.security,jakarta.security.jacc,jakarta.jms,jakarta.persistence,jakarta.persistence.spi,jakarta.transaction,jakarta.transaction.xa,jakarta.servlet,jakarta.servlet.http,jakarta.servlet.resources,jakarta.jws,jakarta.ws.rs,jakarta.jws.soap
                                        </Export-Package>
                                        <Import-Package>org.apache.geronimo.osgi.registry.api;resolution:=optional
                                        </Import-Package>
                                        <Private-Package>
                                            org.apache.tomee.jakartaee.api.activator,org.apache.geronimo.osgi.locator
                                        </Private-Package>
                                        <Bundle-Activator>org.apache.tomee.jakartaee.api.activator.MultiActivator
                                        </Bundle-Activator>
                                        <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
                                        <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton=true
                                        </Bundle-SymbolicName>
                                        <Bundle-Name>${project.name}</Bundle-Name>
                                    </manifestEntries>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                                    <resource>META-INF/LICENSE</resource>
                                    <file>${project.basedir}/src/main/legal/META-INF/all/LICENSE</file>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                                    <resource>META-INF/NOTICE</resource>
                                    <file>${project.basedir}/src/main/legal/META-INF/all/NOTICE</file>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer">
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>target/classes/jakartaee-api-feature.xml</file>
                                    <type>xml</type>
                                    <classifier>features</classifier>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <!-- This makes it possible to then import only the dependencies without caring about the versions -->
            <dependency>
                <groupId>jakarta.platform</groupId>
                <artifactId>jakarta.jakartaee-bom</artifactId>
                <version>10.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Web Profile -->
            <!-- From Tomcat
            <dependency>
              <groupId>jakarta.servlet</groupId>
              <artifactId>jakarta.servlet-api</artifactId>
              <version>${jakarta.servlet-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.servlet</groupId>
              <artifactId>jakarta.servlet-api</artifactId>
              <version>${jakarta.servlet-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            <dependency>
              <groupId>jakarta.servlet.jsp</groupId>
              <artifactId>jakarta.servlet.jsp-api</artifactId>
              <version>${jakarta.servlet.jsp-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.servlet.jsp</groupId>
              <artifactId>jakarta.servlet.jsp-api</artifactId>
              <version>${jakarta.servlet.jsp-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            <dependency>
              <groupId>jakarta.el</groupId>
              <artifactId>jakarta.el-api</artifactId>
              <version>${jakarta.el-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.el</groupId>
              <artifactId>jakarta.el-api</artifactId>
              <version>${jakarta.el-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            <dependency>
              <groupId>jakarta.servlet.jsp.jstl</groupId>
              <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
              <version>${jakarta.servlet.jsp.jstl-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.servlet.jsp.jstl</groupId>
              <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
              <version>${jakarta.servlet.jsp.jstl-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            -->

            <!-- This is coupled to Glassfish Faces - Mojorra
            <dependency>
              <groupId>jakarta.faces</groupId>
              <artifactId>jakarta.faces-api</artifactId>
              <version>${jakarta.faces-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.faces</groupId>
              <artifactId>jakarta.faces-api</artifactId>
              <version>${jakarta.faces-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            -->

            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jakarta.ws.rs-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jakarta.ws.rs-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <!-- From Tomcat
            <dependency>
              <groupId>jakarta.websocket</groupId>
              <artifactId>jakarta.websocket-api</artifactId>
              <version>${jakarta.websocket-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.websocket</groupId>
              <artifactId>jakarta.websocket-api</artifactId>
              <version>${jakarta.websocket-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            -->
            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${jakarta.json-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${jakarta.json-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.json.bind</groupId>
                <artifactId>jakarta.json.bind-api</artifactId>
                <version>${jakarta.json.bind-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json.bind</groupId>
                <artifactId>jakarta.json.bind-api</artifactId>
                <version>${jakarta.json.bind-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${jakarta.annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${jakarta.annotation-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${jakarta.ejb-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${jakarta.ejb-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${jakarta.transaction-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${jakarta.transaction-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>${jakarta.persistence-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>${jakarta.persistence-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${jakarta.validation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${jakarta.validation-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.interceptor</groupId>
                <artifactId>jakarta.interceptor-api</artifactId>
                <version>${jakarta.interceptor-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.interceptor</groupId>
                <artifactId>jakarta.interceptor-api</artifactId>
                <version>${jakarta.interceptor-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${jakarta.enterprise.cdi-api.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.inject</groupId>
                        <artifactId>jakarta.inject-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.el</groupId>
                        <artifactId>jakarta.el-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${jakarta.enterprise.cdi-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.inject</groupId>
                        <artifactId>jakarta.inject-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.lang-model</artifactId>
                <version>${jakarta.enterprise.lang-model-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.lang-model</artifactId>
                <version>${jakarta.enterprise.lang-model-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${jakarta.inject.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${jakarta.inject.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <!-- From Tomcat
            <dependency>
              <groupId>jakarta.authentication</groupId>
              <artifactId>jakarta.authentication-api</artifactId>
              <version>${jakarta.authentication-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.authentication</groupId>
              <artifactId>jakarta.authentication-api</artifactId>
              <version>${jakarta.authentication-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            -->
            <dependency>
                <groupId>jakarta.security.enterprise</groupId>
                <artifactId>jakarta.security.enterprise-api</artifactId>
                <version>${jakarta.security.enterprise-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.security.enterprise</groupId>
                <artifactId>jakarta.security.enterprise-api</artifactId>
                <version>${jakarta.security.enterprise-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>

            <!-- Full Platform -->
            <dependency>
                <groupId>jakarta.jms</groupId>
                <artifactId>jakarta.jms-api</artifactId>
                <version>${jakarta.jms-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.jms</groupId>
                <artifactId>jakarta.jms-api</artifactId>
                <version>${jakarta.jms-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-activation_2.0_spec</artifactId>
                <version>${geronimo-activation_2.0_spec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-activation_2.0_spec</artifactId>
                <version>${geronimo-activation_2.0_spec.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <!-- we use Geronimo here because there is an implementation part
            <dependency>
              <groupId>jakarta.activation</groupId>
              <artifactId>jakarta.activation-api</artifactId>
              <version>${jakarta.activation-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.activation</groupId>
              <artifactId>jakarta.activation-api</artifactId>
              <version>${jakarta.activation-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            <dependency>
              <groupId>jakarta.mail</groupId>
              <artifactId>jakarta.mail-api</artifactId>
              <version>${jakarta.mail-api.version}</version>
            </dependency>
            <dependency>
              <groupId>jakarta.mail</groupId>
              <artifactId>jakarta.mail-api</artifactId>
              <version>${jakarta.mail-api.version}</version>
              <classifier>sources</classifier>
              <optional>true</optional>
            </dependency>
            <dependency>
              <groupId>com.sun.mail</groupId>
              <artifactId>jakarta.mail</artifactId>
              <version>${jakarta.mail-api.version}</version>
            </dependency>
            -->
            <dependency>
                <groupId>jakarta.resource</groupId>
                <artifactId>jakarta.resource-api</artifactId>
                <version>${jakarta.resource-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.resource</groupId>
                <artifactId>jakarta.resource-api</artifactId>
                <version>${jakarta.resource-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.authorization</groupId>
                <artifactId>jakarta.authorization-api</artifactId>
                <version>${jakarta.authorization-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.authorization</groupId>
                <artifactId>jakarta.authorization-api</artifactId>
                <version>${jakarta.authorization-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise.concurrent</groupId>
                <artifactId>jakarta.enterprise.concurrent-api</artifactId>
                <version>${jakarta.enterprise.concurrent-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise.concurrent</groupId>
                <artifactId>jakarta.enterprise.concurrent-api</artifactId>
                <version>${jakarta.enterprise.concurrent-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.batch</groupId>
                <artifactId>jakarta.batch-api</artifactId>
                <version>${jakarta.batch-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.batch</groupId>
                <artifactId>jakarta.batch-api</artifactId>
                <version>${jakarta.batch-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>

            <!-- Optional APIs -->
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.xml.bind-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.xml.bind-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.ws</groupId>
                <artifactId>jakarta.xml.ws-api</artifactId>
                <version>${jakarta.xml.ws-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.ws</groupId>
                <artifactId>jakarta.xml.ws-api</artifactId>
                <version>${jakarta.xml.ws-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.jws</groupId>
                <artifactId>jakarta.jws-api</artifactId>
                <version>${jakarta.jws-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.jws</groupId>
                <artifactId>jakarta.jws-api</artifactId>
                <version>${jakarta.jws-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.soap</groupId>
                <artifactId>jakarta.xml.soap-api</artifactId>
                <version>${jakarta.xml.soap-api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.soap</groupId>
                <artifactId>jakarta.xml.soap-api</artifactId>
                <version>${jakarta.xml.soap-api.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>

            <!-- APIs from Tomcat -->
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-websocket-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-websocket-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-websocket-client-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-websocket-client-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-servlet-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-servlet-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jaspic-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jaspic-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jsp-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-jsp-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-el-api</artifactId>
                <version>${tomcat.version}</version>
                <classifier>sources</classifier>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-el-api</artifactId>
                <version>${tomcat.version}</version>
                <optional>true</optional>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- Web Profile -->
        <!-- From Tomcat
        <dependency>
          <groupId>jakarta.servlet</groupId>
          <artifactId>jakarta.servlet-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.servlet</groupId>
          <artifactId>jakarta.servlet-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>jakarta.servlet.jsp</groupId>
          <artifactId>jakarta.servlet.jsp-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.servlet.jsp</groupId>
          <artifactId>jakarta.servlet.jsp-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>jakarta.el</groupId>
          <artifactId>jakarta.el-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.el</groupId>
          <artifactId>jakarta.el-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>jakarta.servlet.jsp.jstl</groupId>
          <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.servlet.jsp.jstl</groupId>
          <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        -->
        <!-- Coupled with Mojorra so we'll include APIs in TomEE dependending on the flavor Plus or PluME
        <dependency>
          <groupId>jakarta.faces</groupId>
          <artifactId>jakarta.faces-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.faces</groupId>
          <artifactId>jakarta.faces-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        -->
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.ws.rs</groupId>
            <artifactId>jakarta.ws.rs-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <!-- From Tomcat
        <dependency>
          <groupId>jakarta.websocket</groupId>
          <artifactId>jakarta.websocket-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.websocket</groupId>
          <artifactId>jakarta.websocket-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        -->
        <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.json.bind</groupId>
            <artifactId>jakarta.json.bind-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.json.bind</groupId>
            <artifactId>jakarta.json.bind-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.ejb</groupId>
            <artifactId>jakarta.ejb-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.ejb</groupId>
            <artifactId>jakarta.ejb-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.transaction</groupId>
            <artifactId>jakarta.transaction-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.transaction</groupId>
            <artifactId>jakarta.transaction-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.interceptor</groupId>
            <artifactId>jakarta.interceptor-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.interceptor</groupId>
            <artifactId>jakarta.interceptor-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.enterprise</groupId>
            <artifactId>jakarta.enterprise.cdi-api</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>jakarta.inject</groupId>
                    <artifactId>jakarta.inject-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>jakarta.enterprise</groupId>
            <artifactId>jakarta.enterprise.cdi-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
            <exclusions>
                <exclusion>
                    <groupId>jakarta.inject</groupId>
                    <artifactId>jakarta.inject-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <!-- From Tomcat
        <dependency>
          <groupId>jakarta.authentication</groupId>
          <artifactId>jakarta.authentication-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.authentication</groupId>
          <artifactId>jakarta.authentication-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        -->
        <dependency>
            <groupId>jakarta.security.enterprise</groupId>
            <artifactId>jakarta.security.enterprise-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.security.enterprise</groupId>
            <artifactId>jakarta.security.enterprise-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>

        <!-- Full Platform -->
        <dependency>
            <groupId>jakarta.jms</groupId>
            <artifactId>jakarta.jms-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.jms</groupId>
            <artifactId>jakarta.jms-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-activation_2.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-activation_2.0_spec</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>

        <!-- we use Geronimo here because there is an implementation part
        <dependency>
          <groupId>jakarta.activation</groupId>
          <artifactId>jakarta.activation-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.activation</groupId>
          <artifactId>jakarta.activation-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>jakarta.mail</groupId>
          <artifactId>jakarta.mail-api</artifactId>
        </dependency>
        <dependency>
          <groupId>jakarta.mail</groupId>
          <artifactId>jakarta.mail-api</artifactId>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>com.sun.mail</groupId>
          <artifactId>jakarta.mail</artifactId>
          <version>${jakarta.mail-api.version}</version>
        </dependency>
        -->
        <dependency>
            <groupId>jakarta.resource</groupId>
            <artifactId>jakarta.resource-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.resource</groupId>
            <artifactId>jakarta.resource-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.authorization</groupId>
            <artifactId>jakarta.authorization-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.authorization</groupId>
            <artifactId>jakarta.authorization-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.enterprise.concurrent</groupId>
            <artifactId>jakarta.enterprise.concurrent-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.enterprise.concurrent</groupId>
            <artifactId>jakarta.enterprise.concurrent-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.batch</groupId>
            <artifactId>jakarta.batch-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.batch</groupId>
            <artifactId>jakarta.batch-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>

        <!-- Optional APIs -->
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.jws</groupId>
            <artifactId>jakarta.jws-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.jws</groupId>
            <artifactId>jakarta.jws-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.soap</groupId>
            <artifactId>jakarta.xml.soap-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.soap</groupId>
            <artifactId>jakarta.xml.soap-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.2.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
            <version>${geronimo-j2ee-deployment_1.1_spec.version}</version>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
            <version>${geronimo-j2ee-deployment_1.1_spec.version}</version>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
            <version>${geronimo-j2ee-management_1.1_spec.version}</version>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
            <version>${geronimo-j2ee-management_1.1_spec.version}</version>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jaxr_1.0_spec</artifactId>
            <version>${geronimo-jaxr_1.0_spec.version}</version>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jaxr_1.0_spec</artifactId>
            <version>${geronimo-jaxr_1.0_spec.version}</version>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-osgi-locator</artifactId>
            <version>${geronimo-osgi.version}</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-osgi-locator</artifactId>
            <version>${geronimo-osgi.version}</version>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>

        <!-- APIs from Tomcat -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-websocket-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-websocket-api</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jaspic-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jaspic-api</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-el-api</artifactId>
            <classifier>sources</classifier>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-el-api</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>

</project>
