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); }