diff --git a/org.springframework.aop/src/test/java/example/aspects/TwoAdviceAspect.java b/org.springframework.aop/src/test/java/example/aspects/TwoAdviceAspect.java
deleted file mode 100644
index e69d7d99e571e3fb01103dc5acabd54654b50c73..0000000000000000000000000000000000000000
--- a/org.springframework.aop/src/test/java/example/aspects/TwoAdviceAspect.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- *
- */
-package example.aspects;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-
-@Aspect
-public class TwoAdviceAspect {
- private int totalCalls;
-
- @Around("execution(* getAge())")
- public int returnCallCount(ProceedingJoinPoint pjp) throws Exception {
- return totalCalls;
- }
-
- @Before("execution(* setAge(int)) && args(newAge)")
- public void countSet(int newAge) throws Exception {
- ++totalCalls;
- }
-}
\ No newline at end of file
diff --git a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java
index b753025a4b408b8ec4cb81dd4949373494fde509..e895c12b16418919b97e823057a3bcc6a8c9ba54 100644
--- a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java
+++ b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java
@@ -49,8 +49,9 @@ import org.springframework.core.OrderComparator;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
-import example.aspects.PerTargetAspect;
-import example.aspects.TwoAdviceAspect;
+import test.aspect.PerTargetAspect;
+import test.aspect.TwoAdviceAspect;
+
/**
* Abstract tests for AspectJAdvisorFactory.
diff --git a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectJPointcutAdvisorTests.java b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectJPointcutAdvisorTests.java
index d3589246970a334e83d401af10f90b5ad4473b1c..247ea0cfe216f0099f3b7eb13393540e2a4b4f35 100644
--- a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectJPointcutAdvisorTests.java
+++ b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectJPointcutAdvisorTests.java
@@ -25,7 +25,8 @@ import org.springframework.aop.aspectj.AspectJExpressionPointcutTests;
import org.springframework.aop.framework.AopConfigException;
import org.springframework.beans.TestBean;
-import example.aspects.PerTargetAspect;
+import test.aspect.PerTargetAspect;
+
/**
* @author Rod Johnson
diff --git a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectMetadataTests.java b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectMetadataTests.java
index 91aef9d222909791dc907e623a37014c24c8c99c..352cbb70ddafa0f3aa23bd6f9ab183d9e9348760 100644
--- a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectMetadataTests.java
+++ b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectMetadataTests.java
@@ -23,7 +23,8 @@ import org.junit.Test;
import org.springframework.aop.Pointcut;
import org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactoryTests.ExceptionAspect;
-import example.aspects.PerTargetAspect;
+import test.aspect.PerTargetAspect;
+
/**
* @since 2.0
diff --git a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectProxyFactoryTests.java b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectProxyFactoryTests.java
index 15fe6701dcc067d91aba76baca08c22935528f26..d91815858c846c32cd71cd1e385a9555c48bc36e 100644
--- a/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectProxyFactoryTests.java
+++ b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/AspectProxyFactoryTests.java
@@ -21,7 +21,8 @@ import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.aop.aspectj.autoproxy.MultiplyReturnValue;
-import example.aspects.PerThisAspect;
+import test.aspect.PerThisAspect;
+
/**
* @author Rob Harrop
diff --git a/org.springframework.aop/src/test/java/example/aspects/PerTargetAspect.java b/org.springframework.aop/src/test/java/test/aspect/PerTargetAspect.java
similarity index 96%
rename from org.springframework.aop/src/test/java/example/aspects/PerTargetAspect.java
rename to org.springframework.aop/src/test/java/test/aspect/PerTargetAspect.java
index 4244c3894933e98a33c5f8aa99c68dfb6d268ca4..79977f0cb1dd237f4d85769de42799225ebc1148 100644
--- a/org.springframework.aop/src/test/java/example/aspects/PerTargetAspect.java
+++ b/org.springframework.aop/src/test/java/test/aspect/PerTargetAspect.java
@@ -1,7 +1,7 @@
/**
*
*/
-package example.aspects;
+package test.aspect;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
diff --git a/org.springframework.aop/src/test/java/example/aspects/PerThisAspect.java b/org.springframework.aop/src/test/java/test/aspect/PerThisAspect.java
similarity index 97%
rename from org.springframework.aop/src/test/java/example/aspects/PerThisAspect.java
rename to org.springframework.aop/src/test/java/test/aspect/PerThisAspect.java
index 9f95aaa018bd77e5b6c068655cce9d7247ee5072..2d7438858d75189566718fd3def662ce69c60aad 100644
--- a/org.springframework.aop/src/test/java/example/aspects/PerThisAspect.java
+++ b/org.springframework.aop/src/test/java/test/aspect/PerThisAspect.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package example.aspects;
+package test.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
diff --git a/org.springframework.aop/src/test/java/test/aspect/TwoAdviceAspect.java b/org.springframework.aop/src/test/java/test/aspect/TwoAdviceAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..85eb6b7557d75e269635f7377cd953a8bc9fd73a
--- /dev/null
+++ b/org.springframework.aop/src/test/java/test/aspect/TwoAdviceAspect.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2002-2008 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.aspect;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+
+@Aspect
+public class TwoAdviceAspect {
+ private int totalCalls;
+
+ @Around("execution(* getAge())")
+ public int returnCallCount(ProceedingJoinPoint pjp) throws Exception {
+ return totalCalls;
+ }
+
+ @Before("execution(* setAge(int)) && args(newAge)")
+ public void countSet(int newAge) throws Exception {
+ ++totalCalls;
+ }
+}
\ No newline at end of file
diff --git a/org.springframework.context/.classpath b/org.springframework.context/.classpath
index 23afd252b2bc609443c1ab6a21f20e7484ab2d90..a97061c5be6b9939b27bbd00cc4e0b6ec841568d 100644
--- a/org.springframework.context/.classpath
+++ b/org.springframework.context/.classpath
@@ -9,6 +9,7 @@
+
diff --git a/org.springframework.context/ivy.xml b/org.springframework.context/ivy.xml
index 2ee60bd24718c5d375485f25451415d45f5cce71..c317db2af833174d95b04c4dc80c269195ff5ad8 100644
--- a/org.springframework.context/ivy.xml
+++ b/org.springframework.context/ivy.xml
@@ -42,6 +42,7 @@
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationPointcutTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectImplementingInterfaceTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorAndLazyInitTargetSourceTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspects.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspects.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspects.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspects.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsPlusAdvisor.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsPlusAdvisor.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsPlusAdvisor.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsPlusAdvisor.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithAbstractBean.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithAbstractBean.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithAbstractBean.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithAbstractBean.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithCGLIB.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithCGLIB.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithCGLIB.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithCGLIB.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithOrdering.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithOrdering.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithOrdering.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-aspectsWithOrdering.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml
similarity index 93%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml
index 05a30cecb4ba7c5a38d6e1719dbbfd464450d17c..e02baf027b8bc9220b9ee935fda67ef529a3faf5 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-pertarget.xml
@@ -5,7 +5,7 @@
-
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml
similarity index 87%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml
index 7ca5faa27f5873871bc7a16e09504527c7218ac4..408c5477395e099e2b7cd40f95aa20f63a4201c0 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-perthis.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-retryAspect.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-retryAspect.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-retryAspect.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-retryAspect.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml
similarity index 87%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml
index 2099c8bb1b1f8e0aa15594b049f0bca678accd4d..a916c5a1e51ff3959518b739cd8112b25714749f 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspect.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml
similarity index 88%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml
index 286dcf3de90a48a91d7d4dd7c0cbac4be58cfcdb..047ef0daafed55beb135b451f620066a79f2d87d 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-twoAdviceAspectPrototype.xml
@@ -5,7 +5,7 @@
-
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesInclude.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesInclude.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesInclude.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesInclude.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesJoinPointAspect.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesJoinPointAspect.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesJoinPointAspect.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests-usesJoinPointAspect.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJAutoProxyCreatorTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAfterThrowingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml
similarity index 88%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml
index e03eb79612a7d10f7cf4c3690f1eea8fa0ed5da1..28898d11fa59262a04c2adc8d619243d1f1ddb86 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests-context.xml
@@ -9,10 +9,6 @@
-
-
-
-
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/AtAspectJAnnotationBindingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java
similarity index 96%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java
index cf76103d3446a5d160314230ed629c0e5d9f0be9..78eede824c6968ae0170dc2f4164d39403c28382 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java
@@ -20,7 +20,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import org.aspectj.lang.ProceedingJoinPoint;
-import org.springframework.transaction.annotation.Transactional;
/**
@@ -71,7 +70,6 @@ interface AnnotatedTestBean {
* @author Adrian Colyer
* @since 2.0
*/
-@Transactional
class AnnotatedTestBeanImpl implements AnnotatedTestBean {
@TestAnnotation("this value")
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-aspectj.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-aspectj.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-aspectj.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-aspectj.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-springAop.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-springAop.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-springAop.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests-springAop.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/benchmark/BenchmarkTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/autoproxy/spr3064/SPR3064Tests.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java
similarity index 98%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java
index 3f00658151e5aa89eeacee368d91cc661e0d8466..8e2d35d9d2ebc5c3028d21c8b7784499857dade6 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/AfterReturningGenericTypeMatchingTests.java
@@ -16,7 +16,7 @@
package org.springframework.aop.aspectj.generic;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Collection;
@@ -26,10 +26,11 @@ import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.junit.Before;
import org.junit.Test;
-import org.springframework.beans.Employee;
import org.springframework.beans.TestBean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
+import test.beans.Employee;
+
/**
* Tests ensuring that after-returning advice for generic parameters bound to
* the advice and the return type follow AspectJ semantics.
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingClassProxyTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericBridgeMethodMatchingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/aspectj/generic/GenericParameterMatchingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-error.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-error.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-error.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-error.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-ok.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-ok.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-ok.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests-ok.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerAdviceTypeTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-error.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-error.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-error.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-error.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-ok.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-ok.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-ok.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests-ok.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerArgNamesTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerProxyTargetClassTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-error.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-error.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-error.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-error.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-ok.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-ok.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-ok.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests-ok.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerReturningTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java
similarity index 98%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java
index 4623a8b7dd9a709bad92235ac117292de3283827..21dd905a33a02bde834da2e825b22c0c41473812 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerTests.java
@@ -31,7 +31,10 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import test.advice.CountingBeforeAdvice;
/**
+ * Unit tests for aop namespace.
+ *
* @author Rob Harrop
+ * @author Chris Beams
*/
public class AopNamespaceHandlerTests {
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-error.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-error.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-error.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-error.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-ok.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-ok.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-ok.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests-ok.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/AopNamespaceHandlerThrowingTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/MethodLocatingFactoryBeanTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/MethodLocatingFactoryBeanTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/MethodLocatingFactoryBeanTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/MethodLocatingFactoryBeanTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml
similarity index 90%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml
index a46f0bec3b2815bc738e45acc9a9e366973fe7a3..0ca26dd953443a3410cecd04a794fb124533412c 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/config/PrototypeProxyTests-context.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/PrototypeProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/config/PrototypeProxyTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/PrototypeProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/config/PrototypeProxyTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java
similarity index 98%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java
index d78f8bd831d5732ae72042b005a0d2b5bf868b97..56ef3185d533bbc3b8db26c6524db987c6b53477 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java
@@ -19,6 +19,7 @@ package org.springframework.aop.framework;
import static org.junit.Assert.*;
import java.io.FileNotFoundException;
+import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.UndeclaredThrowableException;
import java.sql.SQLException;
@@ -28,7 +29,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import javax.servlet.ServletException;
import javax.transaction.TransactionRequiredException;
import junit.framework.TestCase;
@@ -62,8 +62,6 @@ import org.springframework.beans.ITestBean;
import org.springframework.beans.Person;
import org.springframework.beans.SerializablePerson;
import org.springframework.beans.TestBean;
-import org.springframework.dao.DataAccessException;
-import org.springframework.jdbc.CannotGetJdbcConnectionException;
import org.springframework.util.SerializationTestUtils;
import org.springframework.util.StopWatch;
@@ -241,9 +239,9 @@ public abstract class AbstractAopProxyTests {
p.echo(null);
assertEquals(0, cta.getCalls());
try {
- p.echo(new ServletException());
+ p.echo(new IOException());
}
- catch (ServletException ex) {
+ catch (IOException ex) {
}
assertEquals(1, cta.getCalls());
@@ -276,9 +274,9 @@ public abstract class AbstractAopProxyTests {
p2.echo(null);
assertEquals(1, cta.getCalls());
try {
- p2.echo(new ServletException());
+ p2.echo(new IOException());
}
- catch (ServletException ex) {
+ catch (IOException ex) {
}
assertEquals(2, cta.getCalls());
@@ -1424,15 +1422,15 @@ public abstract class AbstractAopProxyTests {
assertEquals(26, proxied.getAge());
assertEquals(4, cca.getCalls());
try {
- proxied.exceptional(new CannotGetJdbcConnectionException("foo", (SQLException)null));
+ proxied.exceptional(new SpecializedUncheckedException("foo", (SQLException)null));
fail("Should have thrown CannotGetJdbcConnectionException");
}
- catch (CannotGetJdbcConnectionException ex) {
+ catch (SpecializedUncheckedException ex) {
// expected
}
assertEquals(6, cca.getCalls());
}
-
+
@Test
public void testBeforeAdviceThrowsException() {
final RuntimeException rex = new RuntimeException();
@@ -1933,12 +1931,12 @@ public abstract class AbstractAopProxyTests {
count(m);
}
- public void afterThrowing(ServletException sex) throws Throwable {
- count(ServletException.class.getName());
+ public void afterThrowing(IOException ex) throws Throwable {
+ count(IOException.class.getName());
}
- public void afterThrowing(DataAccessException ex) throws Throwable {
- count(DataAccessException.class.getName());
+ public void afterThrowing(UncheckedException ex) throws Throwable {
+ count(UncheckedException.class.getName());
}
}
@@ -1947,16 +1945,31 @@ public abstract class AbstractAopProxyTests {
@SuppressWarnings("serial")
public static class CountingThrowsAdvice extends MethodCounter implements ThrowsAdvice {
- public void afterThrowing(ServletException sex) throws Throwable {
- count(ServletException.class.getName());
+ public void afterThrowing(IOException ex) throws Throwable {
+ count(IOException.class.getName());
}
- public void afterThrowing(DataAccessException ex) throws Throwable {
- count(DataAccessException.class.getName());
+ public void afterThrowing(UncheckedException ex) throws Throwable {
+ count(UncheckedException.class.getName());
}
}
+
+ @SuppressWarnings("serial")
+ static class UncheckedException extends RuntimeException {
+
+ }
+
+
+ @SuppressWarnings("serial")
+ static class SpecializedUncheckedException extends UncheckedException {
+
+ public SpecializedUncheckedException(String string, SQLException exception) {
+ }
+
+ }
+
static class MockTargetSource implements TargetSource {
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/CglibProxyTests-with-dependency-checking.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/CglibProxyTests-with-dependency-checking.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/CglibProxyTests-with-dependency-checking.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/CglibProxyTests-with-dependency-checking.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/CglibProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/CglibProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-autowiring.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-autowiring.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-autowiring.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-autowiring.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-double-targetsource.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-double-targetsource.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-double-targetsource.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-double-targetsource.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-frozen.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-frozen.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-frozen.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-frozen.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-inner-bean-target.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-inner-bean-target.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-inner-bean-target.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-inner-bean-target.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-invalid.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-invalid.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-invalid.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-invalid.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-notlast-targetsource.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-notlast-targetsource.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-notlast-targetsource.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-notlast-targetsource.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml
similarity index 80%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml
index c69dcc53843cc827952c48cb196d860093d99f8a..f437df5edf07f48d0a099899e86b636971c563c6 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-prototype.xml
@@ -7,31 +7,31 @@
-
+
10
-
+
10
- debugInterceptor,test
+ debugInterceptor,test
-
+
debugInterceptor,prototypeTarget
false
+ class="org.springframework.aop.framework.ProxyFactoryBean">
debugInterceptor,prototypeTarget
false
true
-
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-serialization.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-serialization.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-serialization.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-serialization.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-targetsource.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-targetsource.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-targetsource.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-targetsource.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-throws-advice.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-throws-advice.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-throws-advice.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests-throws-advice.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java
similarity index 99%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java
index 73784bf947e6d0f308ebe0e8fd3e4ac6a1d67017..45d575bb4aeedd303397c7aa2688b7a8a5c9aab8 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java
@@ -62,7 +62,7 @@ import test.mixin.Lockable;
import test.mixin.LockedException;
import test.util.TimeStamped;
-import common.beans.core.SideEffectBean;
+import test.beans.SideEffectBean;
/**
* @since 13.03.2003
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/_TestTypes.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/_TestTypes.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/_TestTypes.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/_TestTypes.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-with-bpp.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-with-bpp.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-with-bpp.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-with-bpp.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-without-bpp.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-without-bpp.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-without-bpp.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests-without-bpp.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/adapter/AdvisorAdapterRegistrationTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-common-interceptors.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-common-interceptors.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-common-interceptors.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-common-interceptors.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-custom-targetsource.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-custom-targetsource.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-custom-targetsource.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-custom-targetsource.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-optimized.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-optimized.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-optimized.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-optimized.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-quick-targetsource.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-quick-targetsource.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-quick-targetsource.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-quick-targetsource.xml
diff --git a/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java
new file mode 100644
index 0000000000000000000000000000000000000000..675c2c79af6d291023ebb93018c4584b0d44f559
--- /dev/null
+++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright 2002-2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.aop.framework.autoproxy;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.springframework.aop.framework.Advised;
+import org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator;
+import org.springframework.aop.support.AopUtils;
+import org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource;
+import org.springframework.aop.target.CommonsPoolTargetSource;
+import org.springframework.aop.target.LazyInitTargetSource;
+import org.springframework.aop.target.PrototypeTargetSource;
+import org.springframework.aop.target.ThreadLocalTargetSource;
+import org.springframework.beans.ITestBean;
+import org.springframework.beans.TestBean;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import test.advice.CountingBeforeAdvice;
+import test.interceptor.NopInterceptor;
+import test.mixin.Lockable;
+
+/**
+ * Tests for auto proxy creation by advisor recognition.
+ *
+ * @see org.springframework.aop.framework.autoproxy.AdvisorAutoProxyCreatorIntegrationTests;
+ *
+ * @author Rod Johnson
+ * @author Dave Syer
+ * @author Chris Beams
+ */
+public final class AdvisorAutoProxyCreatorTests {
+
+ private static final Class> CLASS = AdvisorAutoProxyCreatorTests.class;
+ private static final String CLASSNAME = CLASS.getSimpleName();
+
+ private static final String DEFAULT_CONTEXT = CLASSNAME + "-context.xml";
+ private static final String COMMON_INTERCEPTORS_CONTEXT = CLASSNAME + "-common-interceptors.xml";
+ private static final String CUSTOM_TARGETSOURCE_CONTEXT = CLASSNAME + "-custom-targetsource.xml";
+ private static final String QUICK_TARGETSOURCE_CONTEXT = CLASSNAME + "-quick-targetsource.xml";
+ private static final String OPTIMIZED_CONTEXT = CLASSNAME + "-optimized.xml";
+
+ private static final String ADVISOR_APC_BEAN_NAME = "aapc";
+ private static final String TXMANAGER_BEAN_NAME = "txManager";
+
+ /**
+ * Return a bean factory with attributes and EnterpriseServices configured.
+ */
+ protected BeanFactory getBeanFactory() throws IOException {
+ return new ClassPathXmlApplicationContext(DEFAULT_CONTEXT, CLASS);
+ }
+
+ /**
+ * Check that we can provide a common interceptor that will
+ * appear in the chain before "specific" interceptors,
+ * which are sourced from matching advisors
+ */
+ @Test
+ public void testCommonInterceptorAndAdvisor() throws Exception {
+ BeanFactory bf = new ClassPathXmlApplicationContext(COMMON_INTERCEPTORS_CONTEXT, CLASS);
+ ITestBean test1 = (ITestBean) bf.getBean("test1");
+ assertTrue(AopUtils.isAopProxy(test1));
+
+ Lockable lockable1 = (Lockable) test1;
+ NopInterceptor nop = (NopInterceptor) bf.getBean("nopInterceptor");
+ assertEquals(0, nop.getCount());
+
+ ITestBean test2 = (ITestBean) bf.getBean("test2");
+ Lockable lockable2 = (Lockable) test2;
+
+ // Locking should be independent; nop is shared
+ assertFalse(lockable1.locked());
+ assertFalse(lockable2.locked());
+ // equals 2 calls on shared nop, because it's first
+ // and sees calls against the Lockable interface introduced
+ // by the specific advisor
+ assertEquals(2, nop.getCount());
+ lockable1.lock();
+ assertTrue(lockable1.locked());
+ assertFalse(lockable2.locked());
+ assertEquals(5, nop.getCount());
+ }
+
+ /**
+ * We have custom TargetSourceCreators but there's no match, and
+ * hence no proxying, for this bean
+ */
+ @Test
+ public void testCustomTargetSourceNoMatch() throws Exception {
+ BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
+ ITestBean test = (ITestBean) bf.getBean("test");
+ assertFalse(AopUtils.isAopProxy(test));
+ assertEquals("Rod", test.getName());
+ assertEquals("Kerry", test.getSpouse().getName());
+ }
+
+ @Test
+ public void testCustomPrototypeTargetSource() throws Exception {
+ CountingTestBean.count = 0;
+ BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
+ ITestBean test = (ITestBean) bf.getBean("prototypeTest");
+ assertTrue(AopUtils.isAopProxy(test));
+ Advised advised = (Advised) test;
+ assertTrue(advised.getTargetSource() instanceof PrototypeTargetSource);
+ assertEquals("Rod", test.getName());
+ // Check that references survived prototype creation
+ assertEquals("Kerry", test.getSpouse().getName());
+ assertEquals("Only 2 CountingTestBeans instantiated", 2, CountingTestBean.count);
+ CountingTestBean.count = 0;
+ }
+
+ @Test
+ public void testLazyInitTargetSource() throws Exception {
+ CountingTestBean.count = 0;
+ BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
+ ITestBean test = (ITestBean) bf.getBean("lazyInitTest");
+ assertTrue(AopUtils.isAopProxy(test));
+ Advised advised = (Advised) test;
+ assertTrue(advised.getTargetSource() instanceof LazyInitTargetSource);
+ assertEquals("No CountingTestBean instantiated yet", 0, CountingTestBean.count);
+ assertEquals("Rod", test.getName());
+ assertEquals("Kerry", test.getSpouse().getName());
+ assertEquals("Only 1 CountingTestBean instantiated", 1, CountingTestBean.count);
+ CountingTestBean.count = 0;
+ }
+
+ @Test
+ public void testQuickTargetSourceCreator() throws Exception {
+ ClassPathXmlApplicationContext bf =
+ new ClassPathXmlApplicationContext(QUICK_TARGETSOURCE_CONTEXT, CLASS);
+ ITestBean test = (ITestBean) bf.getBean("test");
+ assertFalse(AopUtils.isAopProxy(test));
+ assertEquals("Rod", test.getName());
+ // Check that references survived pooling
+ assertEquals("Kerry", test.getSpouse().getName());
+
+ // Now test the pooled one
+ test = (ITestBean) bf.getBean(":test");
+ assertTrue(AopUtils.isAopProxy(test));
+ Advised advised = (Advised) test;
+ assertTrue(advised.getTargetSource() instanceof CommonsPoolTargetSource);
+ assertEquals("Rod", test.getName());
+ // Check that references survived pooling
+ assertEquals("Kerry", test.getSpouse().getName());
+
+ // Now test the ThreadLocal one
+ test = (ITestBean) bf.getBean("%test");
+ assertTrue(AopUtils.isAopProxy(test));
+ advised = (Advised) test;
+ assertTrue(advised.getTargetSource() instanceof ThreadLocalTargetSource);
+ assertEquals("Rod", test.getName());
+ // Check that references survived pooling
+ assertEquals("Kerry", test.getSpouse().getName());
+
+ // Now test the Prototype TargetSource
+ test = (ITestBean) bf.getBean("!test");
+ assertTrue(AopUtils.isAopProxy(test));
+ advised = (Advised) test;
+ assertTrue(advised.getTargetSource() instanceof PrototypeTargetSource);
+ assertEquals("Rod", test.getName());
+ // Check that references survived pooling
+ assertEquals("Kerry", test.getSpouse().getName());
+
+
+ ITestBean test2 = (ITestBean) bf.getBean("!test");
+ assertFalse("Prototypes cannot be the same object", test == test2);
+ assertEquals("Rod", test2.getName());
+ assertEquals("Kerry", test2.getSpouse().getName());
+ bf.close();
+ }
+
+ @Test
+ public void testWithOptimizedProxy() throws Exception {
+ BeanFactory beanFactory = new ClassPathXmlApplicationContext(OPTIMIZED_CONTEXT, CLASS);
+
+ ITestBean testBean = (ITestBean) beanFactory.getBean("optimizedTestBean");
+ assertTrue(AopUtils.isAopProxy(testBean));
+
+ CountingBeforeAdvice beforeAdvice = (CountingBeforeAdvice) beanFactory.getBean("countingAdvice");
+
+ testBean.setAge(23);
+ testBean.getAge();
+
+ assertEquals("Incorrect number of calls to proxy", 2, beforeAdvice.getCalls());
+ }
+
+}
+
+
+class CountingTestBean extends TestBean {
+
+ public static int count = 0;
+
+ public CountingTestBean() {
+ count++;
+ }
+
+}
+
+
+class SelectivePrototypeTargetSourceCreator extends AbstractBeanFactoryBasedTargetSourceCreator {
+
+ protected AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(
+ Class> beanClass, String beanName) {
+ if (!beanName.startsWith("prototype")) {
+ return null;
+ }
+ return new PrototypeTargetSource();
+ }
+
+}
+
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AutoProxyCreatorTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AutoProxyCreatorTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AutoProxyCreatorTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/AutoProxyCreatorTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java
similarity index 73%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java
index bc20df80281c3e74c51d7a60ec18511e2729ca2e..77bbaf3e3c2abdf652298e47f9e01e635aefe01f 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorInitTests.java
@@ -16,9 +16,12 @@
package org.springframework.aop.framework.autoproxy;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+
+import java.lang.reflect.Method;
import org.junit.Test;
+import org.springframework.aop.MethodBeforeAdvice;
import org.springframework.beans.TestBean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -40,3 +43,20 @@ public final class BeanNameAutoProxyCreatorInitTests {
}
}
+
+
+class NullChecker implements MethodBeforeAdvice {
+
+ public void before(Method method, Object[] args, Object target) throws Throwable {
+ check(args);
+ }
+
+ private void check(Object[] args) {
+ for (int i = 0; i < args.length; i++) {
+ if (args[i] == null) {
+ throw new IllegalArgumentException("Null argument at position " + i);
+ }
+ }
+ }
+
+}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/framework/autoproxy/BeanNameAutoProxyCreatorTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-list.xml b/org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-list.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-list.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-list.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-map.xml b/org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-map.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-map.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-map.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-override.xml b/org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-override.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-override.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-override.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-testbean.xml b/org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-testbean.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests-testbean.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests-testbean.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests.java b/org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/scope/ScopedProxyTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/scope/ScopedProxyTests.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml b/org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml
similarity index 97%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml
rename to org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml
index 93cdcd8924013ad4e329f508ec898fc264f95f3f..9d6098ec5065e0727a5d5fb58f3eccd1217f665f 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml
+++ b/org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests-context.xml
@@ -3,7 +3,7 @@
-
+
10
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java b/org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java
similarity index 98%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java
rename to org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java
index 84b701e107e6c8cf8ed14331f142dbbd7443d90a..1cada3e6d8bacf100c763e1e0ed289ef696d54ff 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/aop/target/CommonsPoolTargetSourceTests.java
@@ -32,7 +32,7 @@ import org.springframework.context.support.StaticApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.util.SerializationTestUtils;
-import common.beans.core.SideEffectBean;
+import test.beans.SideEffectBean;
/**
* Tests for pooling invoker interceptor.
@@ -99,7 +99,7 @@ public class CommonsPoolTargetSourceTests {
pooled.doWork();
// assertEquals("No objects active", 0, conf.getActive());
assertEquals("Correct target source", 25, conf.getMaxSize());
-// assertTrue("Some free", conf.getFree() > 0);
+ // assertTrue("Some free", conf.getFree() > 0);
//assertEquals(2, conf.getInvocations());
assertEquals(25, conf.getMaxSize());
}
diff --git a/org.springframework.context/src/test/java/org/springframework/jmx/export/MBeanExporterTests.java b/org.springframework.context/src/test/java/org/springframework/jmx/export/MBeanExporterTests.java
index 33e80ae8c18454151a9849ef1c846325b10b195c..9e8b508ca161836f96578c4c93e6be8eca8c060a 100644
--- a/org.springframework.context/src/test/java/org/springframework/jmx/export/MBeanExporterTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/jmx/export/MBeanExporterTests.java
@@ -21,6 +21,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import javax.management.Attribute;
import javax.management.InstanceNotFoundException;
import javax.management.JMException;
@@ -34,7 +35,6 @@ import javax.management.modelmbean.ModelMBeanInfo;
import org.junit.Ignore;
import org.springframework.aop.framework.ProxyFactory;
-import org.springframework.aop.interceptor.NopInterceptor;
import org.springframework.beans.TestBean;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
@@ -49,15 +49,18 @@ import org.springframework.jmx.export.assembler.SimpleReflectiveMBeanInfoAssembl
import org.springframework.jmx.export.naming.SelfNaming;
import org.springframework.jmx.support.ObjectNameManager;
+import test.interceptor.NopInterceptor;
+
/**
- * Integration tests for the MBeanExporter class.
+ * Integration tests for the {@link MBeanExporter} class.
*
* @author Rob Harrop
* @author Juergen Hoeller
* @author Rick Evans
* @author Mark Fisher
+ * @author Chris Beams
*/
-public class MBeanExporterTests extends AbstractMBeanServerTests {
+public final class MBeanExporterTests extends AbstractMBeanServerTests {
private static final String OBJECT_NAME = "spring:test=jmxMBeanAdaptor";
diff --git a/org.springframework.context/src/test/java/org/springframework/jmx/export/assembler/AbstractMetadataAssemblerTests.java b/org.springframework.context/src/test/java/org/springframework/jmx/export/assembler/AbstractMetadataAssemblerTests.java
index daa055567ceddf09149673d8a63b108ba5c592eb..4e14013c938c2d172a085607584889ff58f82c37 100644
--- a/org.springframework.context/src/test/java/org/springframework/jmx/export/assembler/AbstractMetadataAssemblerTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/jmx/export/assembler/AbstractMetadataAssemblerTests.java
@@ -27,15 +27,17 @@ import javax.management.modelmbean.ModelMBeanInfo;
import javax.management.modelmbean.ModelMBeanOperationInfo;
import org.springframework.aop.framework.ProxyFactory;
-import org.springframework.aop.interceptor.NopInterceptor;
import org.springframework.jmx.IJmxTestBean;
import org.springframework.jmx.JmxTestBean;
import org.springframework.jmx.export.MBeanExporter;
import org.springframework.jmx.export.metadata.JmxAttributeSource;
import org.springframework.jmx.support.ObjectNameManager;
+import test.interceptor.NopInterceptor;
+
/**
* @author Rob Harrop
+ * @author Chris Beams
*/
public abstract class AbstractMetadataAssemblerTests extends AbstractJmxAssemblerTests {
diff --git a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-beanNameAutoProxyCreator.xml
similarity index 90%
rename from org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml
rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-beanNameAutoProxyCreator.xml
index 39aab62b4660f3d65fbc3d6f85d1641883b78fea..a8afa2447f8f8e5135bc3efe6c64bdab6475626c 100644
--- a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml
+++ b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-beanNameAutoProxyCreator.xml
@@ -16,6 +16,6 @@
-
+
diff --git a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-factoryBean.xml
similarity index 90%
rename from org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml
rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-factoryBean.xml
index fffce34d77f290c356f3c3b597abc32c07694d34..3744ad4ea62afb157749697a4bb21e9c91f41e83 100644
--- a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml
+++ b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests-factoryBean.xml
@@ -16,6 +16,6 @@
-
+
diff --git a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java
index d2ad09952dc5ef1e005d9617a71d42a6a0515320..8cdeb45aa9ae435e63904934317b9179456342ce 100644
--- a/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java
+++ b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java
@@ -16,43 +16,53 @@
package org.springframework.scripting.jruby;
-import junit.framework.TestCase;
+import static org.junit.Assert.*;
+import org.junit.Test;
import org.springframework.aop.framework.Advised;
-import org.springframework.aop.framework.CountingBeforeAdvice;
import org.springframework.aop.support.AopUtils;
-import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scripting.Messenger;
+import test.advice.CountingBeforeAdvice;
+
/**
* @author Rob Harrop
+ * @author Chris Beams
*/
-public class AdvisedJRubyScriptFactoryTests extends TestCase {
+public final class AdvisedJRubyScriptFactoryTests {
+
+ private static final Class> CLASS = AdvisedJRubyScriptFactoryTests.class;
+ private static final String CLASSNAME = CLASS.getSimpleName();
+
+ private static final String FACTORYBEAN_CONTEXT = CLASSNAME + "-factoryBean.xml";
+ private static final String APC_CONTEXT = CLASSNAME + "-beanNameAutoProxyCreator.xml";
- public void testAdviseWithProxyFactoryBean() throws Exception {
- ApplicationContext context =
- new ClassPathXmlApplicationContext("advisedByProxyFactoryBean.xml", getClass());
+ @Test
+ public void testAdviseWithProxyFactoryBean() {
+ ClassPathXmlApplicationContext ctx =
+ new ClassPathXmlApplicationContext(FACTORYBEAN_CONTEXT, CLASS);
- Messenger bean = (Messenger) context.getBean("messenger");
+ Messenger bean = (Messenger) ctx.getBean("messenger");
assertTrue("Bean is not a proxy", AopUtils.isAopProxy(bean));
assertTrue("Bean is not an Advised object", bean instanceof Advised);
- CountingBeforeAdvice advice = (CountingBeforeAdvice) context.getBean("advice");
+ CountingBeforeAdvice advice = (CountingBeforeAdvice) ctx.getBean("advice");
assertEquals(0, advice.getCalls());
bean.getMessage();
assertEquals(1, advice.getCalls());
}
- public void testAdviseWithBeanNameAutoProxyCreator() throws Exception {
- ApplicationContext context =
- new ClassPathXmlApplicationContext("advisedByBeanNameAutoProxyCreator.xml", getClass());
+ @Test
+ public void testAdviseWithBeanNameAutoProxyCreator() {
+ ClassPathXmlApplicationContext ctx =
+ new ClassPathXmlApplicationContext(APC_CONTEXT, CLASS);
- Messenger bean = (Messenger) context.getBean("messenger");
+ Messenger bean = (Messenger) ctx.getBean("messenger");
assertTrue("Bean is not a proxy", AopUtils.isAopProxy(bean));
assertTrue("Bean is not an Advised object", bean instanceof Advised);
- CountingBeforeAdvice advice = (CountingBeforeAdvice) context.getBean("advice");
+ CountingBeforeAdvice advice = (CountingBeforeAdvice) ctx.getBean("advice");
assertEquals(0, advice.getCalls());
bean.getMessage();
assertEquals(1, advice.getCalls());
diff --git a/org.springframework.context/src/test/java/test/advice/CountingAfterReturningAdvice.java b/org.springframework.context/src/test/java/test/advice/CountingAfterReturningAdvice.java
new file mode 100644
index 0000000000000000000000000000000000000000..12010bee5caafab47c5ade7248770c1d42fe76c5
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/advice/CountingAfterReturningAdvice.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2002-2005 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.advice;
+
+import java.lang.reflect.Method;
+
+import org.springframework.aop.AfterReturningAdvice;
+
+/**
+ * Simple before advice example that we can use for counting checks.
+ *
+ * @author Rod Johnson
+ */
+@SuppressWarnings("serial")
+public class CountingAfterReturningAdvice extends MethodCounter implements AfterReturningAdvice {
+
+ public void afterReturning(Object o, Method m, Object[] args, Object target) throws Throwable {
+ count(m);
+ }
+
+}
\ No newline at end of file
diff --git a/org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java b/org.springframework.context/src/test/java/test/advice/CountingBeforeAdvice.java
similarity index 89%
rename from org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java
rename to org.springframework.context/src/test/java/test/advice/CountingBeforeAdvice.java
index 3f391b2c68c5141ba01d843920b7abfd1156b270..cade9a18321318c63b61d630fbbed6a9fba1b7ea 100644
--- a/org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java
+++ b/org.springframework.context/src/test/java/test/advice/CountingBeforeAdvice.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.aop.framework;
+package test.advice;
import java.lang.reflect.Method;
@@ -25,10 +25,11 @@ import org.springframework.aop.MethodBeforeAdvice;
*
* @author Rod Johnson
*/
+@SuppressWarnings("serial")
public class CountingBeforeAdvice extends MethodCounter implements MethodBeforeAdvice {
public void before(Method m, Object[] args, Object target) throws Throwable {
count(m);
}
-}
\ No newline at end of file
+}
diff --git a/org.springframework.context/src/test/java/org/springframework/aop/framework/MethodCounter.java b/org.springframework.context/src/test/java/test/advice/MethodCounter.java
similarity index 82%
rename from org.springframework.context/src/test/java/org/springframework/aop/framework/MethodCounter.java
rename to org.springframework.context/src/test/java/test/advice/MethodCounter.java
index d3030ffe8e09aa981bf276c90c591218cc6fadcb..c7f660a511a2bf50df1b40e1f821d12526814bb0 100644
--- a/org.springframework.context/src/test/java/org/springframework/aop/framework/MethodCounter.java
+++ b/org.springframework.context/src/test/java/test/advice/MethodCounter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,21 +14,23 @@
* limitations under the License.
*/
-package org.springframework.aop.framework;
+package test.advice;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.HashMap;
/**
- * Useful abstract superclass for counting advices etc.
+ * Abstract superclass for counting advices etc.
*
* @author Rod Johnson
+ * @author Chris Beams
*/
+@SuppressWarnings("serial")
public class MethodCounter implements Serializable {
/** Method name --> count, does not understand overloading */
- private HashMap map = new HashMap();
+ private HashMap map = new HashMap();
private int allCount;
@@ -37,14 +39,14 @@ public class MethodCounter implements Serializable {
}
protected void count(String methodName) {
- Integer i = (Integer) map.get(methodName);
+ Integer i = map.get(methodName);
i = (i != null) ? new Integer(i.intValue() + 1) : new Integer(1);
map.put(methodName, i);
++allCount;
}
public int getCalls(String methodName) {
- Integer i = (Integer) map.get(methodName);
+ Integer i = map.get(methodName);
return (i != null ? i.intValue() : 0);
}
diff --git a/org.springframework.testsuite/src/test/java/test/advice/MyThrowsHandler.java b/org.springframework.context/src/test/java/test/advice/MyThrowsHandler.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/advice/MyThrowsHandler.java
rename to org.springframework.context/src/test/java/test/advice/MyThrowsHandler.java
diff --git a/org.springframework.testsuite/src/test/java/test/advice/TimestampIntroductionAdvisor.java b/org.springframework.context/src/test/java/test/advice/TimestampIntroductionAdvisor.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/advice/TimestampIntroductionAdvisor.java
rename to org.springframework.context/src/test/java/test/advice/TimestampIntroductionAdvisor.java
diff --git a/org.springframework.context/src/test/java/test/aspect/PerTargetAspect.java b/org.springframework.context/src/test/java/test/aspect/PerTargetAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..79977f0cb1dd237f4d85769de42799225ebc1148
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/aspect/PerTargetAspect.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package test.aspect;
+
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.springframework.core.Ordered;
+
+@Aspect("pertarget(execution(* *.getSpouse()))")
+public class PerTargetAspect implements Ordered {
+
+ public int count;
+
+ private int order = Ordered.LOWEST_PRECEDENCE;
+
+ @Around("execution(int *.getAge())")
+ public int returnCountAsAge() {
+ return count++;
+ }
+
+ @Before("execution(void *.set*(int))")
+ public void countSetter() {
+ ++count;
+ }
+
+ public int getOrder() {
+ return this.order;
+ }
+
+ public void setOrder(int order) {
+ this.order = order;
+ }
+}
\ No newline at end of file
diff --git a/org.springframework.context/src/test/java/test/aspect/PerThisAspect.java b/org.springframework.context/src/test/java/test/aspect/PerThisAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d7438858d75189566718fd3def662ce69c60aad
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/aspect/PerThisAspect.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2002-2005 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.aspect;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+@Aspect("perthis(execution(* getAge()))")
+public class PerThisAspect {
+
+ private int invocations = 0;
+
+ public int getInvocations() {
+ return this.invocations;
+ }
+
+ @Around("execution(* getAge())")
+ public int changeAge(ProceedingJoinPoint pjp) throws Throwable {
+ return invocations++;
+ }
+
+}
diff --git a/org.springframework.context/src/test/java/test/aspect/TwoAdviceAspect.java b/org.springframework.context/src/test/java/test/aspect/TwoAdviceAspect.java
new file mode 100644
index 0000000000000000000000000000000000000000..85eb6b7557d75e269635f7377cd953a8bc9fd73a
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/aspect/TwoAdviceAspect.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2002-2008 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.aspect;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+
+@Aspect
+public class TwoAdviceAspect {
+ private int totalCalls;
+
+ @Around("execution(* getAge())")
+ public int returnCallCount(ProceedingJoinPoint pjp) throws Exception {
+ return totalCalls;
+ }
+
+ @Before("execution(* setAge(int)) && args(newAge)")
+ public void countSet(int newAge) throws Exception {
+ ++totalCalls;
+ }
+}
\ No newline at end of file
diff --git a/org.springframework.testsuite/src/test/java/test/mixin/Lockable.java b/org.springframework.context/src/test/java/test/beans/Employee.java
similarity index 67%
rename from org.springframework.testsuite/src/test/java/test/mixin/Lockable.java
rename to org.springframework.context/src/test/java/test/beans/Employee.java
index 6db63281d7c501b7fb627eff661c54c0ab031a09..db4d5fb595089cf25f1405ce264359f10f942e10 100644
--- a/org.springframework.testsuite/src/test/java/test/mixin/Lockable.java
+++ b/org.springframework.context/src/test/java/test/beans/Employee.java
@@ -1,3 +1,4 @@
+
/*
* Copyright 2002-2005 the original author or authors.
*
@@ -14,20 +15,27 @@
* limitations under the License.
*/
-package test.mixin;
+package test.beans;
+import org.springframework.beans.TestBean;
-/**
- * Simple interface to use for mixins
- *
- * @author Rod Johnson
- *
- */
-public interface Lockable {
+public class Employee extends TestBean {
- void lock();
+ private String co;
+
+ /**
+ * Constructor for Employee.
+ */
+ public Employee() {
+ super();
+ }
- void unlock();
+ public String getCompany() {
+ return co;
+ }
- boolean locked();
-}
\ No newline at end of file
+ public void setCompany(String co) {
+ this.co = co;
+ }
+
+}
diff --git a/org.springframework.context/src/test/java/test/beans/FactoryMethods.java b/org.springframework.context/src/test/java/test/beans/FactoryMethods.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3040c39b6a109792f2f789193b396152cb8cfc0
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/beans/FactoryMethods.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2002-2008 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.beans;
+
+/**
+ * Test class for Spring's ability to create objects using static
+ * factory methods, rather than constructors.
+ *
+ * @author Rod Johnson
+ * @author Juergen Hoeller
+ * @author Chris Beams
+ */
+public final class FactoryMethods {
+
+ public static FactoryMethods nullInstance() {
+ return null;
+ }
+
+}
diff --git a/org.springframework.testsuite/src/test/java/test/mixin/DefaultLockable.java b/org.springframework.context/src/test/java/test/beans/SideEffectBean.java
similarity index 67%
rename from org.springframework.testsuite/src/test/java/test/mixin/DefaultLockable.java
rename to org.springframework.context/src/test/java/test/beans/SideEffectBean.java
index a85fb94678b3ea0ce82bafcc1212d7378b3c7a1a..33619a48b1c0040f52ac932d393a04fa4a723b7c 100644
--- a/org.springframework.testsuite/src/test/java/test/mixin/DefaultLockable.java
+++ b/org.springframework.context/src/test/java/test/beans/SideEffectBean.java
@@ -14,28 +14,28 @@
* limitations under the License.
*/
- package test.mixin;
-
+package test.beans;
/**
- * Simple implementation of Lockable interface for use in mixins.
+ * Bean that changes state on a business invocation, so that
+ * we can check whether it's been invoked
*
* @author Rod Johnson
*/
-public class DefaultLockable implements Lockable {
-
- private boolean locked;
-
- public void lock() {
- this.locked = true;
+public class SideEffectBean {
+
+ private int count;
+
+ public void setCount(int count) {
+ this.count = count;
}
-
- public void unlock() {
- this.locked = false;
+
+ public int getCount() {
+ return this.count;
}
-
- public boolean locked() {
- return this.locked;
+
+ public void doWork() {
+ ++count;
}
-}
+}
\ No newline at end of file
diff --git a/org.springframework.context/src/test/java/org/springframework/aop/interceptor/NopInterceptor.java b/org.springframework.context/src/test/java/test/interceptor/NopInterceptor.java
similarity index 96%
rename from org.springframework.context/src/test/java/org/springframework/aop/interceptor/NopInterceptor.java
rename to org.springframework.context/src/test/java/test/interceptor/NopInterceptor.java
index 6bbbc4ff174ca0c6b00aa149a972dbc44e3b3756..223a5f1a75c9d12821307b7a79df2a18cf7574f4 100644
--- a/org.springframework.context/src/test/java/org/springframework/aop/interceptor/NopInterceptor.java
+++ b/org.springframework.context/src/test/java/test/interceptor/NopInterceptor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.springframework.aop.interceptor;
+package test.interceptor;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
diff --git a/org.springframework.context/src/test/java/test/interceptor/SerializableNopInterceptor.java b/org.springframework.context/src/test/java/test/interceptor/SerializableNopInterceptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..3af0cbc2962e3d5125e0526d28c1f79629eca628
--- /dev/null
+++ b/org.springframework.context/src/test/java/test/interceptor/SerializableNopInterceptor.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2002-2005 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.interceptor;
+
+import java.io.Serializable;
+
+
+/**
+ * Subclass of NopInterceptor that is serializable and
+ * can be used to test proxy serialization.
+ *
+ * @author Rod Johnson
+ */
+public class SerializableNopInterceptor extends NopInterceptor implements Serializable {
+
+ /**
+ * We must override this field and the related methods as
+ * otherwise count won't be serialized from the non-serializable
+ * NopInterceptor superclass.
+ */
+ private int count;
+
+ public int getCount() {
+ return this.count;
+ }
+
+ protected void increment() {
+ ++count;
+ }
+
+}
\ No newline at end of file
diff --git a/org.springframework.testsuite/src/test/java/test/interceptor/TimestampIntroductionInterceptor.java b/org.springframework.context/src/test/java/test/interceptor/TimestampIntroductionInterceptor.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/interceptor/TimestampIntroductionInterceptor.java
rename to org.springframework.context/src/test/java/test/interceptor/TimestampIntroductionInterceptor.java
diff --git a/org.springframework.context/src/test/java/test/mixin/DefaultLockable.java b/org.springframework.context/src/test/java/test/mixin/DefaultLockable.java
index 981f0ac28d7d25e6b9ef44fecf4fb5fb0b9afecb..a85fb94678b3ea0ce82bafcc1212d7378b3c7a1a 100644
--- a/org.springframework.context/src/test/java/test/mixin/DefaultLockable.java
+++ b/org.springframework.context/src/test/java/test/mixin/DefaultLockable.java
@@ -1,12 +1,12 @@
/*
- * Copyright 2002-2007 the original author or authors.
- *
+ * Copyright 2002-2005 the original author or authors.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -14,7 +14,8 @@
* limitations under the License.
*/
-package test.mixin;
+ package test.mixin;
+
/**
* Simple implementation of Lockable interface for use in mixins.
@@ -37,4 +38,4 @@ public class DefaultLockable implements Lockable {
return this.locked;
}
-}
\ No newline at end of file
+}
diff --git a/org.springframework.testsuite/src/test/java/test/mixin/LockMixin.java b/org.springframework.context/src/test/java/test/mixin/LockMixin.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/mixin/LockMixin.java
rename to org.springframework.context/src/test/java/test/mixin/LockMixin.java
diff --git a/org.springframework.testsuite/src/test/java/test/mixin/LockMixinAdvisor.java b/org.springframework.context/src/test/java/test/mixin/LockMixinAdvisor.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/mixin/LockMixinAdvisor.java
rename to org.springframework.context/src/test/java/test/mixin/LockMixinAdvisor.java
diff --git a/org.springframework.context/src/test/java/test/mixin/Lockable.java b/org.springframework.context/src/test/java/test/mixin/Lockable.java
index 243e0038bbbc7c0ddac30cca1ca2e5584ac32486..6db63281d7c501b7fb627eff661c54c0ab031a09 100644
--- a/org.springframework.context/src/test/java/test/mixin/Lockable.java
+++ b/org.springframework.context/src/test/java/test/mixin/Lockable.java
@@ -1,12 +1,12 @@
/*
- * Copyright 2002-2007 the original author or authors.
- *
+ * Copyright 2002-2005 the original author or authors.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,6 +16,7 @@
package test.mixin;
+
/**
* Simple interface to use for mixins
*
diff --git a/org.springframework.testsuite/src/test/java/test/mixin/LockedException.java b/org.springframework.context/src/test/java/test/mixin/LockedException.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/mixin/LockedException.java
rename to org.springframework.context/src/test/java/test/mixin/LockedException.java
diff --git a/org.springframework.testsuite/src/test/java/test/util/TimeStamped.java b/org.springframework.context/src/test/java/test/util/TimeStamped.java
similarity index 100%
rename from org.springframework.testsuite/src/test/java/test/util/TimeStamped.java
rename to org.springframework.context/src/test/java/test/util/TimeStamped.java
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeTests-context.xml b/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeIntegrationTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeTests-context.xml
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeIntegrationTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeTests.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeIntegrationTests.java
similarity index 85%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeTests.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeIntegrationTests.java
index 91c906dcb0a741fe3e87d16f621991a87d8b2f81..72e9667def88da6bf76977c7b4e0a66f87cbedc2 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeTests.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/config/AopNamespaceHandlerScopeIntegrationTests.java
@@ -16,7 +16,9 @@
package org.springframework.aop.config;
+import static java.lang.String.format;
import static org.junit.Assert.*;
+import static org.springframework.util.ClassUtils.convertClassNameToResourcePath;
import org.junit.Before;
import org.junit.Test;
@@ -32,18 +34,26 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.context.support.XmlWebApplicationContext;
/**
+ * Integration tests for scoped proxy use in conjunction with aop: namespace.
+ * Deemed an integration test because .web mocks and application contexts are required.
+ *
+ * @see org.springframework.aop.config.AopNamespaceHandlerTests;
+ *
* @author Rob Harrop
* @author Juergen Hoeller
* @author Chris Beams
*/
-public final class AopNamespaceHandlerScopeTests {
+public final class AopNamespaceHandlerScopeIntegrationTests {
+
+ private static final String CLASSNAME = AopNamespaceHandlerScopeIntegrationTests.class.getName();
+ private static final String CONTEXT = format("classpath:%s-context.xml", convertClassNameToResourcePath(CLASSNAME));
private ApplicationContext context;
@Before
public void setUp() {
XmlWebApplicationContext wac = new XmlWebApplicationContext();
- wac.setConfigLocations(new String[] {"classpath:org/springframework/aop/config/AopNamespaceHandlerScopeTests-context.xml"});
+ wac.setConfigLocations(new String[] {CONTEXT});
wac.refresh();
this.context = wac;
}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-context.xml b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorIntegrationTests-context.xml
similarity index 100%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests-context.xml
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorIntegrationTests-context.xml
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorIntegrationTests.java
similarity index 55%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorIntegrationTests.java
index d94ce297e296179c0cc59dc49feec831ae37bec6..4ccc8e4c615163aa3577b2ce3adf095cea1512dd 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorTests.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/autoproxy/AdvisorAutoProxyCreatorIntegrationTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2006 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,18 +25,9 @@ import java.util.List;
import javax.servlet.ServletException;
import org.junit.Test;
-import org.springframework.aop.MethodBeforeAdvice;
-import org.springframework.aop.framework.Advised;
-import org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator;
import org.springframework.aop.support.AopUtils;
import org.springframework.aop.support.StaticMethodMatcherPointcutAdvisor;
-import org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource;
-import org.springframework.aop.target.CommonsPoolTargetSource;
-import org.springframework.aop.target.LazyInitTargetSource;
-import org.springframework.aop.target.PrototypeTargetSource;
-import org.springframework.aop.target.ThreadLocalTargetSource;
import org.springframework.beans.ITestBean;
-import org.springframework.beans.TestBean;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -47,25 +38,22 @@ import org.springframework.transaction.interceptor.TransactionInterceptor;
import test.advice.CountingBeforeAdvice;
import test.advice.MethodCounter;
import test.interceptor.NopInterceptor;
-import test.mixin.Lockable;
/**
- * Tests for auto proxy creation by advisor recognition.
+ * Integration tests for auto proxy creation by advisor recognition working in
+ * conjunction with transaction managment resources.
+ *
+ * @see org.springframework.aop.framework.autoproxy.AdvisorAutoProxyCreatorTests;
*
* @author Rod Johnson
- * @author Dave Syer
* @author Chris Beams
*/
-public final class AdvisorAutoProxyCreatorTests {
+public final class AdvisorAutoProxyCreatorIntegrationTests {
- private static final Class> CLASS = AdvisorAutoProxyCreatorTests.class;
+ private static final Class> CLASS = AdvisorAutoProxyCreatorIntegrationTests.class;
private static final String CLASSNAME = CLASS.getSimpleName();
private static final String DEFAULT_CONTEXT = CLASSNAME + "-context.xml";
- private static final String COMMON_INTERCEPTORS_CONTEXT = CLASSNAME + "-common-interceptors.xml";
- private static final String CUSTOM_TARGETSOURCE_CONTEXT = CLASSNAME + "-custom-targetsource.xml";
- private static final String QUICK_TARGETSOURCE_CONTEXT = CLASSNAME + "-quick-targetsource.xml";
- private static final String OPTIMIZED_CONTEXT = CLASSNAME + "-optimized.xml";
private static final String ADVISOR_APC_BEAN_NAME = "aapc";
private static final String TXMANAGER_BEAN_NAME = "txManager";
@@ -76,7 +64,7 @@ public final class AdvisorAutoProxyCreatorTests {
protected BeanFactory getBeanFactory() throws IOException {
return new ClassPathXmlApplicationContext(DEFAULT_CONTEXT, CLASS);
}
-
+
@Test
public void testDefaultExclusionPrefix() throws Exception {
DefaultAdvisorAutoProxyCreator aapc = (DefaultAdvisorAutoProxyCreator) getBeanFactory().getBean(ADVISOR_APC_BEAN_NAME);
@@ -110,125 +98,6 @@ public final class AdvisorAutoProxyCreatorTests {
test.getName();
assertEquals(1, counter.getCalls());
}
-
- /**
- * Check that we can provide a common interceptor that will
- * appear in the chain before "specific" interceptors,
- * which are sourced from matching advisors
- */
- @Test
- public void testCommonInterceptorAndAdvisor() throws Exception {
- BeanFactory bf = new ClassPathXmlApplicationContext(COMMON_INTERCEPTORS_CONTEXT, CLASS);
- ITestBean test1 = (ITestBean) bf.getBean("test1");
- assertTrue(AopUtils.isAopProxy(test1));
-
- Lockable lockable1 = (Lockable) test1;
- NopInterceptor nop = (NopInterceptor) bf.getBean("nopInterceptor");
- assertEquals(0, nop.getCount());
-
- ITestBean test2 = (ITestBean) bf.getBean("test2");
- Lockable lockable2 = (Lockable) test2;
-
- // Locking should be independent; nop is shared
- assertFalse(lockable1.locked());
- assertFalse(lockable2.locked());
- // equals 2 calls on shared nop, because it's first
- // and sees calls against the Lockable interface introduced
- // by the specific advisor
- assertEquals(2, nop.getCount());
- lockable1.lock();
- assertTrue(lockable1.locked());
- assertFalse(lockable2.locked());
- assertEquals(5, nop.getCount());
- }
-
- /**
- * We have custom TargetSourceCreators but there's no match, and
- * hence no proxying, for this bean
- */
- @Test
- public void testCustomTargetSourceNoMatch() throws Exception {
- BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
- ITestBean test = (ITestBean) bf.getBean("test");
- assertFalse(AopUtils.isAopProxy(test));
- assertEquals("Rod", test.getName());
- assertEquals("Kerry", test.getSpouse().getName());
- }
-
- @Test
- public void testCustomPrototypeTargetSource() throws Exception {
- CountingTestBean.count = 0;
- BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
- ITestBean test = (ITestBean) bf.getBean("prototypeTest");
- assertTrue(AopUtils.isAopProxy(test));
- Advised advised = (Advised) test;
- assertTrue(advised.getTargetSource() instanceof PrototypeTargetSource);
- assertEquals("Rod", test.getName());
- // Check that references survived prototype creation
- assertEquals("Kerry", test.getSpouse().getName());
- assertEquals("Only 2 CountingTestBeans instantiated", 2, CountingTestBean.count);
- CountingTestBean.count = 0;
- }
-
- @Test
- public void testLazyInitTargetSource() throws Exception {
- CountingTestBean.count = 0;
- BeanFactory bf = new ClassPathXmlApplicationContext(CUSTOM_TARGETSOURCE_CONTEXT, CLASS);
- ITestBean test = (ITestBean) bf.getBean("lazyInitTest");
- assertTrue(AopUtils.isAopProxy(test));
- Advised advised = (Advised) test;
- assertTrue(advised.getTargetSource() instanceof LazyInitTargetSource);
- assertEquals("No CountingTestBean instantiated yet", 0, CountingTestBean.count);
- assertEquals("Rod", test.getName());
- assertEquals("Kerry", test.getSpouse().getName());
- assertEquals("Only 1 CountingTestBean instantiated", 1, CountingTestBean.count);
- CountingTestBean.count = 0;
- }
-
- @Test
- public void testQuickTargetSourceCreator() throws Exception {
- ClassPathXmlApplicationContext bf =
- new ClassPathXmlApplicationContext(QUICK_TARGETSOURCE_CONTEXT, CLASS);
- ITestBean test = (ITestBean) bf.getBean("test");
- assertFalse(AopUtils.isAopProxy(test));
- assertEquals("Rod", test.getName());
- // Check that references survived pooling
- assertEquals("Kerry", test.getSpouse().getName());
-
- // Now test the pooled one
- test = (ITestBean) bf.getBean(":test");
- assertTrue(AopUtils.isAopProxy(test));
- Advised advised = (Advised) test;
- assertTrue(advised.getTargetSource() instanceof CommonsPoolTargetSource);
- assertEquals("Rod", test.getName());
- // Check that references survived pooling
- assertEquals("Kerry", test.getSpouse().getName());
-
- // Now test the ThreadLocal one
- test = (ITestBean) bf.getBean("%test");
- assertTrue(AopUtils.isAopProxy(test));
- advised = (Advised) test;
- assertTrue(advised.getTargetSource() instanceof ThreadLocalTargetSource);
- assertEquals("Rod", test.getName());
- // Check that references survived pooling
- assertEquals("Kerry", test.getSpouse().getName());
-
- // Now test the Prototype TargetSource
- test = (ITestBean) bf.getBean("!test");
- assertTrue(AopUtils.isAopProxy(test));
- advised = (Advised) test;
- assertTrue(advised.getTargetSource() instanceof PrototypeTargetSource);
- assertEquals("Rod", test.getName());
- // Check that references survived pooling
- assertEquals("Kerry", test.getSpouse().getName());
-
-
- ITestBean test2 = (ITestBean) bf.getBean("!test");
- assertFalse("Prototypes cannot be the same object", test == test2);
- assertEquals("Rod", test2.getName());
- assertEquals("Kerry", test2.getSpouse().getName());
- bf.close();
- }
@Test
public void testTransactionAttributeOnMethod() throws Exception {
@@ -314,32 +183,6 @@ public final class AdvisorAutoProxyCreatorTests {
assertEquals(1, txMan.rollbacks);
}
- @Test
- public void testWithOptimizedProxy() throws Exception {
- BeanFactory beanFactory = new ClassPathXmlApplicationContext(OPTIMIZED_CONTEXT, CLASS);
-
- ITestBean testBean = (ITestBean) beanFactory.getBean("optimizedTestBean");
- assertTrue(AopUtils.isAopProxy(testBean));
-
- CountingBeforeAdvice beforeAdvice = (CountingBeforeAdvice) beanFactory.getBean("countingAdvice");
-
- testBean.setAge(23);
- testBean.getAge();
-
- assertEquals("Incorrect number of calls to proxy", 2, beforeAdvice.getCalls());
- }
-
-}
-
-
-class CountingTestBean extends TestBean {
-
- public static int count = 0;
-
- public CountingTestBean() {
- count++;
- }
-
}
@@ -468,32 +311,3 @@ class Rollback {
}
-
-class SelectivePrototypeTargetSourceCreator extends AbstractBeanFactoryBasedTargetSourceCreator {
-
- protected AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(
- Class> beanClass, String beanName) {
- if (!beanName.startsWith("prototype")) {
- return null;
- }
- return new PrototypeTargetSource();
- }
-
-}
-
-
-class NullChecker implements MethodBeforeAdvice {
-
- public void before(Method method, Object[] args, Object target) throws Throwable {
- check(args);
- }
-
- private void check(Object[] args) {
- for (int i = 0; i < args.length; i++) {
- if (args[i] == null) {
- throw new IllegalArgumentException("Null argument at position " + i);
- }
- }
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/test/advice/CountingAfterReturningAdvice.java b/org.springframework.testsuite/src/test/java/test/advice/CountingAfterReturningAdvice.java
index d28ac263aa7f027c6bbda0af340ee2788458bb9d..12010bee5caafab47c5ade7248770c1d42fe76c5 100644
--- a/org.springframework.testsuite/src/test/java/test/advice/CountingAfterReturningAdvice.java
+++ b/org.springframework.testsuite/src/test/java/test/advice/CountingAfterReturningAdvice.java
@@ -25,6 +25,7 @@ import org.springframework.aop.AfterReturningAdvice;
*
* @author Rod Johnson
*/
+@SuppressWarnings("serial")
public class CountingAfterReturningAdvice extends MethodCounter implements AfterReturningAdvice {
public void afterReturning(Object o, Method m, Object[] args, Object target) throws Throwable {
diff --git a/org.springframework.testsuite/src/test/java/test/advice/CountingBeforeAdvice.java b/org.springframework.testsuite/src/test/java/test/advice/CountingBeforeAdvice.java
index f34ba8ac18e71e5bfdd8a9149433beb4d2577c3d..cade9a18321318c63b61d630fbbed6a9fba1b7ea 100644
--- a/org.springframework.testsuite/src/test/java/test/advice/CountingBeforeAdvice.java
+++ b/org.springframework.testsuite/src/test/java/test/advice/CountingBeforeAdvice.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2005 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import org.springframework.aop.MethodBeforeAdvice;
*
* @author Rod Johnson
*/
+@SuppressWarnings("serial")
public class CountingBeforeAdvice extends MethodCounter implements MethodBeforeAdvice {
public void before(Method m, Object[] args, Object target) throws Throwable {
diff --git a/org.springframework.testsuite/src/test/java/test/advice/MethodCounter.java b/org.springframework.testsuite/src/test/java/test/advice/MethodCounter.java
index 41fa68163eac2330f47074cac42447b44c61cd81..c7f660a511a2bf50df1b40e1f821d12526814bb0 100644
--- a/org.springframework.testsuite/src/test/java/test/advice/MethodCounter.java
+++ b/org.springframework.testsuite/src/test/java/test/advice/MethodCounter.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 the original author or authors.
+ * Copyright 2002-2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,14 +21,16 @@ import java.lang.reflect.Method;
import java.util.HashMap;
/**
- * Useful abstract superclass for counting advices etc.
+ * Abstract superclass for counting advices etc.
*
* @author Rod Johnson
+ * @author Chris Beams
*/
+@SuppressWarnings("serial")
public class MethodCounter implements Serializable {
/** Method name --> count, does not understand overloading */
- private HashMap map = new HashMap();
+ private HashMap map = new HashMap();
private int allCount;
@@ -37,14 +39,14 @@ public class MethodCounter implements Serializable {
}
protected void count(String methodName) {
- Integer i = (Integer) map.get(methodName);
+ Integer i = map.get(methodName);
i = (i != null) ? new Integer(i.intValue() + 1) : new Integer(1);
map.put(methodName, i);
++allCount;
}
public int getCalls(String methodName) {
- Integer i = (Integer) map.get(methodName);
+ Integer i = map.get(methodName);
return (i != null ? i.intValue() : 0);
}