<?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$ $Date$ -->

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

  <artifactId>openejb-core</artifactId>
  <packaging>jar</packaging>
  <name>TomEE :: Container :: Core</name>

  <properties>
    <tomee.build.name>${project.groupId}.container.core</tomee.build.name>
    <openejb.osgi.import.pkg>
      javax.annotation;version="[1.1.0,2.0.0)",
      javax.annotation.security;version="[1.1.0,2.0.0)",
      javax.annotation.sql;version="[1.1.0,2.0.0)",
      javax.crypto,
      javax.crypto.spec,
      javax.el,
      javax.decorator;resolution:=optional,
      javax.ejb,
      javax.ejb.embeddable,
      javax.ejb.spi,
      javax.enterprise.concurrent,
      javax.enterprise.context,
      javax.enterprise.context.spi,
      javax.enterprise.deploy.model;resolution:=optional,
      javax.enterprise.deploy.shared;resolution:=optional,
      javax.enterprise.deploy.spi;resolution:=optional,
      javax.enterprise.deploy.spi.exceptions;resolution:=optional,
      javax.enterprise.deploy.spi.factories;resolution:=optional,
      javax.enterprise.deploy.spi.status;resolution:=optional,
      javax.enterprise.event,
      javax.enterprise.inject,
      javax.enterprise.inject.spi,
      javax.inject,
      javax.interceptor,
      javax.jms;resolution:=optional,
      javax.jws,
      javax.mail;resolution:=optional;version="[1.4,2)",
      javax.management,
      javax.management.j2ee,
      javax.management.loading,
      javax.management.openmbean,
      javax.naming,
      javax.naming.spi,
      javax.persistence,
      javax.persistence.criteria,
      javax.persistence.metamodel,
      javax.persistence.spi,
      javax.resource,
      javax.resource.spi,
      javax.resource.spi.endpoint,
      javax.resource.spi.work,
      javax.security.auth,
      javax.security.auth.callback,
      javax.security.auth.login,
      javax.security.auth.message.callback,
      javax.security.auth.spi,
      javax.security.jacc,
      javax.servlet,
      javax.servlet.http,
      javax.servlet.jsp,
      javax.sql,
      javax.transaction;version="[1.1.0,2.0.0)",
      javax.transaction.xa;version="[1.1.0,2.0.0)",
      javax.validation,
      javax.validation.bootstrap,
      javax.ws.rs,
      javax.ws.rs.core,
      javax.ws.rs.ext,
      javax.wsdl;resolution:=optional,,
      javax.wsdl.extensions.http;resolution:=optional,,
      javax.wsdl.extensions.soap;resolution:=optional,,
      javax.wsdl.factory;resolution:=optional,,
      javax.wsdl.xml;resolution:=optional,,
      javax.xml.bind,
      javax.xml.bind.annotation,
      javax.xml.bind.annotation.adapters,
      javax.xml.datatype,
      javax.xml.namespace,
      javax.xml.parsers,
      javax.xml.registry;resolution:=optional,
      javax.xml.rpc;resolution:=optional,
      javax.xml.rpc.handler;resolution:=optional,
      javax.xml.transform,
      javax.xml.transform.sax,
      javax.xml.transform.stream,
      javax.xml.validation,
      javax.xml.ws,
      javax.xml.ws.handler,
      javax.xml.ws.soap,
      javax.xml.ws.spi,
      javax.xml.ws.wsaddressing,
      org.apache.activemq.broker;resolution:=optional;version="[5.8,6.0)",
      org.apache.activemq.ra;resolution:=optional;version="[5.8,6.0)",
      org.apache.activemq.store;resolution:=optional;version="[5.8,6.0)",
      org.apache.activemq.store.jdbc;resolution:=optional;version="[5.8,6.0)",
      org.apache.activemq.store.memory;resolution:=optional;version="[5.8,6.0)",
      org.apache.bval.jsr;resolution:=optional,
      org.apache.bval.jsr.resolver;resolution:=optional,
      org.apache.commons.beanutils,
      org.apache.commons.cli;version="[1.2,2)",
      org.apache.commons.dbcp2;resolution:=optional;version="[2,3)",
      org.apache.commons.dbcp2.managed;resolution:=optional;version="[2,3)",
      org.apache.commons.lang;version="[2.6,2.9)",
      org.apache.commons.lang3;version="[3.1,4)",
      org.apache.geronimo.connector;version="[3.0,4)",
      org.apache.geronimo.connector.outbound;version="[3.0,4)",
      org.apache.geronimo.connector.outbound.connectionmanagerconfig;version="[3.0,4)",
      org.apache.geronimo.connector.outbound.connectiontracking;version="[3.0,4)",
      org.apache.geronimo.connector.work;version="[3.0,4)",
      org.apache.geronimo.osgi.locator,
      org.apache.geronimo.transaction.log;version="[3.0,4)",
      org.apache.geronimo.transaction.manager;version="[3.0,4)",
      org.apache.kahadb.util;resolution:=optional;version="[5.4,6)",
      org.apache.log4j;resolution:=optional,
      org.apache.openejb.api;version="[4.0,5)",
      org.apache.openejb.javaagent;version="[4.0,5)",
      org.apache.openejb.jee;version="[4.0,5)",
      org.apache.openejb.jee.bval;version="[4.0,5)",
      org.apache.openejb.jee.jba;version="[4.0,5)",
      org.apache.openejb.jee.jba.cmp;version="[4.0,5)",
      org.apache.openejb.jee.jpa;version="[4.0,5)",
      org.apache.openejb.jee.jpa.unit;version="[4.0,5)",
      org.apache.openejb.jee.oejb2;version="[4.0,5)",
      org.apache.openejb.jee.oejb3;version="[4.0,5)",
      org.apache.openejb.jee.sun;resolution:=optional;version="[4.0,5)",
      org.apache.openejb.jee.wls;version="[4.0,5)",
      org.apache.openejb.loader;version="[4.0,5)",
      org.apache.openejb.client;bundle-version="[4.0,5.0)";resolution:=optional,
      org.apache.openejb.client.proxy;bundle-version="[4.0,5.0)";resolution:=optional,
      org.apache.openejb.client.java;bundle-version="[4.0,5.0)";resolution:=optional,
      org.openejb.client;bundle-version="[4.0,5.0)";resolution:=optional,
      org.apache.openjpa.event;resolution:=optional;version="[2.1,3)",
      org.apache.openjpa.persistence;resolution:=optional;version="[2.1,3)",
      org.apache.webbeans.annotation;version="[1.1,2)",
      org.apache.webbeans.component;version="[1.1,2)",
      org.apache.webbeans.component.creation;version="[1.1,2)",
      org.apache.webbeans.config;version="[1.1,2)",
      org.apache.webbeans.container;version="[1.1,2)",
      org.apache.webbeans.context;version="[1.1,2)",
      org.apache.webbeans.context.creational;version="[1.1,2)",
      org.apache.webbeans.conversation;version="[1.1,2)",
      org.apache.webbeans.decorator;version="[1.1,2)",
      org.apache.webbeans.deployment;version="[1.1,2)",
      org.apache.webbeans.deployment.stereotype;version="[1.1,2)",
      org.apache.webbeans.ee.event;version="[1.1,2)",
      org.apache.webbeans.ejb.common.component;version="[1.0,2)",
      org.apache.webbeans.ejb.common.util;version="[1.0,2)",
      org.apache.webbeans.el;version="[1.1,2)",
      org.apache.webbeans.exception;version="[1.1,2)",
      org.apache.webbeans.exception.inject;version="[1.1,2)",
      org.apache.webbeans.inject;version="[1.1,2)",
      org.apache.webbeans.intercept;version="[1.1,2)",
      org.apache.webbeans.intercept.webbeans;version="[1.1,2)",
      org.apache.webbeans.jms;version="[1.1,2)",
      org.apache.webbeans.logger;version="[1.1,2)",
      org.apache.webbeans.plugins;version="[1.1,2)",
      org.apache.webbeans.portable;version="[1.1,2)",
      org.apache.webbeans.portable.events;version="[1.1,2)",
      org.apache.webbeans.portable.events.discovery;version="[1.1,2)",
      org.apache.webbeans.portable.events.generics;version="[1.1,2)",
      org.apache.webbeans.proxy;version="[1.1,2)",
      org.apache.webbeans.service;version="[1.1,2)",
      org.apache.webbeans.spi;version="[1.1,2)",
      org.apache.webbeans.spi.adaptor;version="[1.1,2)",
      org.apache.webbeans.spi.api;version="[1.1,2)",
      org.apache.webbeans.spi.plugins;version="[1.1,2)",
      org.apache.webbeans.util;version="[1.1,2)",
      org.apache.webbeans.web.context;version="[1.1,2)",
      org.apache.webbeans.xml;version="[1.1,2)",
      org.apache.xbean.asm7;version="[3.1,5)",
      org.apache.xbean.asm7.commons;version="[3.1,5)",
      org.apache.xbean.finder;version="[3.8,4)",
      org.apache.xbean.finder.archive;version="[3.8,4)",
      org.apache.xbean.finder.filter;version="[3.8,4)",
      org.apache.xbean.naming.context;version="[3.8,4)",
      org.apache.xbean.naming.reference;version="[3.8,4)",
      org.apache.xbean.propertyeditor;version="[3.8,4)",
      org.apache.xbean.recipe;version="[3.8,4)",
      org.hsqldb.jdbc;resolution:=optional,
      org.junit.rules;resolution:=optional,
      org.junit.runners;resolution:=optional,
      org.junit.runners.model;resolution:=optional,
      org.testng;resolution:=optional,
      org.omg.CORBA,
      org.osgi.framework,
      org.apache.openejb.quartz;resolution:=optional,
      org.apache.openejb.quartz.impl;resolution:=optional,
      org.apache.openejb.quartz.spi;resolution:=optional,
      org.slf4j;resolution:=optional;version="[1.6,4)",
      org.w3c.dom,
      org.w3c.dom.ls,
      org.xml.sax,
      org.xml.sax.helpers
    </openejb.osgi.import.pkg>
    <openejb.osgi.export>
      '=META-INF.org^.apache^.openejb',
      org.apache.openejb.cdi.*;version=${openejb.osgi.export.version},
      org.apache.openejb*;version=${openejb.osgi.export.version},
      org.apache.openejb;version=${openejb.osgi.export.version}
    </openejb.osgi.export>
    <jacocoArgLine />
  </properties>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <excludes>
          <!--
          This file is encoded in UTF-16LE so it causes trouble
          as the default encoding is UTF-8. However as it's
          obviously only used as an input file for the corresponding
          properties we're just ignoring it here.
          -->
          <exclude>**/Messages_hi_input.txt</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <compilerArgs>
            <arg>-Xlint:path</arg>
          </compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>${project.groupId}</groupId>
                  <artifactId>openejb-javaagent</artifactId>
                  <version>${project.version}</version>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
          <execution>
            <id>AlternateDriverJarTest</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.derby</groupId>
                  <artifactId>derby</artifactId>
                  <version>10.10.1.1</version>
                  <type>jar</type>
                  <overWrite>false</overWrite>
                  <outputDirectory>${project.build.directory}/drivers</outputDirectory>
                  <destFileName>derby-10.10.1.1.jar</destFileName>
                </artifactItem>
                <artifactItem>
                  <groupId>org.apache.derby</groupId>
                  <artifactId>derby</artifactId>
                  <version>10.9.1.0</version>
                  <type>jar</type>
                  <overWrite>false</overWrite>
                  <outputDirectory>${project.build.directory}/drivers</outputDirectory>
                  <destFileName>derby-10.9.1.0.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire.version}</version>
        <configuration>
          <childDelegation>true</childDelegation>
          <reuseForks>false</reuseForks>
          <forkCount>1</forkCount>
          <testNGArtifactName>none:none</testNGArtifactName>
          <argLine>
            ${jacocoArgLine}
            -javaagent:${project.basedir}/target/openejb-javaagent-${project.version}.jar
            -Dopenejb.classloader.forced-skip=org.apache.openejb.jee.,org.apache.openejb.api.
            -Dopenejb.classloader.forced-load=org.apache.openejb
            -enableassertions
            -Dopenejb.descriptors.output.folder=./dump/
            -Dorg.apache.activemq.SERIALIZABLE_PACKAGES=org,java
          </argLine>
          <workingDirectory>${project.basedir}/target</workingDirectory>
          <systemPropertyVariables>
            <openejb.home>${project.basedir}/target/test-classes</openejb.home>
          </systemPropertyVariables>
          <excludes>
            <exclude>**/TestHandler.java</exclude>
            <exclude>org/apache/openejb/cdi/**</exclude>
          </excludes>
          <!--
                    <properties>
                      <property>
                        <name>listener</name>
                        <value>org.apache.openejb.tool.junit.OpenEJBJUnitDebugListener</value>
                      </property>
                    </properties>
          -->
        </configuration>
        <executions>
          <execution>
            <id>test-testng</id>
            <phase>test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <junitArtifactName>none:none</junitArtifactName>
              <excludes>
                <exclude>**</exclude>
              </excludes>
              <includes>
                <include>org/apache/openejb/cdi/**</include>
              </includes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>process-classes</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <tstamp>
                  <format property="TSTAMP" pattern="hh:mm" />
                </tstamp>
                <replace file="target/classes/openejb-version.properties" token="@DATE-REPLACED-BY-MAVEN@" value="${DSTAMP}" />
                <replace file="target/classes/openejb-version.properties" token="@TIME-REPLACED-BY-MAVEN@" value="${TSTAMP}" />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive combine.children="append">
            <manifest>
              <mainClass>org.apache.openejb.cli.Bootstrap</mainClass>
              <!--<addClasspath>true</addClasspath>-->
            </manifest>
            <manifestEntries>
              <Automatic-Module-Name>${tomee.build.name}</Automatic-Module-Name>
              <Class-Path>openejb-loader-${project.version}.jar openejb-client-${project.version}.jar
                xbean-finder-shaded-${xbeanVersion}.jar xbean-asm7-shaded-${xbeanVersion}.jar
              </Class-Path>
              <J2EE-DeploymentFactory-Implementation-Class>
                org.apache.openejb.config.VmDeploymentFactory
              </J2EE-DeploymentFactory-Implementation-Class>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rat-maven-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>src/main/resources/META-INF/org.apache.openejb.cli/validate.examples</exclude>
            <exclude>src/main/resources/META-INF/org.apache.openejb.cli/validate.help</exclude>
            <exclude>src/main/resources/META-INF/org.apache.openejb.resource.jdbc.DataSourcePlugin/*
            </exclude>
            <exclude>src/main/resources/META-INF/services/org/apache/activemq/broker/openejb</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>mbean-annotation-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-jpa-integration</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>javaee-api</artifactId>
    </dependency>

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j2.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <artifactId>commons-lang3</artifactId>
      <groupId>org.apache.commons</groupId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-loader</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-javaagent</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-jee</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-jee-accessors</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-itests-app</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb.itests</groupId>
      <artifactId>failover-ejb</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-itests-beans</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-itests-interceptor-beans</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-itests-client</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
    </dependency>

    <dependency> <!-- Added in for backwards compatibility with the move to Jakarta EE coordinates -->
        <groupId>com.sun.activation</groupId>
        <artifactId>jakarta.activation</artifactId>
        <version>1.2.1</version>
     </dependency>

    <!-- ActiveMQ -->
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-ra</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-broker</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-jdbc-store</artifactId>
      <exclusions>
        <exclusion>
          <artifactId>activemq-broker</artifactId>
          <groupId>org.apache.activemq</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-connector</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-transaction</artifactId>
    </dependency>
    <dependency>
      <groupId>org.objectweb.howl</groupId>
      <artifactId>howl</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-activation_1.1_spec</artifactId>
      <version>${geronimo-activation_1.1_spec.version}</version>
      <scope>provided</scope>
    </dependency>
    <!-- JavaMail -->
    <dependency>
      <groupId>org.apache.geronimo.javamail</groupId>
      <artifactId>geronimo-javamail_1.4_mail</artifactId>
    </dependency>
    <!-- End: JavaMail -->
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-asm7-shaded</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-finder-shaded</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-reflect</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-naming</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-bundleutils</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-pool2</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
    </dependency>
    <dependency>
      <groupId>org.codehaus.swizzle</groupId>
      <artifactId>swizzle-stream</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </dependency>
    <!-- webservices  -->
    <dependency>
      <groupId>wsdl4j</groupId>
      <artifactId>wsdl4j</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb.shade</groupId>
      <artifactId>quartz-openejb-shade</artifactId>
    </dependency>
    <!-- Dependency of Quartz -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
    </dependency>
    <!-- Dependency of Quartz -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>xmlunit</groupId>
      <artifactId>xmlunit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>xml-apis</groupId>
      <artifactId>xml-apis</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.codehaus.swizzle</groupId>
      <artifactId>swizzle-confluence</artifactId>
      <version>1.1</version>
      <type>jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-spi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-ejb</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-ejb_3.1_spec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-ee</artifactId>
    </dependency>
    <dependency>
      <artifactId>openwebbeans-ee-common</artifactId>
      <groupId>org.apache.openwebbeans</groupId>
    </dependency>
    <dependency>
      <groupId>org.apache.openwebbeans</groupId>
      <artifactId>openwebbeans-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.openjpa</groupId>
      <artifactId>openjpa</artifactId>
    </dependency>
    <!--
    <dependency>
      <groupId>stax</groupId>
      <artifactId>stax-api</artifactId>
    </dependency>
    -->
    <dependency>
      <groupId>org.apache.bval</groupId>
      <artifactId>bval-jsr</artifactId>
    </dependency>

    <dependency> <!-- licence apache, only 110ko -->
      <groupId>org.fusesource.jansi</groupId>
      <artifactId>jansi</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.batchee</groupId>
      <artifactId>batchee-jbatch</artifactId>
      <version>${batchee.version}</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>

  <profiles>
    <profile>
      <id>openejb.debug</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <!--<reuseForks>false</reuseForks>-->
              <argLine>"-javaagent:${project.basedir}/target/openejb-javaagent-${project.version}.jar" -Xdebug
                -Xnoagent -Djava.compiler=NONE
                -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
                -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m
              </argLine>
              <runOrder>alphabetical</runOrder>
              <!-- make local/buildbot runs deterministic and the same -->
              <workingDirectory>${project.basedir}/target</workingDirectory>
              <systemPropertyVariables>
                <openejb.home>${project.basedir}/target/test-classes</openejb.home>
              </systemPropertyVariables>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>coverage</id>
      <properties>
        <jacocoArgLine>@{argLine}</jacocoArgLine>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>

