diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/_TestTypes.java b/spring-context/src/test/java/org/springframework/aop/aspectj/AdviceBindingTestAspect.java similarity index 56% rename from spring-context/src/test/java/org/springframework/aop/aspectj/_TestTypes.java rename to spring-context/src/test/java/org/springframework/aop/aspectj/AdviceBindingTestAspect.java index e4ebeb133f8..aefb870f2a9 100644 --- a/spring-context/src/test/java/org/springframework/aop/aspectj/_TestTypes.java +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/AdviceBindingTestAspect.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2018 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. @@ -18,23 +18,6 @@ package org.springframework.aop.aspectj; import org.aspectj.lang.JoinPoint; -/** - * Definitions of testing types for use in within this package. - * Wherever possible, test types should be defined local to the java - * file that makes use of them. In some cases however, a test type may - * need to be shared across tests. Such types reside here, with the - * intention of reducing the surface area of java files within this - * package. This allows developers to think about tests first, and deal - * with these second class testing artifacts on an as-needed basis. - * - * Types here should be defined as package-private top level classes in - * order to avoid needing to fully qualify, e.g.: _TestTypes$Foo. - * - * @author Chris Beams - */ -final class _TestTypes { } - - /** * Aspect used as part of before advice binding tests and * serves as base class for a number of more specialized test aspects. @@ -44,13 +27,16 @@ final class _TestTypes { } */ class AdviceBindingTestAspect { - protected AdviceBindingCollaborator collaborator = null; + protected AdviceBindingCollaborator collaborator; + public void setCollaborator(AdviceBindingCollaborator aCollaborator) { this.collaborator = aCollaborator; } + // "advice" methods + public void oneIntArg(int age) { this.collaborator.oneIntArg(age); } @@ -79,67 +65,14 @@ class AdviceBindingTestAspect { public interface AdviceBindingCollaborator { void oneIntArg(int x); - void oneObjectArg(Object o); - void oneIntAndOneObject(int x, Object o); - void needsJoinPoint(String s); - void needsJoinPointStaticPart(String s); - } - -} - - -/** - * @author Ramnivas Laddad - */ -interface ICounter { - - void increment(); - void decrement(); - - int getCount(); - - void setCount(int counter); - - void reset(); - -} - - -/** - * A simple counter for use in simple tests (for example, how many times an advice was executed) - * - * @author Ramnivas Laddad - */ -final class Counter implements ICounter { - - private int count; - - public Counter() { - } - - @Override - public void increment() { - count++; - } + void oneObjectArg(Object o); - @Override - public void decrement() { - count--; - } + void oneIntAndOneObject(int x, Object o); - @Override - public int getCount() { - return count; - } + void needsJoinPoint(String s); - @Override - public void setCount(int counter) { - this.count = counter; + void needsJoinPointStaticPart(String s); } - @Override - public void reset() { - this.count = 0; - } } diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/Counter.java b/spring-context/src/test/java/org/springframework/aop/aspectj/Counter.java new file mode 100644 index 00000000000..98942aba873 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/Counter.java @@ -0,0 +1,56 @@ +/* + * Copyright 2002-2018 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.aspectj; + +/** + * A simple counter for use in simple tests (for example, how many times an advice was executed) + * + * @author Ramnivas Laddad + */ +final class Counter implements ICounter { + + private int count; + + public Counter() { + } + + @Override + public void increment() { + count++; + } + + @Override + public void decrement() { + count--; + } + + @Override + public int getCount() { + return count; + } + + @Override + public void setCount(int counter) { + this.count = counter; + } + + @Override + public void reset() { + this.count = 0; + } + +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/ICounter.java b/spring-context/src/test/java/org/springframework/aop/aspectj/ICounter.java new file mode 100644 index 00000000000..9ad720ff1b4 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/ICounter.java @@ -0,0 +1,34 @@ +/* + * Copyright 2002-2018 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.aspectj; + +/** + * @author Ramnivas Laddad + */ +interface ICounter { + + void increment(); + + void decrement(); + + int getCount(); + + void setCount(int counter); + + void reset(); + +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBean.java b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBean.java new file mode 100644 index 00000000000..95f0d2e38eb --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBean.java @@ -0,0 +1,33 @@ +/* + * Copyright 2002-2018 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.aspectj.autoproxy; + +/** + * @author Adrian Colyer + * @since 2.0 + */ +interface AnnotatedTestBean { + + String doThis(); + + String doThat(); + + String doTheOther(); + + String[] doArray(); + +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBeanImpl.java b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBeanImpl.java new file mode 100644 index 00000000000..1963e42b8b5 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotatedTestBeanImpl.java @@ -0,0 +1,49 @@ +/* + * Copyright 2002-2018 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.aspectj.autoproxy; + +/** + * @author Adrian Colyer + * @since 2.0 + */ +class AnnotatedTestBeanImpl implements AnnotatedTestBean { + + @Override + @TestAnnotation("this value") + public String doThis() { + return "doThis"; + } + + @Override + @TestAnnotation("that value") + public String doThat() { + return "doThat"; + } + + @Override + @TestAnnotation("array value") + public String[] doArray() { + return new String[] {"doThis", "doThat"}; + } + + // not annotated + @Override + public String doTheOther() { + return "doTheOther"; + } + +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTestAspect.java b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTestAspect.java new file mode 100644 index 00000000000..5f1716e1505 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/AnnotationBindingTestAspect.java @@ -0,0 +1,30 @@ +/* + * Copyright 2002-2018 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.aspectj.autoproxy; + +import org.aspectj.lang.ProceedingJoinPoint; + +/** + * @author Adrian Colyer + */ +class AnnotationBindingTestAspect { + + public String doWithAnnotation(ProceedingJoinPoint pjp, TestAnnotation testAnnotation) throws Throwable { + return testAnnotation.value(); + } + +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/TestAnnotation.java b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/TestAnnotation.java new file mode 100644 index 00000000000..85444c1c35e --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/TestAnnotation.java @@ -0,0 +1,29 @@ +/* + * Copyright 2002-2018 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.aspectj.autoproxy; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * @author Adrian Colyer + * @since 2.0 + */ +@Retention(RetentionPolicy.RUNTIME) +@interface TestAnnotation { + String value() ; +} diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java b/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java deleted file mode 100644 index 45f9b1ba4e7..00000000000 --- a/spring-context/src/test/java/org/springframework/aop/aspectj/autoproxy/_TestTypes.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2002-2012 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.aspectj.autoproxy; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import org.aspectj.lang.ProceedingJoinPoint; - -/** - * Definitions of testing types for use in within this package. - * Wherever possible, test types should be defined local to the java - * file that makes use of them. In some cases however, a test type may - * need to be shared across tests. Such types reside here, with the - * intention of reducing the surface area of java files within this - * package. This allows developers to think about tests first, and deal - * with these second class testing artifacts on an as-needed basis. - * - * Types here should be defined as package-private top level classes in - * order to avoid needing to fully qualify, e.g.: _TestTypes$Foo. - * - * @author Chris Beams - */ -final class _TestTypes { } - - -/** - * @author Adrian Colyer - * @since 2.0 - */ -interface AnnotatedTestBean { - - String doThis(); - - String doThat(); - - String doTheOther(); - - String[] doArray(); - -} - - -/** - * @author Adrian Colyer - * @since 2.0 - */ -@Retention(RetentionPolicy.RUNTIME) -@interface TestAnnotation { - String value() ; -} - - -/** - * @author Adrian Colyer - * @since 2.0 - */ -class AnnotatedTestBeanImpl implements AnnotatedTestBean { - - @Override - @TestAnnotation("this value") - public String doThis() { - return "doThis"; - } - - @Override - @TestAnnotation("that value") - public String doThat() { - return "doThat"; - } - - @Override - @TestAnnotation("array value") - public String[] doArray() { - return new String[] {"doThis", "doThat"}; - } - - // not annotated - @Override - public String doTheOther() { - return "doTheOther"; - } - -} - - -/** - * @author Adrian Colyer - */ -class AnnotationBindingTestAspect { - - public String doWithAnnotation(ProceedingJoinPoint pjp, TestAnnotation testAnnotation) throws Throwable { - return testAnnotation.value(); - } - -} diff --git a/spring-context/src/test/java/org/springframework/aop/framework/Echo.java b/spring-context/src/test/java/org/springframework/aop/framework/Echo.java new file mode 100644 index 00000000000..df177d21d13 --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/framework/Echo.java @@ -0,0 +1,41 @@ +/* + * Copyright 2002-2018 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; + +public class Echo implements IEcho { + + private int a; + + @Override + public int echoException(int i, Throwable t) throws Throwable { + if (t != null) { + throw t; + } + return i; + } + + @Override + public void setA(int a) { + this.a = a; + } + + @Override + public int getA() { + return a; + } + +} diff --git a/spring-context/src/test/java/org/springframework/aop/framework/IEcho.java b/spring-context/src/test/java/org/springframework/aop/framework/IEcho.java new file mode 100644 index 00000000000..ff02f5ef0ef --- /dev/null +++ b/spring-context/src/test/java/org/springframework/aop/framework/IEcho.java @@ -0,0 +1,27 @@ +/* + * Copyright 2002-2018 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; + +public interface IEcho { + + int echoException(int i, Throwable t) throws Throwable; + + int getA(); + + void setA(int a); + +} diff --git a/spring-context/src/test/java/org/springframework/aop/framework/_TestTypes.java b/spring-context/src/test/java/org/springframework/aop/framework/_TestTypes.java deleted file mode 100644 index ea1924b1018..00000000000 --- a/spring-context/src/test/java/org/springframework/aop/framework/_TestTypes.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.springframework.aop.framework; - -/** - * Definitions of testing types for use in within this package. - * Wherever possible, test types should be defined local to the java - * file that makes use of them. In some cases however, a test type may - * need to be shared across tests. Such types reside here, with the - * intention of reducing the surface area of java files within this - * package. This allows developers to think about tests first, and deal - * with these second class testing artifacts on an as-needed basis. - * - * Types here should be defined as package-private top level classes in - * order to avoid needing to fully qualify, e.g.: _TestTypes$Foo. - * - * @author Chris Beams - */ -final class _TestTypes { } - - -interface IEcho { - int echoException(int i, Throwable t) throws Throwable; - int getA(); - void setA(int a); -} - - -class Echo implements IEcho { - private int a; - - @Override - public int echoException(int i, Throwable t) throws Throwable { - if (t != null) - throw t; - return i; - } - @Override - public void setA(int a) { - this.a = a; - } - @Override - public int getA() { - return a; - } -} \ No newline at end of file