<?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.7</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.asm9;version="[3.1,5)",
      org.apache.xbean.asm9.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>${derby.version}</version>
                  <type>jar</type>
                  <overWrite>false</overWrite>
                  <outputDirectory>${project.build.directory}/drivers</outputDirectory>
                  <destFileName>derby-${derby.version}.jar</destFileName>
                </artifactItem>
                <artifactItem>
                  <groupId>org.apache.derby</groupId>
                  <artifactId>derby</artifactId>
                  <version>${derby.version}</version>
                  <type>jar</type>
                  <overWrite>false</overWrite>
                  <outputDirectory>${project.build.directory}/drivers</outputDirectory>
                  <destFileName>derby-${derby.version}.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <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-asm9-shaded-${xbeanVersion}.jar
              </Class-Path>
              <J2EE-DeploymentFactory-Implementation-Class>
                org.apache.openejb.config.VmDeploymentFactory
              </J2EE-DeploymentFactory-Implementation-Class>
            </manifestEntries>
          </archive>
        </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.6_mail</artifactId>
    </dependency>
    <!-- End: JavaMail -->
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-asm9-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>

