<?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.7-SNAPSHOT</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>tomee-embedded</artifactId>
  <packaging>jar</packaging>
  <name>TomEE :: TomEE :: TomEE Embedded</name>
  <version>8.0.7-SNAPSHOT</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>
