<?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: 1457555 $ $Date: 2013-03-17 20:32:43 +0000 (Sun, 17 Mar 2013) $ -->

<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>container</artifactId>
    <groupId>org.apache.openejb</groupId>
    <version>4.5.2</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>openejb-core</artifactId>
  <packaging>jar</packaging>
  <name>OpenEJB :: Container :: Core</name>
  <properties>
    <openejb.osgi.import.pkg>
      javassist.util.proxy,
      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.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,
      javax.wsdl.extensions.http,
      javax.wsdl.extensions.soap,
      javax.wsdl.factory,
      javax.wsdl.xml,
      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.4,6)",
      org.apache.activemq.ra;resolution:=optional;version="[5.4,6)",
      org.apache.activemq.store;resolution:=optional;version="[5.4,6)",
      org.apache.activemq.store.jdbc;resolution:=optional;version="[5.4,6)",
      org.apache.activemq.store.memory;resolution:=optional;version="[5.4,6)",
      org.apache.bval.jsr303;resolution:=optional,
      org.apache.bval.jsr303.resolver;resolution:=optional,
      org.apache.commons.beanutils,
      org.apache.commons.cli;version="[1.2,2)",
      org.apache.commons.dbcp;resolution:=optional;version="[1.4,2)",
      org.apache.commons.dbcp.managed;resolution:=optional;version="[1.4,2)",
      org.apache.commons.lang;version="[3.1,4)",
      org.apache.commons.lang.math;version="[2.6,3)",
      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.asm;version="[3.1,4)",
      org.apache.xbean.asm.commons;version="[3.1,4)",
      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.quartz;resolution:=optional,
      org.quartz.impl;resolution:=optional,
      org.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>
  </properties>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </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>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
          <compilerArguments>
            <endorseddirs>${openejb.build.endorsed}</endorseddirs>
          </compilerArguments>
        </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>org.apache.openejb</groupId>
                  <artifactId>openejb-javaagent</artifactId>
                  <version>${project.version}</version>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <forkMode>pertest</forkMode>
          <testNGArtifactName>none:none</testNGArtifactName>
          <argLine> <!-- "-javaagent:${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/
            -Xmx256m -Djava.endorsed.dirs=${openejb.build.endorsed}
          </argLine>
          <workingDirectory>${basedir}/target</workingDirectory>
          <systemPropertyVariables>
            <openejb.home>${basedir}/target/test-classes</openejb.home>
          </systemPropertyVariables>
          <excludes>
            <exclude>**/TestHandler.java</exclude>
            <exclude>org/apache/openejb/cdi/**</exclude>
          </excludes>
        </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>
            <manifest>
              <mainClass>org.apache.openejb.cli.Bootstrap</mainClass>
              <!--<addClasspath>true</addClasspath>-->
            </manifest>
            <manifestEntries>
              <Class-Path>openejb-loader-${project.version}.jar openejb-client-${project.version}.jar
                xbean-finder-shaded-${xbeanVersion}.jar xbean-asm-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>org.apache.openejb</groupId>
      <artifactId>mbean-annotation-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-jpa-integration</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>javaee-api</artifactId>
    </dependency>
    <!-- required for endorsed dir support -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.1_spec</artifactId>
      <version>1.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <artifactId>commons-lang3</artifactId>
      <groupId>org.apache.commons</groupId>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-loader</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-javaagent</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-jee</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-itests-app</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-itests-beans</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-itests-interceptor-beans</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-itests-client</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
    </dependency>

    <!-- ActiveMQ -->
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-ra</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-core</artifactId>
    </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>
    <!-- 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-asm-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>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</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>
    </dependency>
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</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.javassist</groupId>
      <artifactId>javassist</artifactId>
    </dependency>
    <!--<dependency>
      <groupId>org.apache.openjpa</groupId>
      <artifactId>openjpa</artifactId>
    </dependency>-->
    <dependency>
      <groupId>org.apache.openejb.patch</groupId>
      <artifactId>openjpa-asm-shaded</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.bval</groupId>
      <artifactId>bval-core</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.bval</groupId>
      <artifactId>bval-jsr303</artifactId>
    </dependency>

    <dependency> <!-- licence apache, only 110ko -->
      <groupId>org.fusesource.jansi</groupId>
      <artifactId>jansi</artifactId>
      <version>1.8</version>
    </dependency>    
  </dependencies>
  <profiles>
    <profile>
      <id>openejb.debug</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <forkMode>pertest</forkMode>
              <argLine>"-javaagent:${basedir}/target/openejb-javaagent-${project.version}.jar" -Xdebug
                -Xnoagent -Djava.compiler=NONE
                -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
              </argLine>
              <workingDirectory>${basedir}/target</workingDirectory>
              <systemPropertyVariables>
                <openejb.home>${basedir}/target/test-classes</openejb.home>
              </systemPropertyVariables>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>

