<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2011, Red Hat and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->
<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>
    <artifactId>byteman-agent</artifactId>
    <packaging>jar</packaging>
    <description>
        The Byteman agent jar contains the implementation of the Byteman java agent, including
        the bytecode transformer, rule parser, type checker and execution engine and the agent
        listener.
    </description>
    <name>byteman-agent</name>
    <parent>
        <groupId>org.jboss.byteman</groupId>
        <artifactId>byteman-root</artifactId>
        <version>4.0.13</version>
    </parent>

    <properties>
        <!-- don't install or deploy this jar, instead use it to
             build the byteman jar which needs to include JDK9 code
             that deals with modules
        -->
        <maven.install.skip>true</maven.install.skip>
        <maven.deploy.skip>true</maven.deploy.skip>
        <debug.args>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -Dorg.jboss.byteman.verbose</debug.args>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Premain-Class>org.jboss.byteman.agent.Main</Premain-Class>
                            <Agent-Class>org.jboss.byteman.agent.Main</Agent-Class>
                            <Can-Redefine-Classes>true</Can-Redefine-Classes>
                            <Can-Retransform-Classes>true</Can-Retransform-Classes>
                            <Implementation-Version>${project.version}</Implementation-Version>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <includes>
                                    <include>org.ow2.asm:asm</include>
                                    <include>org.ow2.asm:asm-tree</include>
                                    <include>org.ow2.asm:asm-analysis</include>
                                    <include>org.ow2.asm:asm-commons</include>
                                    <include>net.sf.squirrel-sql.thirdparty-non-maven:java-cup</include>
                                </includes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <artifact>net.sf.squirrel-sql.thirdparty-non-maven:java-cup</artifact>
                                    <includes>
                                        <include>java_cup/runtime/**</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>org.ow2.asm:asm</artifact>
                                    <includes>
                                        <include>org/objectweb/asm/**</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>org.ow2.asm:asm-tree</artifact>
                                    <includes>
                                        <include>org/objectweb/asm/**</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>org.ow2.asm:asm-analysis</artifact>
                                    <includes>
                                        <include>org/objectweb/asm/**</include>
                                    </includes>
                                </filter>
                                <filter>
                                    <artifact>org.ow2.asm:asm-commons</artifact>
                                    <includes>
                                        <include>org/objectweb/asm/**</include>
                                    </includes>
                                </filter>
                            </filters>
                            <relocations>
                                <relocation>
                                    <pattern>org.objectweb.asm</pattern>
                                    <shadedPattern>org.jboss.byteman.objectweb.asm</shadedPattern>
                                </relocation>
                                <relocation>
                                    <pattern>java_cup.runtime</pattern>
                                    <shadedPattern>org.jboss.byteman.java_cup.runtime</shadedPattern>
                                </relocation>
                            </relocations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipExec>true</skipExec>
                </configuration>
            </plugin>
            <plugin>
                <!-- here we run most of the tests using the byteman-agent
                     jar which contains the core JDK8[-] classes compiled
                     for target 6. the same tests are rerun later by the
                     test module using the bundled byteman jar which
                     contains extra JDK9[+] classes compiled for target 9.
                     The latter module also runs a few extra tests to check
                     accessibility. Note that all tests are provided in
                     this module because that is where they were first
                     created.
                -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <skipTests>false</skipTests>
                </configuration>
                <!--
                    we have to do this the hard way by forking each test in a separate VM
                    running the byteman agent and the appropriate script

                    first we run each test interpreted. then we repeat them all setting
                    -Dorg.jboss.byteman.compile.to.bytecode so we also test the rules when compiled
                 -->
                <executions>
                    <!-- java language operations -->
                    <execution>
                      <id>javaops.TestArithmetic</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestArithmetic.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestArithmetic.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestArray</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestArray.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestArray.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestAssign</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestAssign.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestAssign.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestComparison</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestComparison.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestComparison.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestField</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestField.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestField.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestLogical</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestLogical.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestLogical.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestMethod</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestMethod.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestMethod.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestNew</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestNew.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestNew.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestClassLiteral</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/javaops/TestClassLiteral.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestClassLiteral.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- location clauses -->
                    <execution>
                      <id>location.TestAll</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestAll.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestAll.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestAtNew</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestAtNew.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestAtNew.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestCall</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestCall.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestCall.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestEntry</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestEntry.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestEntry.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestExit</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestExit.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestExit.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestExceptionExit</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestExceptionExit.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestExceptionExit.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestLine</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestLine.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestLine.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestReadWrite</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestReadWrite.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestReadWrite.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestReadWriteParams</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestReadWriteParams.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestReadWriteParams.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestSynch</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestSynch.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestSynch.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>location.TestThrow</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/location/TestThrow.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestThrow.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- builtin helper methods -->
                    <execution>
                      <id>helpertests.TestCallerMatches</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/helpertests/TestCallerMatches.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestCallerMatches.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>helpertests.TestStackTrace</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/helpertests/TestStackTrace.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestStackTrace.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>helpertests.TestLinkMap</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/helpertests/TestLinkMap.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestLinkMap.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- miscellaneous tests -->
                    <execution>
                      <id>misc.TestInterfaceInjection</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestInterfaceInjection.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestInterfaceInjection.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestInvokeParamBinding</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestInvokeParamBinding.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestInvokeParamBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestOverridingInjection</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestOverridingInjection.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestOverridingInjection.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestOverridingInterfaceInjection</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestOverridingInterfaceInjection.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestOverridingInterfaceInjection.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestParamBinding</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestParamBinding.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestParamBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestRecursiveTriggers</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestRecursiveTriggers.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestRecursiveTriggers.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestReturnBindingAssignment</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestReturnBindingAssignment.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestReturnBindingAssignment.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestReturnBinding</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestReturnBinding.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestReturnBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestThrowBinding</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestThrowBinding.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestThrowBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestTriggerClassMethodBinding</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestTriggerClassMethodBinding.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestTriggerClassMethodBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestDowncast</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestDowncast.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestDowncast.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- bugfixes -->
                    <execution>
                      <id>bugfixes.TestAtNewWithCountAll</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAtNewWithCountAll.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAtNewWithCountAll.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestEmptySignature</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestEmptySignature.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestEmptySignature.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestEnclosedSynchronizationPropagation</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestEnclosedSynchronizationPropagation.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestEnclosedSynchronizationPropagation.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestInterfaceHierarchy</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestInterfaceHierarchy.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestInterfaceHierarchy.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMethodActualAgainstFormal</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMethodActualAgainstFormal.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodActualAgainstFormal.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMethodClauseReturnType</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMethodClauseReturnType.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodClauseReturnType.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- dynamic rule submission
                        n.b. this test does not use a script on the command line
                        instead it sets listener true and uplaods the rules from the test program
                        this is because the test needs to load the rule after the test class is loaded
                        in order to create the conditions for the bug to occur
                        n.b.b. this test is not repeated compiled because it is testing handling of the method spec
                    -->
                    <execution>
                      <id>bugfixes.TestMethodClauseReturnTypeDynamic</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMethodClauseReturnTypeDynamic.class</include>
                         </includes>
                          <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=listener:true</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMethodParamAssign</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMethodParamAssign.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodParamAssign.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMethodParamName</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMethodParamName.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodParamName.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMultiMethodMatch</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMultiMethodMatch.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMultiMethodMatch.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestPromotePrimitiveToObject</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestPromotePrimitiveToObject.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestPromotePrimitiveToObject.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestStringAsCharSequence</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestStringAsCharSequence.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestStringAsCharSequence.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestThrowAction</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestThrowAction.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowAction.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestThrowError</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestThrowError.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowError.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestThrowRuleInjection</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestThrowRuleInjection.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowRuleInjection.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestWaitAfterSignalWakeMustMeet</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestWaitAfterSignalWakeMustMeet.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestWaitAfterSignalWakeMustMeet.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestThrowRuntimeException</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestThrowRuntimeException.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowRuntimeException.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestAfterCallAssign</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAfterCallAssign.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAfterCallAssign.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestAbstractInterfaceCall</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAbstractInterfaceCall.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAbstractInterfaceCall.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMaxStackComputation</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMaxStackComputation.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMaxStackComputation.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBooleanComparisons</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBooleanComparisons.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBooleanComparisons.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestStackHeight</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestStackHeight.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestStackHeight.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestLocalUpdateType</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestLocalUpdateType.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestLocalUpdateType.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestRendezvousTimeout</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestRendezvousTimeout.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestRendezvousTimeout.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestJoinWaitTimeout</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestJoinWaitTimeout.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestJoinWaitTimeout.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestPlusExpressionCoerce</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestPlusExpressionCoerce.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestPlusExpressionCoerce.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestArrayArgTypeCheck</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestArrayArgTypeCheck.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestArrayArgTypeCheck.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBooleanLocal</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBooleanLocal.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBooleanLocal.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestDoubleEntryBookKeeping</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestDoubleEntryBookKeeping.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestDoubleEntryBookKeeping.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestConstructorArgUpcast</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestConstructorArgUpcast.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestConstructorArgUpcast.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBindNull</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBindNull.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBindNull.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestTraceOpenAndWrite</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestTraceOpenAndWrite.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestTraceOpenAndWrite.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestInnerClasses</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestInnerClasses.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestInnerClasses.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- dynamic rule submission
                        n.b. submit test does not use a script on the command line
                        instead it sets listener true and uplaods the rules from the test program
                    -->
                    <execution>
                      <id>submit.TestSubmit</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/submit/TestSubmit.class</include>
                         </includes>
                         <argLine>-javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=listener:true</argLine>
                      </configuration>
                    </execution>
                    <!-- now the executions for the compiled rules -->
                    <!-- java language operations compiled -->
                    <execution>
                        <id>javaops.TestArithmetic.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestArithmetic.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestArithmetic.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestArray.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestArray.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestArray.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestAssign.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestAssign.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestAssign.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestComparison.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestComparison.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestComparison.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestField.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestField.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestField.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestLogical.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestLogical.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestLogical.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestMethod.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestMethod.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestMethod.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestNew.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestNew.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestNew.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>javaops.TestClassLiteral.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/javaops/TestClassLiteral.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/javaops/TestClassLiteral.btm</argLine>
                        </configuration>
                    </execution>
                    <!-- location clauses compiled -->
                    <execution>
                        <id>location.TestAll.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestAll.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestAll.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestAtNew.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestAtNew.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestAtNew.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestCall.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestCall.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestCall.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestEntry.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestEntry.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestEntry.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestExit.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestExit.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestExit.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestExceptionExit.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestExceptionExit.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestExceptionExit.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestLine.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestLine.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestLine.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestReadWrite.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestReadWrite.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestReadWrite.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestReadWriteParams.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestReadWriteParams.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestReadWriteParams.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestSynch.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestSynch.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestSynch.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>location.TestThrow.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/location/TestThrow.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/location/TestThrow.btm</argLine>
                        </configuration>
                    </execution>
                    <!-- builtin methods compiled -->
                    <execution>
                        <id>helpertests.TestCallerMatches.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/helpertests/TestCallerMatches.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestCallerMatches.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>helpertests.TestStackTrace.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/helpertests/TestStackTrace.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestStackTrace.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>helpertests.TestLinkMap.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/helpertests/TestLinkMap.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/helpertests/TestLinkMap.btm</argLine>
                        </configuration>
                    </execution>
                    <!-- miscellenaeous tests compiled -->
                    <execution>
                        <id>misc.TestInterfaceInjection.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestInterfaceInjection.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestInterfaceInjection.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestInvokeParamBinding.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestInvokeParamBinding.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestInvokeParamBinding.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestOverridingInjection.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestOverridingInjection.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestOverridingInjection.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestOverridingInterfaceInjection.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestOverridingInterfaceInjection.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestOverridingInterfaceInjection.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestParamBinding.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestParamBinding.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestParamBinding.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestRecursiveTriggers.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestRecursiveTriggers.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestRecursiveTriggers.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestReturnBindingAssignment.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestReturnBindingAssignment.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestReturnBindingAssignment.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestReturnBinding.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestReturnBinding.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestReturnBinding.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>misc.TestThrowBinding.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/misc/TestThrowBinding.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestThrowBinding.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestTriggerClassMethodBinding.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestTriggerClassMethodBinding.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestTriggerClassMethodBinding.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>misc.TestDowncast.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/misc/TestDowncast.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/misc/TestDowncast.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- bugfixes compiled -->
                    <execution>
                      <id>bugfixes.TestAtNewWithCountAll.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAtNewWithCountAll.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAtNewWithCountAll.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestEmptySignature.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestEmptySignature.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestEmptySignature.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestEnclosedSynchronizationPropagation.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestEnclosedSynchronizationPropagation.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestEnclosedSynchronizationPropagation.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestInterfaceHierarchy.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestInterfaceHierarchy.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestInterfaceHierarchy.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestMethodActualAgainstFormal.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestMethodActualAgainstFormal.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodActualAgainstFormal.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestMethodClauseReturnType.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestMethodClauseReturnType.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodClauseReturnType.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestMethodParamAssign.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestMethodParamAssign.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodParamAssign.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestMethodParamName.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestMethodParamName.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMethodParamName.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestMultiMethodMatch.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestMultiMethodMatch.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMultiMethodMatch.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestPromotePrimitiveToObject.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestPromotePrimitiveToObject.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestPromotePrimitiveToObject.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestStringAsCharSequence.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestStringAsCharSequence.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestStringAsCharSequence.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestThrowAction.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestThrowAction.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowAction.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestThrowError.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestThrowError.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowError.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestThrowRuleInjection.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestThrowRuleInjection.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowRuleInjection.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                        <id>bugfixes.TestWaitAfterSignalWakeMustMeet.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/bugfixes/TestWaitAfterSignalWakeMustMeet.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestWaitAfterSignalWakeMustMeet.btm</argLine>
                        </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestThrowRuntimeException.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestThrowRuntimeException.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestThrowRuntimeException.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestAfterCallAssign.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAfterCallAssign.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAfterCallAssign.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestAbstractInterfaceCall.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestAbstractInterfaceCall.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestAbstractInterfaceCall.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestMaxStackComputation.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestMaxStackComputation.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestMaxStackComputation.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBooleanComparisons.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBooleanComparisons.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBooleanComparisons.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestStackHeight.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestStackHeight.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestStackHeight.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestLocalUpdateType.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestLocalUpdateType.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestLocalUpdateType.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestRendezvousTimeout.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestRendezvousTimeout.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestRendezvousTimeout.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestJoinWaitTimeout.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestJoinWaitTimeout.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestJoinWaitTimeout.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestPlusExpressionCoerce.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestPlusExpressionCoerce.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestPlusExpressionCoerce.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestArrayArgTypeCheck.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestArrayArgTypeCheck.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestArrayArgTypeCheck.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBooleanLocal.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBooleanLocal.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBooleanLocal.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestDoubleEntryBookKeeping.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestDoubleEntryBookKeeping.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestDoubleEntryBookKeeping.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestConstructorArgUpcast.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                         <forkCount>1</forkCount>
                         <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestConstructorArgUpcast.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestConstructorArgUpcast.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestTraceOpenAndWrite.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestTraceOpenAndWrite.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestTraceOpenAndWrite.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>javaops.TestInnerClasses.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestInnerClasses.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestInnerClasses.btm</argLine>
                      </configuration>
                    </execution>
                    <execution>
                      <id>bugfixes.TestBindNull.compiled</id>
                      <phase>integration-test</phase>
                      <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                      </goals>
                      <configuration>
                          <forkCount>1</forkCount>
                          <reuseForks>true</reuseForks>
                         <includes>
                           <include>org/jboss/byteman/tests/bugfixes/TestBindNull.class</include>
                         </includes>
                         <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=script:${project.build.testOutputDirectory}/scripts/bugfixes/TestBindNull.btm</argLine>
                      </configuration>
                    </execution>
                    <!-- dynamic rule submission compiled
                      submit test does not use a script on the command line
                      instead it sets listener true and uplaods the rules from the test program
                    -->
                    <execution>
                        <id>submit.TestSubmit.compiled</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <forkCount>1</forkCount>
                            <reuseForks>true</reuseForks>
                            <includes>
                                <include>org/jboss/byteman/tests/submit/TestSubmit.class</include>
                            </includes>
                            <argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=listener:true</argLine>
                        </configuration>
                    </execution>
					<!-- check rules -->
					<execution>
						<id>check.TestRuleCheck</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
						<configuration>
                            <forkCount>1</forkCount>
                            <reuseForks>true</reuseForks>
                            <test>TestRuleCheck</test>
                            <includes>
                                <include>org/jboss/byteman/tests/check/TestRuleCheck.class</include>
                            </includes>
							<argLine>-Dorg.jboss.byteman.compile.to.bytecode -javaagent:${project.build.directory}/byteman-agent-${project.version}.jar=listener:true</argLine>
                        </configuration>
					</execution>
                </executions>
            </plugin>
            <!--
                verify stage ensures each test generated a report file
                this catches cases where the VMfails to start because the
                agent fails to load or cannot read script files
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-verifier-plugin</artifactId>
                <configuration>
                    <verificationFile>verification.xml</verificationFile>
                    <failOnError>true</failOnError>
                </configuration>
                <executions>
                    <execution>
                        <id>main</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <!--
              during development we want asm classes to appear in
              their correct package so we can step through the asm
              code in the debugger.
              use command

                  mvn -P 'asmdebug' install

              to exclude asm classes from the shade relocations
            -->
            <id>asmdebug</id>
            <build>
                <plugins>
                    <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-shade-plugin</artifactId>
                      <executions>
                        <execution>
                          <phase>package</phase>
                          <goals>
                            <goal>shade</goal>
                          </goals>
                          <configuration>
                            <artifactSet>
                              <includes>
                                  <include>org.ow2.asm:asm</include>
                                  <include>org.ow2.asm:asm-tree</include>
                                  <include>org.ow2.asm:asm-analysis</include>
                                  <include>org.ow2.asm:asm-commons</include>
                                  <include>net.sf.squirrel-sql.thirdparty-non-maven:java-cup</include>
                              </includes>
                            </artifactSet>
                            <filters>
                              <filter>
                                <artifact>net.sf.squirrel-sql.thirdparty-non-maven:java-cup</artifact>
                                <includes>
                                  <include>java_cup/runtime/**</include>
                                </includes>
                              </filter>
                                <filter>
                                  <artifact>org.ow2.asm:asm</artifact>
                                  <includes>
                                    <include>org/objectweb/asm/**</include>
                                  </includes>
                                </filter>
                                <filter>
                                  <artifact>org.ow2.asm:asm-tree</artifact>
                                  <includes>
                                    <include>org/objectweb/asm/**</include>
                                  </includes>
                                </filter>
                                <filter>
                                  <artifact>org.ow2.asm:asm-analysis</artifact>
                                  <includes>
                                    <include>org/objectweb/asm/**</include>
                                  </includes>
                                </filter>
                                <filter>
                                  <artifact>org.ow2.asm:asm-commons</artifact>
                                  <includes>
                                    <include>org/objectweb/asm/**</include>
                                  </includes>
                                </filter>
                            </filters>
                            <relocations>
                                <relocation>
                                    <pattern>org.objectweb.asm</pattern>
                                    <shadedPattern>org.objectweb.asm</shadedPattern>
                                </relocation>
                                <relocation>
                                  <pattern>java_cup.runtime</pattern>
                                  <shadedPattern>org.jboss.byteman.java_cup.runtime</shadedPattern>
                                </relocation>
                            </relocations>
                          </configuration>
                        </execution>
                      </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>parser</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <execution>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <target>
                                        <java classname="JFlex.Main">
                                            <arg value="-q"/>
                                            <arg value="${basedir}/grammar/flex/ECAToken.flex"/>
                                            <arg value="-v"/>
                                            <arg value="-d"/>
                                            <arg value="${basedir}/src/main/java/org/jboss/byteman/rule/grammar"/>
                                            <classpath refid="maven.compile.classpath"/>
                                        </java>
                                        <java classname="java_cup.Main">
                                            <arg value="-package"/>
                                            <arg value="org.jboss.byteman.rule.grammar"/>
                                            <arg value="-parser" />
                                            <arg value="ECAGrammarParser" />
                                            <arg value="-nonterms"/>
                                            <arg value="-destdir"/>
                                            <arg value="${basedir}/src/main/java/org/jboss/byteman/rule/grammar"/>
                                            <arg value="${basedir}/grammar/cup/ECAGrammar.cup"/>
                                            <classpath refid="maven.compile.classpath"/>
                                        </java>
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <dependencies>
                <dependency>
                    <groupId>de.jflex</groupId>
                    <artifactId>jflex</artifactId>
                </dependency>
            </dependencies>

        </profile>
        <!--
            the parser generator omits to generate some necessary
            javadoc attributes in the generated code. so we have
            to escape doclint errors which arise when using jdk9
            and later jdk8 versions
        -->
        <profile>
            <id>fix javadoc lint errors</id>
            <build>
                <plugins>
                    <!-- switch off errors for missing javadoc fields -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <additionalparam>-Xdoclint:-missing</additionalparam>
                        </configuration>
                    </plugin>

                </plugins>
            </build>
        </profile>
    </profiles>
    <dependencies>
        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm-tree</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm-analysis</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm-commons</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.squirrel-sql.thirdparty-non-maven</groupId>
            <artifactId>java-cup</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-submit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
