<?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</groupId>
    <artifactId>apache</artifactId>
    <version>24</version>
    <relativePath /> <!--Resolve on repository-->
  </parent>

  <groupId>org.apache.tomee</groupId>
  <artifactId>jakartaee-api</artifactId>
  <version>9.1-M2</version>
  <packaging>jar</packaging>

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

  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/tomee-jakartaee-api.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/tomee-jakartaee-api.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=tomee-jakartaee-api.git</url>
    <tag>jakartaee-api-9.1-M2</tag>
  </scm>

  <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.0.0</jakarta.annotation-api.version>
    <jakarta.authentication-api.version>2.0.0</jakarta.authentication-api.version>
    <jakarta.ejb-api.version>4.0.0</jakarta.ejb-api.version>
    <jakarta.el-api.version>4.0.0</jakarta.el-api.version>
    <jakarta.enterprise.cdi-api.version>3.0.0</jakarta.enterprise.cdi-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.0.0</jakarta.interceptor-api.version>
    <jakarta.json-api.version>2.0.1</jakarta.json-api.version>
    <jakarta.json.bind-api.version>2.0.0</jakarta.json.bind-api.version>
    <jakarta.persistence-api.version>3.0.0</jakarta.persistence-api.version>
    <jakarta.security.enterprise-api.version>2.0.0</jakarta.security.enterprise-api.version>
    <jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
    <jakarta.servlet.jsp-api.version>3.0.0</jakarta.servlet.jsp-api.version>
    <jakarta.servlet.jsp.jstl-api.version>2.0.0</jakarta.servlet.jsp.jstl-api.version>
    <jakarta.transaction-api.version>2.0.0</jakarta.transaction-api.version>
    <jakarta.validation-api.version>3.0.0</jakarta.validation-api.version>
    <jakarta.websocket-api.version>2.0.0</jakarta.websocket-api.version>
    <jakarta.ws.rs-api.version>3.0.0</jakarta.ws.rs-api.version>

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

    <!--  Full platform -->
    <geronimo-activation_2.0_spec.version>1.0.0-M1</geronimo-activation_2.0_spec.version>
    <!--<jakarta.activation-api.version>2.0.1</jakarta.activation-api.version>-->
    <jakarta.authorization-api.version>2.0.0</jakarta.authorization-api.version>
    <jakarta.batch-api.version>2.0.0</jakarta.batch-api.version>
    <jakarta.enterprise.concurrent-api.version>2.0.0</jakarta.enterprise.concurrent-api.version>
    <jakarta.jms-api.version>3.0.0</jakarta.jms-api.version>
    <jakarta.mail-api.version>2.0.1</jakarta.mail-api.version>
    <jakarta.resource-api.version>2.0.0</jakarta.resource-api.version>

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

    <!-- Reproducible builds see https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
    <!-- project.build.outputTimestamp is updated by maven-release-plugin during release -->
    <project.build.outputTimestamp>2022-06-09T11:43:04Z</project.build.outputTimestamp>
  </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-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

      <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-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>
                </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>9.1.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>
        </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.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-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>
