<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<!-- $Rev: 600338 $ $Date: 2007-12-02 09:08:04 -0800 (Sun, 02 Dec 2007) $ -->

<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>
    <artifactId>tomee</artifactId>
    <groupId>org.apache.tomee</groupId>
    <version>8.0.13</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>tomee-embedded</artifactId>
  <packaging>jar</packaging>
  <name>TomEE :: TomEE :: TomEE Embedded</name>
  <version>8.0.13</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive combine.children="append">
            <manifest>
              <Main-Class>org.apache.tomee.embedded.Main</Main-Class>
              <addClasspath>true</addClasspath>
            </manifest>
            <manifestEntries>
              <Automatic-Module-Name>${tomee.build.name}</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution> <!-- real tomee-embedded (typically webprofile + AMQ) -->
            <id>uber-shade</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedClassifierName>uber</shadedClassifierName>
              <artifactSet>
                <excludes>
                  <exclude>junit:junit</exclude>
                  <exclude>org.junit.jupiter:junit-jupiter-api</exclude>
                  <exclude>*:jaxb-api</exclude>
                  <exclude>*:jaxb-impl</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
          <execution> <!-- kind of webprofile minus JSF -->
            <id>jaxrs-shade</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedClassifierName>jaxrs</shadedClassifierName>
              <artifactSet>
                <excludes>
                  <exclude>org.junit.jupiter:junit-jupiter-api</exclude>
                  <exclude>*:jaxb-api</exclude>
                  <exclude>*:jaxb-impl</exclude>
                  <exclude>org.apache.activemq:*</exclude>
                  <exclude>org.apache.activemq.protobuf:*</exclude>
                  <exclude>org.fusesource.hawtbuf:hawtbuf</exclude>
                  <exclude>org.apache.myfaces.core:*</exclude>
                  <!-- jaxws -->
                  <exclude>joda-time:joda-time</exclude>
                  <exclude> commons-codec:commons-codec</exclude>
                  <exclude>${project.groupId}:tomee-webservices</exclude>
                  <exclude>${project.groupId}:openejb-webservices</exclude>
                  <exclude>${project.groupId}:openejb-cxf</exclude>
                  <exclude>org.apache.wss4j:*</exclude>
                  <exclude>org.apache.santuario:xmlsec</exclude>
                  <exclude>org.opensaml:*</exclude>
                  <exclude>org.jasypt:*</exclude>
                  <exclude>net.shibboleth.utilities:java-support</exclude>
                  <exclude>org.cryptacular:cryptacular</exclude>
                  <exclude>org.bouncycastle:bcprov-jdk15on</exclude>
                  <exclude>org.apache.neethi:neethi</exclude>
                  <exclude>org.apache.cxf:cxf-rt-frontend-jaxws</exclude>
                  <exclude>org.apache.cxf:cxf-rt-bindings-soap</exclude>
                  <exclude>org.apache.cxf:cxf-rt-bindings-xml</exclude>
                  <exclude>org.apache.cxf:cxf-rt-frontend-simple</exclude>
                  <exclude>org.apache.cxf:cxf-rt-wsdl</exclude>
                  <exclude>org.apache.cxf:cxf-rt-databinding-jaxb</exclude>
                  <exclude>org.apache.cxf:cxf-rt-ws-addr</exclude>
                  <exclude>org.apache.cxf:cxf-rt-ws-security</exclude>
                  <exclude>org.apache.cxf:cxf-rt-ws-policy</exclude>
                  <exclude>org.apache.cxf:cxf-rt-security-saml</exclude>
                  <exclude>org.apache.ws.xmlschema:xmlschema-core</exclude>
                  <exclude>xml-resolver:xml-resolver</exclude>
                  <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude>
                  <exclude>org.jvnet.mimepull:mimepull</exclude>
                  <exclude>wsdl4j:wsdl4j</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
          <execution> <!-- kind of webprofile plus JAX-WS minus JSF -->
            <id>jaxws-shade</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedClassifierName>jaxws</shadedClassifierName>
              <artifactSet>
                <excludes>
                  <exclude>junit:junit</exclude>
                  <exclude>org.junit.jupiter:junit-jupiter-api</exclude>
                  <exclude>*:jaxb-api</exclude>
                  <exclude>*:jaxb-impl</exclude>
                  <exclude>org.apache.activemq:*</exclude>
                  <exclude>org.apache.activemq.protobuf:*</exclude>
                  <exclude>org.fusesource.hawtbuf:hawtbuf</exclude>
                  <exclude>org.apache.myfaces.core:*</exclude>
                  <!-- jaxrs -->
                  <exclude>${project.groupId}:tomee-jaxrs</exclude>
                  <exclude>${project.groupId}:openejb-rest</exclude>
                  <exclude>${project.groupId}:openejb-cxf-rs</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-service-description</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-client</exclude>
                  <exclude>org.apache.cxf:cxf-rt-frontend-jaxrs</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-extension-search</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-json-basic</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-security-cors</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-security-oauth2</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-security-jose-jaxrs</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-security-jose</exclude>
                  <exclude>org.apache.cxf:cxf-rt-rs-extension-providers</exclude>
                  <exclude>org.apache.johnzon:johnzon-jaxrs</exclude>
                  <exclude>org.apache.johnzon:johnzon-mapper</exclude>
                </excludes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <useBaseVersion>true</useBaseVersion>
          <createDependencyReducedPom>false</createDependencyReducedPom>
          <shadedArtifactAttached>true</shadedArtifactAttached>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>org.apache.tomee.embedded.Main</mainClass>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
              <resource>META-INF/cxf/bus-extensions.txt</resource>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
              <resource>META-INF/openwebbeans/openwebbeans.properties</resource>
            </transformer>
          </transformers>
          <filters>
            <filter>
              <artifact>*:*</artifact>
              <excludes>
                <exclude>META-INF/ejb-jar.xml</exclude>
                <exclude>META-INF/openejb-jar.xml</exclude>
                <exclude>META-INF/web-fragment.xml</exclude>
                <!--
                NOTE:
                we shouldn't exclude faces-config.xml while we didn't impl the feature in another manner
                but it breaks all apps not using JSF.
                Solution would be to handle it more deeply in our myfaces integration
                -->
                <exclude>META-INF/faces-config.xml</exclude>

                <!-- to avoid to not be able to run the shade -->
                <exclude>META-INF/*.SF</exclude>
                <exclude>META-INF/*.DSA</exclude>
                <exclude>META-INF/*.RSA</exclude>
              </excludes>
            </filter>
          </filters>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
          <execution>
            <id>default-test</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>**/SingleInstanceRunnerTest*</exclude>
                <exclude>**/SingleInstanceRunnerExtensionTest*</exclude>
                <exclude>**/NoScannerSingleRunnerTest*</exclude>
                <exclude>**/NoScannerSingleRunnerExtensionTest*</exclude>
              </excludes>
            </configuration>
          </execution>
          <execution>
            <id>single-server-default-scanning</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <includes>
                <include>**/SingleInstanceRunnerTest*</include>
              </includes>
              <systemPropertyVariables>
                <tomee.application-composer.application>org.apache.tomee.embedded.SingleInstanceRunnerTest$TheApp</tomee.application-composer.application>
              </systemPropertyVariables>
            </configuration>
          </execution>
          <execution>
            <id>single-server-custom-scanning</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <includes>
                <include>**/NoScannerSingleRunnerTest*</include>
              </includes>
              <systemPropertyVariables>
                <tomee.application-composer.application>org.apache.tomee.embedded.NoScannerSingleRunnerTest$ScanApp</tomee.application-composer.application>
              </systemPropertyVariables>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-catalina</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>javaee-api</artifactId>
          <groupId>${project.groupId}</groupId>
        </exclusion>
        <exclusion>
          <artifactId>tomcat-annotations-api</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-util</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>javaee-api</artifactId>
      <scope>compile</scope>
      <classifier>tomcat</classifier>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-websocket-api</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-myfaces</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-jsf</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-api</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-core</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-beautils-core</artifactId>
          <groupId>commons-beautils</groupId>
        </exclusion>
        <exclusion>
          <artifactId>javaee-api</artifactId>
          <groupId>${project.groupId}</groupId>
        </exclusion>
        <exclusion>
          <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
          <groupId>org.apache.geronimo.specs</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-impl</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-beanutils-core</artifactId>
          <groupId>commons-beanutils</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <artifactId>commons-beanutils</artifactId>
      <groupId>commons-beanutils</groupId>
    </dependency>
    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>taglibs-shade</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jdbc</artifactId>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-dbcp</artifactId>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-annotations-api</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina-ha</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-coyote</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jasper</artifactId>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>org.eclipse.jdt.core.compiler</groupId>
          <artifactId>ecj</artifactId>
        </exclusion>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-jasper-el</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Required for running JUnit 4 via JUnit 5 environment -->
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jdt.core.compiler</groupId>
      <artifactId>ecj</artifactId>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-client</artifactId>
      <exclusions>
        <exclusion>
          <artifactId>javaee-api</artifactId>
          <groupId>${project.groupId}</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency> <!-- now in webprofile -->
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-jaxrs</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-webservices</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-websocket</artifactId>
      <version>${tomcat.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>tomcat-juli</artifactId>
          <groupId>org.apache.tomcat</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.shrinkwrap</groupId>
      <artifactId>shrinkwrap-impl-base</artifactId>
      <version>${version.shrinkwrap.shrinkwrap}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcmail-jdk15on</artifactId>
      <version>1.60</version>
      <scope>test</scope>
    </dependency>

  </dependencies>
</project>
