<?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">

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>14</version>
  </parent>

  <groupId>org.apache.openejb</groupId>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>javaee-api</artifactId>
  <packaging>jar</packaging>
  <name>OpenEJB :: JavaEE Full API (zip and jar files)</name>
  <version>7.0-SNAPSHOT</version>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/tomee/javaee-api/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/tomee/javaee-api/trunk</developerConnection>
    <url>http://svn.apache.org/viewvc/tomee/javaee-api/trunk</url>
  </scm>

  <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.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</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>2.4</version>
        <executions>
          <execution>
            <id>javaee-api-libs</id>
            <phase>package</phase>
            <goals>
              <goal>attached</goal>
            </goals>
            <configuration>
              <finalName>javaee-api-libs-${project.version}</finalName>
              <appendAssemblyId>false</appendAssemblyId>
              <descriptor>src/main/assembly/javaee-api-libs.xml</descriptor>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <executions>
          <execution>
            <id>javaee-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>*:geronimo-jsp*</exclude>
                  <exclude>*:tomcat-servlet-api*</exclude>
                  <exclude>*:tomcat-websocket-api*</exclude>
                  <exclude>*:tomcat-el-api*</exclude>
                </excludes>
              </artifactSet>
              <filters>
                <filter>
                  <artifact>org.apache.geronimo.specs:*</artifact>
                  <excludes>
                    <exclude>META-INF/*.txt</exclude>
                    <exclude>META-INF/LICENSE</exclude>
                    <exclude>org/apache/geronimo/osgi/locator/ProviderLocator.class</exclude>
                    <exclude>org/apache/geronimo/osgi/locator/Activator.class</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>
                      javax.xml,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.spi,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.soap,javax.xml.namespace,javax.xml.registry,javax.xml.registry.infomodel,javax.xml.rpc,javax.xml.rpc.encoding,javax.xml.rpc.handler,javax.xml.rpc.handler.soap,javax.xml.rpc.holders,javax.xml.rpc.server,javax.xml.rpc.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.activation,javax.annotation,javax.annotation.security,javax.ejb,javax.ejb.spi,javax.interceptor,javax.resource,javax.resource.cci,javax.resource.spi,javax.resource.spi.endpoint,javax.resource.spi.security,javax.resource.spi.work,javax.enterprise,javax.enterprise.deploy,javax.enterprise.deploy.model,javax.enterprise.deploy.model.exceptions,javax.enterprise.deploy.shared,javax.enterprise.deploy.shared.factories,javax.enterprise.deploy.spi,javax.enterprise.deploy.spi.exceptions,javax.enterprise.deploy.spi.factories,javax.enterprise.deploy.spi.status,javax.management,javax.management.j2ee,javax.management.j2ee.statistics,javax.security,javax.security.jacc,javax.jms,javax.persistence,javax.persistence.spi,javax.transaction,javax.transaction.xa,javax.jws,javax.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.openejb.javaee.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>javaee-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>org.apache.geronimo.specs:*</artifact>
                  <excludes>
                    <exclude>META-INF/*.txt</exclude>
                    <exclude>META-INF/LICENSE</exclude>
                    <exclude>META-INF/NOTICE</exclude>
                    <exclude>org/apache/geronimo/osgi/locator/ProviderLocator.class</exclude>
                    <exclude>org/apache/geronimo/osgi/locator/Activator.class</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>
                      javax.xml,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.spi,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.soap,javax.xml.namespace,javax.xml.registry,javax.xml.registry.infomodel,javax.xml.rpc,javax.xml.rpc.encoding,javax.xml.rpc.handler,javax.xml.rpc.handler.soap,javax.xml.rpc.holders,javax.xml.rpc.server,javax.xml.rpc.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.activation,javax.annotation,javax.annotation.security,javax.ejb,javax.ejb.spi,javax.interceptor,javax.resource,javax.resource.cci,javax.resource.spi,javax.resource.spi.endpoint,javax.resource.spi.security,javax.resource.spi.work,javax.enterprise,javax.enterprise.deploy,javax.enterprise.deploy.model,javax.enterprise.deploy.model.exceptions,javax.enterprise.deploy.shared,javax.enterprise.deploy.shared.factories,javax.enterprise.deploy.spi,javax.enterprise.deploy.spi.exceptions,javax.enterprise.deploy.spi.factories,javax.enterprise.deploy.spi.status,javax.management,javax.management.j2ee,javax.management.j2ee.statistics,javax.security,javax.security.jacc,javax.jms,javax.persistence,javax.persistence.spi,javax.transaction,javax.transaction.xa,javax.servlet,javax.servlet.http,javax.servlet.resources,javax.jws,javax.ws.rs,javax.jws.soap
                    </Export-Package>
                    <Import-Package>org.apache.geronimo.osgi.registry.api;resolution:=optional</Import-Package>
                    <Private-Package>org.apache.openejb.javaee.api.activator,org.apache.geronimo.osgi.locator
                    </Private-Package>
                    <Bundle-Activator>org.apache.openejb.javaee.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>1.9</version>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>target/classes/javaee-api-feature.xml</file>
                  <type>xml</type>
                  <classifier>features</classifier>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <dependencies>

    <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-jcache_1.0_spec</artifactId>
      <version>${geronimo-jcache_1.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jcache_1.0_spec</artifactId>
      <version>${geronimo-jcache_1.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-activation_1.1_spec</artifactId>
      <version>${geronimo-activation_1.1_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-activation_1.1_spec</artifactId>
      <version>${geronimo-activation_1.1_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.2_spec</artifactId>
      <version>${geronimo-annotation_1.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.2_spec</artifactId>
      <version>${geronimo-annotation_1.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-atinject_1.0_spec</artifactId>
      <version>${geronimo-atinject_1.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-atinject_1.0_spec</artifactId>
      <version>${geronimo-atinject_1.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_3.2_spec</artifactId>
      <version>${geronimo-ejb_3.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_3.2_spec</artifactId>
      <version>${geronimo-ejb_3.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-interceptor_1.2_spec</artifactId>
      <version>${geronimo-interceptor_1.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-interceptor_1.2_spec</artifactId>
      <version>${geronimo-interceptor_1.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
      <version>${geronimo-j2ee-connector_1.6_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
      <version>${geronimo-j2ee-connector_1.6_spec.version}</version>
      <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>
      <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-jacc_1.4_spec</artifactId>
      <version>${geronimo-jacc_1.4_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jacc_1.4_spec</artifactId>
      <version>${geronimo-jacc_1.4_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaspic_1.0_spec</artifactId>
      <version>${geronimo-jaspic_1.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaspic_1.0_spec</artifactId>
      <version>${geronimo-jaspic_1.0_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-jaxrpc_1.1_spec</artifactId>
      <version>${geronimo-jaxrpc_1.1_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
      <version>${geronimo-jaxrpc_1.1_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxrs_2.0_spec</artifactId>
      <version>${geronimo-jaxrs_2.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxrs_2.0_spec</artifactId>
      <version>${geronimo-jaxrs_2.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxws_2.2_spec</artifactId>
      <version>${geronimo-jaxws_2.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxws_2.2_spec</artifactId>
      <version>${geronimo-jaxws_2.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jcdi_1.1_spec</artifactId>
      <version>${geronimo-jcdi_1.1_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jcdi_1.1_spec</artifactId>
      <version>${geronimo-jcdi_1.1_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jms_2.0_spec</artifactId>
      <version>${geronimo-jms_2.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jms_2.0_spec</artifactId>
      <version>${geronimo-jms_2.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jpa_2.0_spec</artifactId>
      <version>${geronimo-jpa_2.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jpa_2.0_spec</artifactId>
      <version>${geronimo-jpa_2.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jsp_2.2_spec</artifactId>
      <version>${geronimo-jsp_2.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jsp_2.2_spec</artifactId>
      <version>${geronimo-jsp_2.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.2_spec</artifactId>
      <version>${geronimo-jta_1.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.2_spec</artifactId>
      <version>${geronimo-jta_1.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-saaj_1.3_spec</artifactId>
      <version>${geronimo-saaj_1.3_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-saaj_1.3_spec</artifactId>
      <version>${geronimo-saaj_1.3_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <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.geronimo.specs</groupId>
      <artifactId>geronimo-stax-api_1.2_spec</artifactId>
      <version>${geronimo-stax-api_1.2_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-stax-api_1.2_spec</artifactId>
      <version>${geronimo-stax-api_1.2_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-validation_1.1_spec</artifactId>
      <version>${geronimo-validation_1.1_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-validation_1.1_spec</artifactId>
      <version>${geronimo-validation_1.1_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
      <version>${geronimo-ws-metadata_2.0_spec.version}</version>
      <classifier>sources</classifier>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
      <version>${geronimo-ws-metadata_2.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>

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

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

    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-concurrent_1.0_spec</artifactId>
      <version>${geronimo-concurrent_1.0_spec.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-concurrent_1.0_spec</artifactId>
      <version>${geronimo-concurrent_1.0_spec.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>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-el-api</artifactId>
      <version>${tomcat.version}</version>
      <optional>true</optional>
      <classifier>sources</classifier>
    </dependency>
  </dependencies>

  <properties>
    <geronimo-interceptor_1.2_spec.version>1.0</geronimo-interceptor_1.2_spec.version>
    <geronimo-jms_2.0_spec.version>1.0-alpha-1</geronimo-jms_2.0_spec.version>
    <geronimo-jpa_2.0_spec.version>1.1</geronimo-jpa_2.0_spec.version>
    <geronimo-jta_1.2_spec.version>1.0-alpha-1</geronimo-jta_1.2_spec.version>
    <geronimo-jacc_1.4_spec.version>1.0</geronimo-jacc_1.4_spec.version>
    <geronimo-jaxr_1.0_spec.version>2.1</geronimo-jaxr_1.0_spec.version>
    <geronimo-jaxrs_2.0_spec.version>1.0-alpha-1</geronimo-jaxrs_2.0_spec.version>
    <geronimo-jaxrpc_1.1_spec.version>2.1</geronimo-jaxrpc_1.1_spec.version>
    <geronimo-j2ee-deployment_1.1_spec.version>1.1</geronimo-j2ee-deployment_1.1_spec.version>
    <geronimo-j2ee-connector_1.6_spec.version>1.0</geronimo-j2ee-connector_1.6_spec.version>
    <geronimo-j2ee-management_1.1_spec.version>1.0.1</geronimo-j2ee-management_1.1_spec.version>
    <geronimo-ejb_3.2_spec.version>1.0-alpha-1</geronimo-ejb_3.2_spec.version>
    <geronimo-jsp_2.2_spec.version>1.0</geronimo-jsp_2.2_spec.version>
    <geronimo-ws-metadata_2.0_spec.version>1.1.3</geronimo-ws-metadata_2.0_spec.version>
    <geronimo-annotation_1.2_spec.version>1.0</geronimo-annotation_1.2_spec.version>
    <geronimo-validation_1.1_spec.version>1.0-alpha-1</geronimo-validation_1.1_spec.version>
    <geronimo-activation_1.1_spec.version>1.1</geronimo-activation_1.1_spec.version>
    <geronimo-stax-api_1.2_spec.version>1.1</geronimo-stax-api_1.2_spec.version>
    <geronimo-saaj_1.3_spec.version>1.1</geronimo-saaj_1.3_spec.version>
    <geronimo-atinject_1.0_spec.version>1.0</geronimo-atinject_1.0_spec.version>
    <geronimo-jaspic_1.0_spec.version>1.1</geronimo-jaspic_1.0_spec.version>
    <geronimo-jcdi_1.1_spec.version>1.0</geronimo-jcdi_1.1_spec.version>
    <geronimo-jaxws_2.2_spec.version>1.1</geronimo-jaxws_2.2_spec.version>
    <geronimo-osgi.version>1.0</geronimo-osgi.version>
    <geronimo-json_1.0_spec.version>1.0-alpha-1</geronimo-json_1.0_spec.version>
    <geronimo-concurrent_1.0_spec.version>1.0-alpha-1</geronimo-concurrent_1.0_spec.version>
    <geronimo-jbatch_1.0_spec.version>1.0</geronimo-jbatch_1.0_spec.version>
    <geronimo-jcache_1.0_spec.version>1.0-alpha-1</geronimo-jcache_1.0_spec.version>
    <tomcat.version>8.0.18</tomcat.version>
  </properties>
</project>
