[jboss-cvs] JBossAS SVN: r59187 - in projects/aop/branches: . arrays/aop arrays/aop/src/main/org/jboss/aop arrays/aop/src/main/org/jboss/aop/instrument arrays/aop/src/main/org/jboss/aop/proxy/container
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Dec 21 06:41:57 EST 2006
Author: kabir.khan at jboss.com
Date: 2006-12-21 06:41:51 -0500 (Thu, 21 Dec 2006)
New Revision: 59187
Added:
projects/aop/branches/arrays/
projects/aop/branches/arrays/aop/.classpath
projects/aop/branches/arrays/aop/build-tests-jdk50.xml
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Removed:
projects/aop/branches/arrays/aop/.classpath
projects/aop/branches/arrays/aop/build-tests-jdk50.xml
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Modified:
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectManager.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectXmlLoader.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/Domain.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/instrument/Instrumentor.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java
projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
Log:
made a copy
Copied: projects/aop/branches/arrays (from rev 59138, projects/aop/trunk)
Deleted: projects/aop/branches/arrays/aop/.classpath
===================================================================
--- projects/aop/trunk/aop/.classpath 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/.classpath 2006-12-21 11:41:51 UTC (rev 59187)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry excluding="org/jboss/aop/AnnotationIntroductionDef.java|org/jboss/aop/Aspect.java|org/jboss/aop/Bind.java|org/jboss/aop/CFlowDef.java|org/jboss/aop/CFlowStackDef.java|org/jboss/aop/DeclareError.java|org/jboss/aop/DeclareWarning.java|org/jboss/aop/DynamicCFlowDef.java|org/jboss/aop/InterceptorDef.java|org/jboss/aop/Introduction.java|org/jboss/aop/Mixin.java|org/jboss/aop/PointcutDef.java|org/jboss/aop/Precedence.java|org/jboss/aop/PrecedenceAdvice.java|org/jboss/aop/PrecedenceInterceptor.java|org/jboss/aop/Prepare.java|org/jboss/aop/TypeDef.java|org/jboss/aop/advice/Scope.java|org/jboss/aop/annotation/AnnotationElement.java|org/jboss/aop/hook/JRockitClassPreProcessor.java|org/jboss/aop/hook/JRockitPluggableClassPreProcessor.java|org/jboss/aspects/Threadbased.java" kind="src" path="src/main"/>
- <classpathentry kind="src" path="src/jdk15"/>
- <classpathentry kind="src" path="src/test"/>
- <classpathentry kind="lib" path="/thirdparty/oswego-concurrent/lib/concurrent.jar"/>
- <classpathentry kind="lib" path="/thirdparty/dom4j/lib/dom4j.jar"/>
- <classpathentry kind="lib" path="/thirdparty/trove/lib/trove.jar"/>
- <classpathentry kind="lib" path="/tools/lib/ant.jar"/>
- <classpathentry kind="lib" path="/thirdparty/qdox/lib/qdox.jar"/>
- <classpathentry kind="lib" path="/thirdparty/junit/lib/junit.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="docs"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/profiler/jvmti/lib/jboss-profiler-jvmti.jar"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/common-logging-spi/lib/jboss-logging-spi.jar"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/common-logging-log4j/lib/jboss-logging-log4j.jar"/>
- <classpathentry sourcepath="/javassist" kind="lib" path="/thirdparty/javassist/lib/javassist.jar"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-container.jar"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/test/lib/jboss-test.jar"/>
- <classpathentry kind="lib" path="/thirdparty/jboss/common-core/lib/jboss-common-core.jar"/>
- <classpathentry kind="lib" path="/thirdparty/apache-log4j/lib/log4j.jar"/>
- <classpathentry kind="output" path="output/eclipse-classes"/>
-</classpath>
Copied: projects/aop/branches/arrays/aop/.classpath (from rev 59144, projects/aop/trunk/aop/.classpath)
===================================================================
--- projects/aop/trunk/aop/.classpath 2006-12-19 13:42:42 UTC (rev 59144)
+++ projects/aop/branches/arrays/aop/.classpath 2006-12-21 11:41:51 UTC (rev 59187)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry excluding="org/jboss/aop/hook/JRockitClassPreProcessor.java|org/jboss/aop/hook/JRockitPluggableClassPreProcessor.java" kind="src" path="src/main"/>
+ <classpathentry kind="src" path="src/test"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/javassist"/>
+ <classpathentry kind="lib" path="/thirdparty/oswego-concurrent/lib/concurrent.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/dom4j/lib/dom4j.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/trove/lib/trove.jar"/>
+ <classpathentry kind="lib" path="/tools/lib/ant.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/qdox/lib/qdox.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/junit/lib/junit.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="lib" path="docs"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/profiler/jvmti/lib/jboss-profiler-jvmti.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/common-logging-spi/lib/jboss-logging-spi.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/common-logging-log4j/lib/jboss-logging-log4j.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/javassist/lib/javassist.jar" sourcepath="/javassist"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/microcontainer/lib/jboss-container.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/test/lib/jboss-test.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/jboss/common-core/lib/jboss-common-core.jar"/>
+ <classpathentry kind="lib" path="/thirdparty/apache-log4j/lib/log4j.jar"/>
+ <classpathentry kind="output" path="output/eclipse-classes"/>
+</classpath>
Deleted: projects/aop/branches/arrays/aop/build-tests-jdk50.xml
===================================================================
--- projects/aop/trunk/aop/build-tests-jdk50.xml 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/build-tests-jdk50.xml 2006-12-21 11:41:51 UTC (rev 59187)
@@ -1,1310 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE project [
- <!ENTITY buildmagic SYSTEM "../tools/etc/buildmagic/buildmagic.ent">
- <!ENTITY libraries SYSTEM "../thirdparty/libraries.ent">
- <!ENTITY modules SYSTEM "../tools/etc/buildmagic/modules.ent">
-]>
-
-<!-- ====================================================================== -->
-<!-- -->
-<!-- JBoss, the OpenSource J2EE webOS -->
-<!-- -->
-<!-- Distributable under LGPL license. -->
-<!-- See terms of license at http://www.gnu.org. -->
-<!-- -->
-<!-- ====================================================================== -->
-
-<!-- $Id$ -->
-
-<project default="main" name="JBoss/AOP">
-
- <!-- ================================================================== -->
- <!-- Setup -->
- <!-- ================================================================== -->
-
- <!--
- | Include the common Buildmagic elements.
- |
- | This defines several different targets, properties and paths.
- | It also sets up the basic extention tasks amoung other things.
- -->
-
- &buildmagic;
-
- <import file="base-tests.xml"/>
-
- <!-- ================================================================== -->
- <!-- Initialization -->
- <!-- ================================================================== -->
-
- <!--
- | Initialize the build system. Must depend on '_buildmagic:init'.
- | Other targets should depend on 'init' or things will mysteriously fail.
- -->
-
- <target name="init" unless="init.disable" depends="_buildmagic:init">
- </target>
-
-
- <!-- ================================================================== -->
- <!-- Configuration -->
- <!-- ================================================================== -->
-
- <!--
- | Configure the build system.
- |
- | This target is invoked by the Buildmagic initialization logic and
- | should contain module specific configuration elements.
- -->
-
- <target name="configure" unless="configure.disable">
- <property name="aop.version" value="jboss-aop-1.5.0.GA"/>
- <property name="aop.title" value="JBoss AOP Framework"/>
-
- <!-- =================== -->
- <!-- Basic Configuration -->
- <!-- =================== -->
-
- <!-- Module name(s) & version -->
- <property name="module.name" value="aop"/>
- <property name="module.Name" value="JBoss AOP"/>
- <property name="module.version" value="1.5.0.GA"/>
-
- <!-- ========= -->
- <!-- Libraries -->
- <!-- ========= -->
-
- &libraries;
- &modules;
- <!-- The combined library classpath -->
- <path id="library.classpath">
- <path refid="apache.ant.classpath"/>
- <path refid="apache.log4j.classpath"/>
- <path refid="javassist.classpath"/>
- <path refid="jboss.profiler.jvmti.classpath"/>
- <path refid="jboss/common.core.classpath"/>
- <path refid="jboss/common.logging.log4j.classpath"/>
- <path refid="jboss/common.logging.jdk.classpath"/>
- <path refid="jboss/common.logging.spi.classpath"/>
- <!--<path refid="jboss.microcontainer.classpath"/>-->
- <path refid="jboss.test.classpath"/>
- <path refid="junit.junit.classpath"/>
- <path refid="oswego.concurrent.classpath"/>
- <path refid="qdox.classpath"/>
- <path refid="trove.classpath"/>
- <path refid="xdoclet.xdoclet.classpath"/>
- </path>
-
- <!-- Defines jrockit.home -->
- <property file="local.properties"/>
-
- <available file="${jrockit.home}/jre/lib/managementapi.jar" property="JROCKIT_AVAILABLE"/>
-
- <!-- ======= -->
- <!-- Modules -->
- <!-- ======= -->
-
- <!-- The combined dependent module classpath -->
- <path id="dependentmodule.classpath">
- </path>
-
- <!-- ===== -->
- <!-- Tasks -->
- <!-- ===== -->
-
- <!-- Where source files live -->
- <property name="source.tests.java" value="${module.source}/test"/>
- <property name="source.etc" value="${module.source}/etc"/>
- <property name="source.res" value="${module.source}/resources"/>
- <property name="source.stylesheets" value="src/stylesheets"/>
-
- <!-- Where build generated files will go -->
- <property name="build.reports" value="output/reports"/>
- <property name="build.stylesheets" value="${module.output}/stylesheets"/>
- <property name="build.tests.classes" value="${module.output}/tests.classes"/>
- <property name="build.lib" value="${module.output}/lib"/>
-
- <!-- Install/Release structure -->
- <property name="install.id" value="${module.name}-${module.version}"/>
- <property name="release.id" value="${install.id}"/>
- <property name="install.root" value="${module.output}/${install.id}"/>
-
- <!-- The combined thirdparty classpath -->
- <path id="thirdparty.classpath">
- <path refid="library.classpath"/>
- <path refid="dependentmodule.classpath"/>
- </path>
-
- <!-- classpath and local.classpath must have a value using with a path -->
- <property name="classpath" value=""/>
- <property name="local.classpath" value=""/>
-
- <!-- The classpath required to build classes. -->
- <path id="javac.classpath">
- <pathelement path="${classpath}"/>
- <pathelement path="${local.classpath}"/>
- <path refid="thirdparty.classpath"/>
- <pathelement path="${build.lib}/jboss-aop-jdk50.jar"/>
- </path>
-
- <path id="javac.jrockit.classpath">
- <path refid="javac.classpath"/>
- <path path="${jrockit.home}/jre/lib/managementapi.jar"/>
- </path>
-
- <path id="test.classpath">
- <path refid="thirdparty.classpath"/>
- <pathelement path="${build.lib}/jboss-aop-jdk50.jar"/>
- </path>
-
- <path id="test.jrockit.classpath">
- <path refid="test.classpath"/>
- <path path="${jrockit.home}/jre/lib/managementapi.jar"/>
- </path>
-
- <!-- The classpath required to build javadocs. -->
- <path id="javadoc.classpath">
- <path refid="javac.classpath"/>
- </path>
-
- <!-- Packages to include when generating api documentation -->
- <property name="javadoc.packages" value="org.jbos.aop.*"/>
-
- <!-- Override JUnit defaults -->
- <property name="junit.timeout" value="240000"/> <!-- 4 minutes -->
- <property name="junit.batchtest.todir" value="${build.reports}"/>
- <property name="junit.jvm.options" value="-Ddummy"/>
- </target>
-
-
- <!-- ================================================================== -->
- <!-- Compile -->
- <!-- ================================================================== -->
-
- <!--
- | Compile everything.
- |
- | This target should depend on other compile-* targets for each
- | different type of compile that needs to be performed, short of
- | documentation compiles.
- -->
-
- <target name="compile"
- description="Compile all source files."
- depends="compile-test-classes"/>
-
- <!-- Compile all class files -->
- <target name="compile-test-classes" depends="init">
- <mkdir dir="${build.tests.classes}"/>
- <javac destdir="${build.tests.classes}"
- optimize="${javac.optimize}"
- target="1.5"
- source="1.5"
- debug="${javac.debug}"
- depend="${javac.depend}"
- verbose="${javac.verbose}"
- deprecation="${javac.deprecation}"
- includeAntRuntime="${javac.include.ant.runtime}"
- includeJavaRuntime="${javac.include.java.runtime}"
- failonerror="${javac.fail.onerror}">
- <src path="${source.tests.java}"/>
- <classpath refid="test.classpath"/>
- <include name="**/*.java"/>
- <exclude name="org/jboss/test/aop/memoryleaks/**/*.java"/>
- <exclude name="**/methodhashing/*"/>
- </javac>
- </target>
-
- <!-- ================================================================== -->
- <!-- Cleaning -->
- <!-- ================================================================== -->
-
- <!-- Clean up all build output -->
- <target name="clean"
- description="Cleans up most generated files."
- depends="init">
- <delete dir="${build.tests.classes}"/>
- </target>
-
- <target name="clean-tests" depends="init">
- <delete dir="${build.tests.classes}"/>
- </target>
-
- <!-- Clean up all generated files -->
- <target name="clobber"
- description="Cleans up all generated files."
- depends="_buildmagic:clobber, clean">
- </target>
-
-
- <!-- ===============================================================p=== -->
- <!-- Misc. -->
- <!-- ================================================================== -->
-
- <target name="main" depends="most"
- description="Executes the default target (most)."/>
-
- <target name="all" depends="compile"
- description="Builds everything."/>
-
- <target name="most" depends="compile"
- description="Builds almost everything."/>
-
- <target name="help"
- description="Show this help message."
- depends="_buildmagic:help:standard"/>
-
- <!-- ==================================================================================== -->
- <!-- JDK 5.0 TESTS -->
- <!-- ==================================================================================== -->
-
- <target name="tests" depends="main">
-
- <delete dir="${build.tests.classes}"/>
- <antcall target="javaagent-genadvisor-tests" inheritRefs="true"/>
- <antcall target="javaagent-tests" inheritRefs="true"/>
-
- <antcall target="system-classloader-test" inheritRefs="true"/>
- <antcall target="not-woven-tests" inheritRefs="true"/>
-
- <antcall target="precompiled-tests" inheritRefs="true"/>
-
- <delete dir="${build.tests.classes}"/>
- <antcall target="precompiled-genadvisor-tests" inheritRefs="true"/>
-
- <delete dir="${build.tests.classes}"/>
- <antcall target="non-optimized-precompiled-tests" inheritRefs="true"/>
- </target>
-
- <target name="all-tests" depends="tests">
- <!-- Should move the remaining tests into something similar to _base-tests.xml and run them from the main targets once JBAOP-268 has been done -->
- <delete dir="${build.tests.classes}/org/jboss/test"/>
- <antcall target="jdk15-loadtime-tests" inheritRefs="true"/>
-
- <delete dir="${build.tests.classes}/org/jboss/test"/>
- <antcall target="jdk15-precompiled-tests" inheritRefs="true"/>
-
- <delete dir="${build.tests.classes}"/>
- <antcall target="jrockit-tests" inheritRefs="true"/>
- <antcall target="jrockit-genadvisor-tests" inheritRefs="true"/>
- </target>
-
- <target name="_base-jdk50-tests">
- <antcall target="${test-target}" inheritRefs="true">
- <param name="test" value="bridgemethod"/>
- <param name="caller" value="${caller}"/>
- <param name="exclude" value="**/notwoven/BridgeMethodTestCase.class"/>
- </antcall>
- <antcall target="_base-tests" inheritRefs="true">
- <param name="caller" value="${caller}"/>
- <param name="test-target" value="${test-target}"/>
- </antcall>
- </target>
-
-
- <!-- ==================================================================================== -->
- <!-- JAVAAGENT TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
- <target name="javaagent-tests" depends="compile-test-classes">
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="javaagent-tests"/>
- <param name="exclude" value="**/GenAdvisorOverrideTestCase.class"/>
- </antcall>
-
- <!-- Add tests in _base-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="javaagent-tests"/>
- <param name="test-target" value="_run-javaagent-test"/>
- </antcall>
- </target>
-
- <target name="loadtime-test" depends="init">
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="${test}"/>
- <param name="caller" value="javaagent-tests"/>
- </antcall>
- </target>
-
-
- <!-- ==================================================================================== -->
- <!-- GENERATED ADVISOR JAVAGENT TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
- <target name="javaagent-genadvisor-tests" depends="compile-test-classes">
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="javaagent-genadvisor-tests"/>
- <param name="exclude" value="**/OverrideTestCase.class"/>
- </antcall>
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="nameddomain"/>
- <param name="caller" value="javaagent-genadvisor-tests"/>
- </antcall>
-
- <!-- Add tests in _base-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="javaagent-genadvisor-tests"/>
- <param name="test-target" value="_run-javaagent-test"/>
- </antcall>
- </target>
-
- <target name="loadtime-ga-test" depends="init">
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="${test}"/>
- <param name="caller" value="javaagent-genadvisor-tests"/>
- </antcall>
- </target>
-
- <!-- ==================================================================================== -->
- <!-- JDK 5.0 JAVAAGENT TEST COMMONS -->
- <!-- These targets should not be called directly, use bootclasspath-tests or -->
- <!-- bootclasspath-genadvisor-tests -->
- <!-- ==================================================================================== -->
-
- <target name="_run-javaagent-test">
-
- <!-- Check for jboss-aop.xml override -->
- <condition property="jboss.aop.path" value="${aop.xml}">
- <isset property="aop.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="">
- <isset property="no.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="${source.res}/test/${test}/jboss-aop.xml">
- <not>
- <isset property="aop.xml"/>
- </not>
- </condition>
-
- <!-- Get -Djboss.aop.class.path from passed in parameters -->
- <condition property="jboss.aop.class.path" value="${build.tests.classes}">
- <isset property="use.annotations"/>
- </condition>
- <condition property="jboss.aop.class.path" value="">
- <not>
- <isset property="use.annotations"/>
- </not>
- </condition>
-
- <!-- Set the weaving mode and instrumentor to use-->
- <condition property="instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor">
- <equals arg1="${caller}" arg2="javaagent-tests"/>
- </condition>
- <condition property="instrumentor" value="org.jboss.aop.instrument.GeneratedAdvisorInstrumentor">
- <equals arg1="${caller}" arg2="javaagent-genadvisor-tests"/>
- </condition>
-
- <echo>Running ${test} with instrumentor ${instrumentor}</echo>
-
- <mkdir dir="${build.reports}"/>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <sysproperty key="jboss.aop.path" value="${jboss.aop.path}"/>
- <sysproperty key="jboss.aop.class.path" value="${jboss.aop.class.path}"/>
- <sysproperty key="jboss.aop.instrumentor" value="${instrumentor}"/>
- <sysproperty key="jboss.aop.debug.classes" value="true"/>
- <sysproperty key="jboss-junit-configuration" value="${caller}"/>
- <formatter type="plain" extension="-${caller}.txt"/>
- <classpath refid="test.classpath"/>
- <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter" extension="-${caller}.xml"/>
- <classpath>
- <pathelement location="${build.tests.classes}"/>
- </classpath>
- <batchtest todir="${build.reports}"
- haltonfailure="false"
- fork="true">
- <fileset dir="${build.tests.classes}">
- <include name="org/jboss/test/aop/${test}/**/*TestCase.class"/>
- <include name="org/jboss/test/aop/${test}/**/*Tester.class"/>
- <exclude name="${exclude}"/>
-
- <!-- These are not test cases, and so they will fail when junit tries to run them. Should really rename all tests to *TestCase -->
- <exclude name="org/jboss/test/aop/reflection/ReflectionAspectTester.class"/>
- <exclude name="org/jboss/test/aop/basic/POJOAspectTester.class"/>
- </fileset>
- </batchtest>
- </junit>
- </target>
-
- <!-- ==================================================================================== -->
- <!-- OPTIMIZED PRECOMPILED TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
-
- <target name="precompiled-tests" depends="compile-test-classes">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="library.classpath"/>
- <path refid="dependentmodule.classpath"/>
- <path refid="jboss.aop.classpath"/>
- </path>
-
- <!-- Add tests in _base-precompiled-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="precompiled-tests"/>
- <param name="test-target" value="_run-precompiled-test"/>
- </antcall>
-
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="args"/>
- <param name="caller" value="precompiled-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="precompiled-tests"/>
- <param name="exclude" value="**/GenAdvisorOverrideTestCase.class"/>
- </antcall>
- </target>
-
- <!-- ==================================================================================== -->
- <!-- NON OPTIMIZED PRECOMPILED TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
-
- <target name="non-optimized-precompiled-tests" depends="compile-test-classes">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="library.classpath"/>
- <path refid="dependentmodule.classpath"/>
- <path refid="jboss.aop.classpath"/>
- </path>
-
- <!-- Add tests in _base-precompiled-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="non-optimized-precompiled-tests"/>
- <param name="test-target" value="_run-precompiled-test"/>
- </antcall>
-
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="non-optimized-precompiled-tests"/>
- <param name="exclude" value="**/GenAdvisorOverrideTestCase.class"/>
- </antcall>
- </target>
-
- <!-- ==================================================================================== -->
- <!-- JDK 5.0 GENERATED ADVISOR PRECOMPILED TESTS -->
- <!-- ==================================================================================== -->
-
- <target name="precompiled-genadvisor-tests" depends="compile-test-classes">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="library.classpath"/>
- <path refid="dependentmodule.classpath"/>
- <path refid="jboss.aop.classpath"/>
- </path>
-
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="args"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="beforeafter"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="beforeafterArgs"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="dynamicgenadvisor"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- <param name="exclude" value="**/OverrideTestCase.class"/>
- </antcall>
- <antcall target="_run-javaagent-test" inheritRefs="true">
- <param name="test" value="nameddomain"/>
- <param name="caller" value="javaagent-genadvisor-tests"/>
- </antcall>
-
- <!-- Add tests in _base-precompiled-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="precompiled-genadvisor-tests"/>
- <param name="test-target" value="_run-precompiled-test"/>
- </antcall>
- </target>
-
- <target name="precompiled-test" depends="init">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="${test}"/>
- <param name="caller" value="precompiled-tests"/>
- </antcall>
- </target>
-
- <target name="precompiled-genadvisor-test" depends="init">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <antcall target="_run-precompiled-test" inheritRefs="true">
- <param name="test" value="args"/>
- <param name="caller" value="precompiled-genadvisor-tests"/>
- </antcall>
- </target>
-
- <target name="_run-precompiled-test">
-
- <!-- Check for jboss-aop.xml override for compiler -->
- <condition property="aoppath" value="${aop.xml}">
- <isset property="aop.xml"/>
- </condition>
- <condition property="aoppath" value="">
- <isset property="no.xml"/>
- </condition>
- <condition property="aoppath" value="${source.res}/test/${test}/jboss-aop.xml">
- <not>
- <isset property="aop.xml"/>
- </not>
- </condition>
-
- <!-- Set the weaving mode and instrumentor to use-->
- <condition property="optimized" value="true">
- <or>
- <equals arg1="${caller}" arg2="precompiled-tests"/>
- <equals arg1="${caller}" arg2="precompiled-genadvisor-tests"/>
- </or>
- </condition>
- <condition property="optimized" value="false">
- <equals arg1="${caller}" arg2="non-optimized-precompiled-tests"/>
- </condition>
- <condition property="instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor">
- <not>
- <equals arg1="${caller}" arg2="precompiled-genadvisor-tests"/>
- </not>
- </condition>
- <condition property="instrumentor" value="org.jboss.aop.instrument.GeneratedAdvisorInstrumentor">
- <equals arg1="${caller}" arg2="precompiled-genadvisor-tests"/>
- </condition>
-
- <echo>Compiling ${test} with optimized=${optimized} and instrumentor ${instrumentor}</echo>
-
- <!-- aopc -->
- <aopc optimized="${optimized}" compilerclasspathref="aop.task.classpath">
- <classpath refid="aop.task.classpath"/>
- <classpath refid="test.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <aoppath path="${aoppath}"/>
- <sysproperty key="jboss.aop.instrumentor" value="${instrumentor}"/>
- <src path="${build.tests.classes}"/>
- <include name="org/jboss/test/aop/${test}/**"/>
- <exclude name="${exclude}"/>
- <aopclasspath path="${build.tests.classes}"/>
- </aopc>
-
- <!-- Get -Djboss.aop.path from passed in parameters -->
- <condition property="jboss.aop.path" value="${aop.xml}">
- <isset property="aop.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="">
- <isset property="no.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="${source.res}/test/${test}/jboss-aop.xml">
- <not>
- <isset property="aop.xml"/>
- </not>
- </condition>
-
- <!-- Get -Djboss.aop.class.path from passed in parameters -->
- <condition property="jboss.aop.class.path" value="${build.tests.classes}">
- <isset property="use.annotations"/>
- </condition>
- <condition property="jboss.aop.class.path" value="">
- <not>
- <isset property="use.annotations"/>
- </not>
- </condition>
-
- <!-- determine output directory from weaving mode -->
- <mkdir dir="${build.reports}"/>
-
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${jboss.aop.path}"/>
- <sysproperty key="jboss.aop.class.path" value="${jboss.aop.class.path}"/>
- <sysproperty key="jboss-junit-configuration" value="${caller}"/>
- <formatter type="plain" extension="-${caller}-jdk50.txt"/>
- <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter" extension="-${caller}-jdk50.xml"/>
- <classpath>
- <path refid="test.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <batchtest todir="${build.reports}"
- haltonerror="false"
- haltonfailure="false"
- fork="true">
- <fileset dir="${build.tests.classes}">
- <include name="org/jboss/test/aop/${test}/**/*TestCase.class"/>
- <include name="org/jboss/test/aop/${test}/**/*Tester.class"/>
- <exclude name="${exclude}"/>
-
- <!-- These are not test cases, and so they will fail when junit tries to run them. Should really rename all tests to *TestCase -->
- <exclude name="org/jboss/test/aop/reflection/ReflectionAspectTester.class"/>
- <exclude name="org/jboss/test/aop/basic/POJOAspectTester.class"/>
- </fileset>
- </batchtest>
- </junit>
- </target>
-
-
- <!-- ==================================================================================== -->
- <!-- NON-WOVEN TESTS -->
- <!-- ==================================================================================== -->
-
- <target name="not-woven-tests" depends="compile-test-classes">
- <mkdir dir="${build.reports}"/>
-
- <taskdef name="annotationc" classname="org.jboss.aop.ant.AnnotationC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="test.classpath"/>
- </path>
- <annotationc compilerclasspathref="aop.task.classpath" bytecode="true">
- <classpath refid="aop.task.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <src path="${source.tests.java}/org/jboss/test/aop/annotationc"/>
- </annotationc>
-
- <echo>org/jboss/test/aop/methodhashing/MethodHashingTestCase will fail until the microcontainer has been updated in the repository</echo>
-
- <junit printsummary="yes" fork="no" haltonfailure="no" >
- <sysproperty key="jboss.aop.debug.classes" value="false"/>
- <classpath>
- <path refid="javac.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <sysproperty key="jboss-junit-configuration" value="jdk50"/>
- <formatter type="plain" extension="-jdk50.txt"/>
- <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter" extension="-jdk50.xml"/>
-
- <batchtest todir="${build.reports}"
- haltonerror="false"
- haltonfailure="false"
- fork="true">
- <fileset dir="${build.tests.classes}">
- <include name="org/jboss/test/aop/proxy/ProxyTestCase.class"/>
- <include name="org/jboss/test/aop/methodhashing/MethodHashingTestCase.class"/>
- <include name="org/jboss/test/aop/annotationc/AnnotationTester.class"/>
- <include name="org/jboss/test/aop/bridgemethodnotwoven/BridgeMethodTestCase.class"/>
- </fileset>
- </batchtest>
-
- </junit>
- </target>
-
- <!-- ==================================================================================== -->
- <!-- JDK 5 TESTS -->
- <!-- ==================================================================================== -->
-
- <target name="jdk15-loadtime-tests" depends="compile">
-
- <property name="report.dir" value="${build.reports}"/>
- <mkdir dir="${report.dir}"/>
-
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareAll/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareAll.HotSwapDisabledTester" />
- </junit>
-
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareConstructor/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareConstructor.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareMethod/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareMethod.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareField/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareField.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldGet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldGet.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldSet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="java5Agent" value="true"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-loadtime-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-loadtime-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldSet.HotSwapDisabledTester" />
- </junit>
-
- </target>
-
- <target name="jdk15-precompiled-tests" depends="compile">
-
- <property name="report.dir" value="${build.reports}"/>
- <mkdir dir="${report.dir}"/>
-
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </path>
-
- <aopc compilerclasspathref="aop.task.classpath">
- <classpath refid="aop.task.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <src path="${build.tests.classes}"/>
- <include name="org/jboss/test/aop/jdk15/**"/>
- <exclude name="org/jboss/test/aop/jdk15/dynamic/**"/>
- <aoppath path="${source.res}/test/jdk15/jboss-aop.xml"/>
- <aopclasspath path="${build.tests.classes}"/>
- </aopc>
-
- <aopc compilerclasspathref="aop.task.classpath">
- <classpath refid="aop.task.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <src path="${build.tests.classes}"/>
- <include name="org/jboss/test/aop/basic/**"/>
- <aoppath path="${source.res}/test/basic/jboss-aop.xml"/>
- </aopc>
- <mkdir dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <!-- process jdk15/dynamic/common/scenario with prepareAll jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareAll/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareAll.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete includeemptydirs="true">
- <fileset dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario" includes="**/*"/>
- </delete>
- <!-- process jdk15/dynamic/common/scenario with prepareConstructor jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareConstructor/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareConstructor.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete includeemptydirs="true">
- <fileset dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario" includes="**/*"/>
- </delete>
- <!-- process jdk15/dynamic/common/scenario with prepareField jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareField/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareField.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete includeemptydirs="true">
- <fileset dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario" includes="**/*"/>
- </delete>
- <!-- process jdk15/dynamic/common/scenario with prepareFieldGet jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareFieldGet/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareFieldGet.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete includeemptydirs="true">
- <fileset dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario" includes="**/*"/>
- </delete>
- <!-- process jdk15/dynamic/common/scenario with prepareFieldSet jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareFieldSet/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareFieldSet.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete includeemptydirs="true">
- <fileset dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario" includes="**/*"/>
- </delete>
- <!-- process jdk15/dynamic/common/scenario with prepareMethod jboss-aop.xml file -->
- <unjar src="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"
- dest="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
- <aopc verbose="false" compilerclasspathref="aop.task.classpath">
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <classpath path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <src path="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <aoppath path="${source.res}/test/jdk15/dynamic/prepareMethod/jboss-aop.xml"/>
- </aopc>
- <jar destfile="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareMethod.jar"
- basedir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario/"/>
- <delete dir="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario"/>
-
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/jboss-aop.xml"/>
- <sysproperty key="jboss.aop.class.path" value="${build.tests.classes}"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.AOPTester"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.annotated.AnnotatedTestCase"/>
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/basic/jboss-aop.xml"/>
- <sysproperty key="jboss.aop.class.path" value="${build.tests.classes}"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.basic.AOPTester"/>
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareAll/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareAll.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareAll.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareConstructor/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareConstructor.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareConstructor.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareField/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareField.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareField.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldGet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareFieldGet.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldGet.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldSet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareFieldSet.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldSet.HotSwapDisabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareMethod/jboss-aop.xml"/>
- <sysproperty key="scenario.jar"
- value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenarioAopcPrepareMethod.jar"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain" extension="-jdk15-precompiled-tests.txt"/>
- <formatter usefile="true" type="xml" extension="-jdk15-precompiled-tests.xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareMethod.HotSwapDisabledTester" />
- </junit>
- </target>
- <target name="jdk15-hotswap-tests" depends="compile">
-
- <property name="report.dir" value="${build.reports}/jdk15-hotswap-tests"/>
- <mkdir dir="${report.dir}"/>
-
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareAll/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <!-- don't prune it so that we can inspect the bytecodes state during tests execution -->
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareAll.HotSwapEnabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareConstructor/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareConstructor.HotSwapEnabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareMethod/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareMethod.HotSwapEnabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareField/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareField.HotSwapEnabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldGet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldGet.HotSwapEnabledTester" />
- </junit>
- <junit printsummary="yes" fork="yes" haltonfailure="no">
- <sysproperty key="jboss.aop.path" value="${source.res}/test/jdk15/dynamic/prepareFieldSet/jboss-aop.xml"/>
- <sysproperty key="scenario.jar" value="${build.tests.classes}/org/jboss/test/aop/jdk15/dynamic/common/scenario.jar"/>
- <sysproperty key="jboss.aop.prune" value="false"/>
- <jvmarg value="-javaagent:${build.lib}/jboss-aop-jdk50.jar=-hotSwap"/>
- <classpath>
- <path refid="test15.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter usefile="true" type="plain"/>
- <formatter usefile="true" type="xml"/>
- <test todir="${report.dir}" name="org.jboss.test.aop.jdk15.dynamic.prepareFieldSet.HotSwapEnabledTester" />
- </junit>
- </target>
-
-
- <!-- ==================================================================================== -->
- <!-- JROCKIT TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
- <target name="jrockit-tests" depends="compile-test-classes" if="JROCKIT_AVAILABLE">
-
- <!-- Add tests in _base-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="jrockit-tests"/>
- <param name="test-target" value="_run-jrockit-test"/>
- </antcall>
-
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-jrockit-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="jrockit-tests"/>
- <param name="exclude" value="**/GenAdvisorOverrideTestCase.class"/>
- </antcall>
-
- </target>
-
- <!-- ==================================================================================== -->
- <!-- GENERATED ADVISOR JROCKIT TESTS (JDK 5.0) -->
- <!-- ==================================================================================== -->
- <target name="jrockit-genadvisor-tests" depends="compile-test-classes" if="JROCKIT_AVAILABLE">
-
- <!-- Add tests in _base-tests unless they should only be run in this weaving mode -->
- <antcall target="_base-jdk50-tests" inheritRefs="true">
- <param name="caller" value="jrockit-genadvisor-tests"/>
- <param name="test-target" value="_run-jrockit-test"/>
- </antcall>
-
- <!-- Tests only applicable for this weaving mode -->
- <antcall target="_run-jrockit-test" inheritRefs="true">
- <param name="test" value="override"/>
- <param name="caller" value="jrockit-genadvisor-tests"/>
- <param name="exclude" value="**/OverrideTestCase.class"/>
- </antcall>
- </target>
-
-
- <target name="_run-jrockit-test">
-
- <!-- Check for jboss-aop.xml override -->
- <condition property="jboss.aop.path" value="${aop.xml}">
- <isset property="aop.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="">
- <isset property="no.xml"/>
- </condition>
- <condition property="jboss.aop.path" value="${source.res}/test/${test}/jboss-aop.xml">
- <not>
- <isset property="aop.xml"/>
- </not>
- </condition>
-
- <!-- Get -Djboss.aop.class.path from passed in parameters -->
- <condition property="jboss.aop.class.path" value="${build.tests.classes}">
- <isset property="use.annotations"/>
- </condition>
- <condition property="jboss.aop.class.path" value="">
- <not>
- <isset property="use.annotations"/>
- </not>
- </condition>
-
- <!-- Set the weaving mode and instrumentor to use-->
- <condition property="instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor">
- <equals arg1="${caller}" arg2="jrockit-tests"/>
- </condition>
- <condition property="instrumentor" value="org.jboss.aop.instrument.GeneratedAdvisorInstrumentor">
- <equals arg1="${caller}" arg2="jrockit-genadvisor-tests"/>
- </condition>
-
- <echo>Running ${test} with instrumentor ${instrumentor}</echo>
-
- <mkdir dir="${build.reports}"/>
- <junit printsummary="yes" fork="yes" haltonfailure="no" jvm="${jrockit.home}/bin/java">
- <jvmarg value="-Xmanagement:class=org.jboss.aop.hook.JRockitClassPreProcessor"/>
- <sysproperty key="jboss-junit-configuration" value="${caller}"/>
- <sysproperty key="jboss.aop.path" value="${jboss.aop.path}"/>
- <sysproperty key="jboss.aop.class.path" value="${jboss.aop.class.path}"/>
- <sysproperty key="jboss.aop.instrumentor" value="${instrumentor}"/>
- <sysproperty key="jboss.aop.debug.classes" value="true"/>
- <formatter type="plain" extension="-${caller}.txt"/>
- <classpath refid="test.classpath"/>
- <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter" extension="-${caller}.xml"/>
- <classpath>
- <path refid="test.jrockit.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- </classpath>
- <batchtest todir="${build.reports}"
- haltonerror="false"
- haltonfailure="false"
- fork="true">
- <fileset dir="${build.tests.classes}">
- <include name="org/jboss/test/aop/${test}/**/*TestCase.class"/>
- <include name="org/jboss/test/aop/${test}/**/*Tester.class"/>
- <exclude name="${exclude}"/>
-
- <!-- These are not test cases, and so they will fail when junit tries to run them. Should really rename all tests to *TestCase -->
- <exclude name="org/jboss/test/aop/reflection/ReflectionAspectTester.class"/>
- <exclude name="org/jboss/test/aop/basic/POJOAspectTester.class"/>
- </fileset>
- </batchtest>
- </junit>
- </target>
-
-
- <target name="compiletime-declare" depends="compile-test-classes">
- <taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="jboss.aop.classpath"/>
- <taskdef name="annotationc" classname="org.jboss.aop.ant.AnnotationC" classpathref="jboss.aop.classpath"/>
- <path id="aop.task.classpath">
- <path refid="library.classpath"/>
- <path refid="dependentmodule.classpath"/>
- <path refid="jboss.aop.classpath"/>
- </path>
-
- <annotationc compilerclasspathref="aop.task.classpath" bytecode="true">
- <classpath refid="aop.task.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <src path="${source.tests.java}"/>
- <include name="org/jboss/test/aop/annotated/declare/*.java"/>
- </annotationc>
-
- <echo>
- ===== The output of the aopc task should look as follows: ====
- 4 x This is an expected warning: Cannot call business layer from datalayer.
- 1 x This is an expected warning: CAR should be mentioned in msg
- 1 x This is an expected warning: Cannot call business layer from Car.badMethod()
- 1 x This is an expected warning: FOURWHEELER should be mentioned in msg
- 1 x This is an expected warning: TRUCK should be mentioned in msg
- 1 x Expected annotated warning
- </echo>
-
- <echo>
- =======================================================
-
- RUNNING AOPC TASK
- </echo>
-
- <aopc compilerclasspathref="aop.task.classpath">
- <classpath refid="aop.task.classpath"/>
- <classpath path="${build.tests.classes}"/>
- <src path="${build.tests.classes}"/>
- <include name="org/jboss/test/aop/declare/**"/>
- <include name="org/jboss/test/aop/annotated/declare/**"/>
- <aoppath path="${source.res}/test/declare/jboss-aop.xml"/>
- <aopclasspath path="${build.tests.classes}"/>
- </aopc>
- </target>
-
-
- <target name="system-classloader-test" depends="compile-test-classes">
- <!-- Even though this is deprecated we should still make sure it works from time to time -->
- <junit printsummary="yes" fork="no" haltonfailure="false">
- <sysproperty key="java.system.class.loader" value="org.jboss.aop.standalone.SystemClassLoader"/>
- <sysproperty key="jboss.aop.path" value="${source.res}/test/basic/jboss-aop.xml"/>
- <sysproperty key="jboss.aop.instrumentor" value="org.jboss.aop.instrument.ClassicInstrumentor"/>
- <sysproperty key="jboss-junit-configuration" value="-system-classloader-jdk50.xml"/>
- <classpath>
- <path refid="test.classpath"/>
- <pathelement location="${build.tests.classes}"/>
- <pathelement location="docs"/>
- </classpath>
- <formatter type="plain" extension="-system-classloader-jdk50.txt"/>
- <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter" extension="-system-classloader-jdk50.xml"/>
- <test fork="yes" name="org.jboss.test.aop.basic.AOPTester" todir="${build.reports}"/>
- </junit>
- </target>
-
- <target name="compile-stylesheets" depends="configure">
- <mkdir dir="${build.stylesheets}"/>
- <copy todir="${build.stylesheets}" filtering="yes">
- <fileset dir="${source.stylesheets}">
- <include name="**/*"/>
- </fileset>
- </copy>
- </target>
-
- <target name="tests-report-html" depends="compile-stylesheets">
- <mkdir dir="${build.reports}/html"/>
-
- <junitreport todir="${build.reports}">
- <fileset dir="${build.reports}">
- <include name="TEST-*.xml"/>
- </fileset>
- <report format="frames"
- todir="${build.reports}/html"
- styledir="${build.stylesheets}"
- />
- </junitreport>
- </target>
-
-</project>
Copied: projects/aop/branches/arrays/aop/build-tests-jdk50.xml (from rev 59144, projects/aop/trunk/aop/build-tests-jdk50.xml)
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectManager.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectManager.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectManager.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -50,6 +50,7 @@
import org.jboss.aop.advice.PrecedenceDefEntry;
import org.jboss.aop.advice.PrecedenceSorter;
import org.jboss.aop.advice.Scope;
+import org.jboss.aop.array.ArrayReplacement;
import org.jboss.aop.classpool.AOPClassPoolRepository;
import org.jboss.aop.classpool.AOPScopedClassLoaderHelper;
import org.jboss.aop.instrument.GeneratedAdvisorInstrumentor;
@@ -116,6 +117,7 @@
protected int subscribedDomainQueueRef;
protected final LinkedHashMap interfaceIntroductions = new LinkedHashMap();
+ protected final LinkedHashMap arrayReplacements = new LinkedHashMap();
protected final LinkedHashMap annotationIntroductions = new LinkedHashMap();
protected final LinkedHashMap annotationOverrides = new LinkedHashMap();
protected final LinkedHashMap bindings = new LinkedHashMap();
@@ -1508,6 +1510,41 @@
}
/**
+ * Retrieve an introduction pointcut of a certain name
+ */
+ public InterfaceIntroduction getArrayReplacement(String name)
+ {
+ synchronized (arrayReplacements)
+ {
+ return (InterfaceIntroduction) arrayReplacements.get(name);
+ }
+ }
+
+ /**
+ * Register an introduction pointcut
+ */
+ public synchronized void addArrayReplacement(ArrayReplacement pointcut)
+ {
+ removeArrayReplacement(pointcut.getName());
+ synchronized (arrayReplacements)
+ {
+ arrayReplacements.put(pointcut.getName(), pointcut);
+ }
+ }
+
+ /**
+ * remove an introduction pointcut of a certain name
+ */
+ public void removeArrayReplacement(String name)
+ {
+ synchronized (arrayReplacements)
+ {
+ ArrayReplacement pointcut = (ArrayReplacement) arrayReplacements.remove(name);
+ if (pointcut == null) return;
+ }
+ }
+
+ /**
* Register an annotation introduction
*/
public synchronized void addAnnotationIntroduction(AnnotationIntroduction pointcut)
@@ -1772,6 +1809,11 @@
return interfaceIntroductions;
}
+ public Map getArrayReplacements()
+ {
+ return arrayReplacements;
+ }
+
public Map getTypedefs()
{
return typedefs;
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectXmlLoader.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/AspectXmlLoader.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/AspectXmlLoader.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -50,6 +50,7 @@
import org.jboss.aop.advice.ScopeUtil;
import org.jboss.aop.advice.ScopedInterceptorFactory;
import org.jboss.aop.advice.ThrowingFactory;
+import org.jboss.aop.array.ArrayReplacement;
import org.jboss.aop.introduction.AnnotationIntroduction;
import org.jboss.aop.introduction.InterfaceIntroduction;
import org.jboss.aop.metadata.ClassMetaDataBinding;
@@ -673,6 +674,50 @@
manager.addPointcut(p);
}
+ public void undeployArrayReplacement(Element pointcut) throws Exception
+ {
+ String name = getName(pointcut, "arrayReplacement");
+ manager.removeArrayReplacement(name);
+ }
+
+ public void deployArrayReplacement(Element pointcut) throws Exception
+ {
+ String name = getName(pointcut, "arrayReplacement");
+ String classExpr = pointcut.getAttribute("class");
+ if (classExpr != null && classExpr.trim().equals(""))
+ {
+ classExpr = null;
+ }
+
+ String ast = pointcut.getAttribute("expr");
+ if (ast != null && ast.trim().equals(""))
+ {
+ ast = null;
+ }
+
+ if (classExpr == null && ast == null)
+ {
+ throw new RuntimeException("A class nor a expr attribute is defined for this <arrayreplacement>");
+ }
+
+ if (classExpr != null && ast != null)
+ {
+ throw new RuntimeException("You cannot define both a class and expr attribute in the same <arrayreplacement>");
+ }
+
+ ArrayReplacement pcut = null;
+ if (classExpr != null)
+ {
+ pcut = new ArrayReplacement(name, classExpr);
+ }
+ else
+ {
+ ASTStart start = new TypeExpressionParser(new StringReader(ast)).Start();
+ pcut = new ArrayReplacement(name, start);
+ }
+ manager.addArrayReplacement(pcut);
+ }
+
public void deployAnnotationIntroduction(Element pointcut) throws Exception
{
manager.addAnnotationIntroduction(loadAnnotationIntroduction(pointcut));
@@ -1075,6 +1120,10 @@
{
deployDeclare(element, tag);
}
+ else if (tag.equals("arrayreplacement"))
+ {
+ deployArrayReplacement(element);
+ }
else
{
throw new IllegalArgumentException("Unknown AOP tag: " + tag);
@@ -1189,6 +1238,10 @@
{
undeployDeclare(element);
}
+ else if (tag.equals("arrayreplacement"))
+ {
+ undeployArrayReplacement(element);
+ }
}
}
}
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/Domain.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/Domain.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/Domain.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -275,6 +275,34 @@
return super.getInterfaceIntroductions();
}
+ public Map getArrayReplacements()
+ {
+ if (inheritsBindings)
+ {
+ HashMap map = new HashMap();
+ if (!parentFirst)
+ {
+ // when child first, parent bindings go in first so that they can be overridden by child.
+ map.putAll(parent.getArrayReplacements());
+ synchronized (arrayReplacements)
+ {
+ map.putAll(arrayReplacements);
+ }
+ return map;
+ }
+ else
+ {
+ synchronized (arrayReplacements)
+ {
+ map.putAll(arrayReplacements);
+ }
+ map.putAll(parent.getArrayReplacements());
+ return map;
+ }
+ }
+ return super.getArrayReplacements();
+ }
+
public Map getTypedefs()
{
if (inheritsBindings)
Deleted: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -1,273 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt 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.
-*/
-package org.jboss.aop;
-
-import java.util.Map;
-
-import org.jboss.aop.classpool.AOPClassPool;
-import org.jboss.aop.instrument.Instrumentor;
-import org.jboss.aop.instrument.InstrumentorFactory;
-
-import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
-import javassist.ByteArrayClassPath;
-import javassist.ClassPool;
-import javassist.CtClass;
-import javassist.NotFoundException;
-
-/**
- * Generated advisors need to load all the superclasses
- * before we load the actual class.
- *
- * @author <a href="stalep at conduct.no">Stale W. Pedersen</a>
- * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
- * @version $Revision:
- */
-public class SuperClassesFirstWeavingStrategy extends WeavingStrategySupport {
-
- private boolean verbose = AspectManager.verbose;
- public static final String AOP_PACKAGE = Advised.class.getPackage().getName();
-
- public byte[] translate(AspectManager manager, String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
- {
- if (isReEntry())
- {
- return null;
- }
- setReEntry();
- manager.transformationStarted = true;
- try
- {
- if (manager.isNonAdvisableClassName(className))
- {
- return null;
- }
-
- AOPClassPool pool = (AOPClassPool) manager.registerClassLoader(loader);
-
- CtClassTransformationInfo info = obtainCtClassInfo(pool, className, classfileBuffer);
- CtClass clazz = instrumentClass(manager, pool, info, true);
- if (clazz != null)
- {
- pool.lockInCache(info.getClazz());
- if (AspectManager.debugClasses)
- {
- info.getClazz().debugWriteFile();
- }
- byte[] rtn = info.getClazz().toBytecode();
- if (AspectManager.getPrune()) info.getClazz().prune();
- return rtn;
- }
- else
- {
- pool.soften(info.getClazz());
- }
- return null;
- }
- catch (Exception ex)
- {
- if (!(ex instanceof NotFoundException))
- {
- if (verbose)
- ex.printStackTrace();
- else
- System.err.println("[error] " + ex.getMessage() +
- ".. Do verbose mode if you want full stack trace.");
-
- }
- throw ex;
- }
- finally
- {
- clearReEntry();
- }
- }
-
- private CtClassTransformationInfo obtainCtClassInfo(AOPClassPool pool, String className, byte[] classfileBuffer) throws NotFoundException
- {
- try
- {
- return new CtClassTransformationInfo(pool.getLocally(className), className);
- }
- catch (NotFoundException e)
- {
- // todo Bill Burke: this scares the shit out of me, but it must be done
- // I think it will screw up hotdeployment at some time. Then again, maybe not ;)
- ByteArrayClassPath cp = new ByteArrayClassPath(className, classfileBuffer);
- pool.insertClassPath(cp);
- return new CtClassTransformationInfo(pool.getLocally(className), className);
- }
- catch(Error e)
- {
- return null;
- }
- }
-
- private CtClass instrumentClass(AspectManager manager, AOPClassPool pool, CtClassTransformationInfo info, boolean isLoadedClass) throws NotFoundException, Exception
- {
- try
- {
- CtClass superClass = info.getClazz().getSuperclass();
- if (superClass != null && !Instrumentor.implementsAdvised(info.getClazz()))
- {
- CtClassTransformationInfo superInfo = new CtClassTransformationInfo(superClass, superClass.getName());
-
- ClassPool superPool = superClass.getClassPool();
- if (superPool instanceof AOPClassPool)
- {
- AspectManager aspectManager = manager;
- if (manager instanceof Domain && superPool != pool)
- {
- //We are in a scoped classloader and the superclass is not
- aspectManager = AspectManager.instance(superPool.getClassLoader());
- }
- instrumentClass(aspectManager, (AOPClassPool)superPool, superInfo, false);
- }
- }
-
- if (manager.isNonAdvisableClassName(info.getClassName()))
- {
- return null;
- }
-
- if (info.getClass().isArray())
- {
- if (verbose) System.out.println("[cannot compile] isArray: " + info.getClassName());
- pool.flushClass(info.getClassName());
- return null;
- }
- if (info.getClazz().isInterface())
- {
- if (verbose) System.out.println("[cannot compile] isInterface: " + info.getClassName());
- //pool.flushClass(info.getClassName());
- info.getClazz().prune();
- return null;
- }
- if (info.getClazz().isFrozen())
- {
- if(isAdvised(pool, info.getClazz()))
- return null;
- if (verbose) System.out.println("[warning] isFrozen: " + info.getClassName() + " " + info.getClazz().getClassPool());
- if (!isLoadedClass)
- {
- info = obtainCtClassInfo(pool, info.getClassName(), null);
- }
- else
- return null;
- //info.getClazz().defrost();
- }
-
- boolean transformed = info.getClazz().isModified();
- if (!transformed)
- {
- ClassAdvisor advisor =
- AdvisorFactory.getClassAdvisor(info.getClazz(), manager);
- Instrumentor instrumentor = InstrumentorFactory.getInstrumentor(
- pool,
- manager,
- manager.dynamicStrategy.getJoinpointClassifier(),
- manager.dynamicStrategy.getDynamicTransformationObserver(info.getClazz()));
-
- if (!Instrumentor.isTransformable(info.getClazz()))
- {
- if (verbose) System.out.println("[cannot compile] implements Untransformable: " + info.getClassName());
- //Flushing the generated invocation classes breaks things further down the line
- //pool.flushClass(info.getClassName());
- return null;
- }
-
- manager.attachMetaData(advisor, info.getClazz(), true);
- manager.applyInterfaceIntroductions(advisor, info.getClazz());
- transformed = instrumentor.transform(info.getClazz(), advisor);
- }
- if (transformed)
- {
- if (!isLoadedClass )
- {
- info.setTransformed(transformed);
- }
- return info.getClazz();
- }
- return null;
- }
- catch(Exception e)
- {
- throw new RuntimeException("Error converting class ", e);
- }
- finally
- {
- }
- }
-
- public boolean isAdvised(ClassPool pool, CtClass clazz) throws NotFoundException
- {
- CtClass[] interfaces = clazz.getInterfaces();
- CtClass advised = pool.get(AOP_PACKAGE + ".Advised");
- for (int i = 0; i < interfaces.length; i++)
- {
- if (interfaces[i].equals(advised)) return true;
- if (interfaces[i].getName().equals(AOP_PACKAGE + ".Advised")) return true;
- }
- return false;
- }
-
-
- private class CtClassTransformationInfo
- {
- boolean transformed;
- CtClass clazz;
- String className;
- private CtClassTransformationInfo(CtClass clazz, String className)
- {
- this.clazz = clazz;
- this.className = className;
- }
-
- private CtClassTransformationInfo(CtClass clazz, String className, boolean transformed)
- {
- this.clazz = clazz;
- this.className = className;
- this.transformed = transformed;
- }
-
- private CtClass getClazz()
- {
- return clazz;
- }
-
- private boolean isTransformed()
- {
- return transformed;
- }
-
- private void setTransformed(boolean transformed)
- {
- this.transformed = transformed;
- }
-
- private String getClassName()
- {
- return className;
- }
- }
-
-
-}
Copied: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java (from rev 59143, projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java)
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/instrument/Instrumentor.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/Instrumentor.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/instrument/Instrumentor.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -35,6 +35,8 @@
import org.jboss.aop.AspectManager;
import org.jboss.aop.ClassAdvisor;
import org.jboss.aop.annotation.compiler.AnnotationInfoCreator;
+import org.jboss.aop.array.ArrayAdvisor;
+import org.jboss.aop.array.ArrayReplacement;
import org.jboss.aop.classpool.AOPClassPool;
import org.jboss.aop.classpool.AOPClassPoolRepository;
import org.jboss.aop.introduction.AnnotationIntroduction;
@@ -662,6 +664,9 @@
instrumentIntroductions(clazz, advisor);
converted = convertReferences(clazz) || converted;
+
+ converted = converted || replaceArrayAccess(clazz, advisor);
+
// need to instrument no matter what so that
// previously declared field and constructor interceptions
// get instrumented within this class.
@@ -940,6 +945,27 @@
}
}
+ private boolean replaceArrayAccess(CtClass clazz, Advisor advisor) throws Exception
+ {
+ boolean shouldReplace = false;
+ Map arrayReplacements = manager.getArrayReplacements();
+ for (Iterator it = arrayReplacements.values().iterator() ; it.hasNext() ; )
+ {
+ ArrayReplacement arrayReplacement = (ArrayReplacement)it.next();
+ if (arrayReplacement.matches(advisor, clazz))
+ {
+ shouldReplace = true;
+ break;
+ }
+ }
+
+ if (shouldReplace)
+ {
+ System.out.println("---> Should replace access for " + clazz.getName());
+ converter.replaceArrayAccess(classPool.get(ArrayAdvisor.class.getName()), "arrayRead", "arrayWrite");
+ }
+ return shouldReplace;
+ }
/**
* Converts all processed classes to make wrapping of the appropriate joinpoints.
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/AOPProxyFactoryParameters.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -24,7 +24,7 @@
import java.lang.reflect.Constructor;
import org.jboss.aop.metadata.SimpleMetaData;
-//import org.jboss.repository.spi.MetaDataContext;
+import org.jboss.metadata.spi.MetaData;
/**
*
@@ -35,9 +35,7 @@
{
private Class proxiedClass;
private Object target;
- //FIXME convert back to MetaDataContext once the mc 2.0 has been released
- //private MetaData metaDataContext;
- private Object metaDataContext;
+ private MetaData metaDataContext;
private Class[] interfaces;
private AOPProxyFactoryMixin[] mixins;
private boolean objectAsSuperClass;
@@ -54,7 +52,7 @@
Object target,
Class[] interfaces,
AOPProxyFactoryMixin[] mixins,
- Object context,
+ MetaData context,
boolean objectAsSuperClass,
SimpleMetaData simpleMetaData,
ContainerCache containerCache,
@@ -81,12 +79,12 @@
this.interfaces = interfaces;
}
- public Object getMetaDataContext()
+ public MetaData getMetaDataContext()
{
return metaDataContext;
}
- public void setMetaDataContext(Object metaDataContext)
+ public void setMetaDataContext(MetaData metaDataContext)
{
this.metaDataContext = metaDataContext;
}
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/ContainerCache.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -29,7 +29,7 @@
import org.jboss.aop.Domain;
import org.jboss.aop.introduction.InterfaceIntroduction;
import org.jboss.aop.metadata.SimpleMetaData;
-//import org.jboss.repository.spi.MetaDataContext;
+import org.jboss.metadata.spi.MetaData;
/**
*
@@ -51,12 +51,10 @@
Class[] interfaces;
AOPProxyFactoryMixin[] mixins;
- //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
- //MetaDataContext metaDataContext;
- Object metaDataContext;
+ MetaData metaDataContext;
SimpleMetaData simpleMetaData;
- private ContainerCache(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, /*MetaDataContext*/ Object metaDataContext, SimpleMetaData simpleMetaData)
+ private ContainerCache(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaDataContext, SimpleMetaData simpleMetaData)
{
this.manager = manager;
this.interfaces = interfaces;
@@ -66,13 +64,13 @@
key = new ContainerProxyCacheKey(proxiedClass, interfaces, mixins, metaDataContext);
}
- public static ContainerCache initialise(AspectManager manager, Class proxiedClass, /*MetaDataContext*/ Object metaDataContext)
+ public static ContainerCache initialise(AspectManager manager, Class proxiedClass, MetaData metaDataContext)
{
return initialise(manager, proxiedClass, null, null, metaDataContext, null);
}
//FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
- public static ContainerCache initialise(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, /*MetaDataContext*/ Object metaDataContext, SimpleMetaData simpleMetaData)
+ public static ContainerCache initialise(AspectManager manager, Class proxiedClass, Class[] interfaces, AOPProxyFactoryMixin[] mixins, MetaData metaDataContext, SimpleMetaData simpleMetaData)
{
ContainerCache factory = new ContainerCache(manager, proxiedClass, interfaces, mixins, metaDataContext, simpleMetaData);
synchronized (mapLock)
Modified: projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2006-12-19 11:33:03 UTC (rev 59138)
+++ projects/aop/branches/arrays/aop/src/main/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2006-12-21 11:41:51 UTC (rev 59187)
@@ -38,23 +38,6 @@
{
public Object createAdvisedProxy(AOPProxyFactoryParameters params)
{
-// return createAdvisedProxy(
-// params.isObjectAsSuperClass(),
-// params.getProxiedClass(),
-// params.getInterfaces(),
-// params.getMixins(),
-// params.getSimpleMetaData(),
-// params.getTarget(),
-// params.getMetaDataContext(),
-// params.getContainerCache(),
-// params.getCtor(),
-// params.getCtorArguments());
-// }
-//
-// //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-// private Object createAdvisedProxy(boolean objectAsSuper, Class proxiedClass, Class[] interfaces,
-// AOPProxyFactoryMixin[] mixins, SimpleMetaData simpleMetaData, Object target, /*MetaDataContext*/Object metaDataContext, ContainerCache containerCache, Constructor ctor, Object[] ctorArguments)
-// {
if (params.getTarget() != null)
{
if (params.getProxiedClass() != null)
@@ -74,13 +57,9 @@
params.setProxiedClass(Object.class);
}
-// return getProxy(objectAsSuper, manager, proxiedClass, interfaces, mixins, simpleMetaData, target, metaDataContext, containerCache, ctor, ctorArguments);
return getProxy(params);
}
- //FIXME - make metaDataContext a MetaDataContext once MC 2.0 is released
-// private Object getProxy(boolean objectAsSuper, AspectManager manager, Class proxiedClass,
-// Class[] interfaces, AOPProxyFactoryMixin[] mixins, SimpleMetaData simpleMetaData, Object target, /*MetaDataContext*/ Object metaDataContext, ContainerCache containerCache, Constructor ctor, Object[] ctorArguments)
private Object getProxy(AOPProxyFactoryParameters params)
{
try
More information about the jboss-cvs-commits
mailing list