diff --git a/org.springframework.context/.classpath b/org.springframework.context/.classpath index 360c7a532c..23afd252b2 100644 --- a/org.springframework.context/.classpath +++ b/org.springframework.context/.classpath @@ -29,6 +29,7 @@ + diff --git a/org.springframework.context/.classpath.swp b/org.springframework.context/.classpath.swp new file mode 100644 index 0000000000..874d80f7df Binary files /dev/null and b/org.springframework.context/.classpath.swp differ diff --git a/org.springframework.context/.ivy.xml.swp b/org.springframework.context/.ivy.xml.swp new file mode 100644 index 0000000000..1bb9790412 Binary files /dev/null and b/org.springframework.context/.ivy.xml.swp differ diff --git a/org.springframework.context/ivy.xml b/org.springframework.context/ivy.xml index 5e1c267b90..ceb7aeb38c 100644 --- a/org.springframework.context/ivy.xml +++ b/org.springframework.context/ivy.xml @@ -39,6 +39,7 @@ + diff --git a/org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java b/org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java new file mode 100644 index 0000000000..3f391b2c68 --- /dev/null +++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/CountingBeforeAdvice.java @@ -0,0 +1,34 @@ +/* + * 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 org.springframework.aop.framework; + +import java.lang.reflect.Method; + +import org.springframework.aop.MethodBeforeAdvice; + +/** + * Simple before advice example that we can use for counting checks. + * + * @author Rod Johnson + */ +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/org/springframework/aop/framework/MethodCounter.java new file mode 100644 index 0000000000..d3030ffe8e --- /dev/null +++ b/org.springframework.context/src/test/java/org/springframework/aop/framework/MethodCounter.java @@ -0,0 +1,68 @@ +/* + * Copyright 2002-2007 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; + +import java.io.Serializable; +import java.lang.reflect.Method; +import java.util.HashMap; + +/** + * Useful abstract superclass for counting advices etc. + * + * @author Rod Johnson + */ +public class MethodCounter implements Serializable { + + /** Method name --> count, does not understand overloading */ + private HashMap map = new HashMap(); + + private int allCount; + + protected void count(Method m) { + count(m.getName()); + } + + protected void count(String methodName) { + Integer i = (Integer) 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); + return (i != null ? i.intValue() : 0); + } + + public int getCalls() { + return allCount; + } + + /** + * A bit simplistic: just wants the same class. + * Doesn't worry about counts. + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object other) { + return (other != null && other.getClass() == this.getClass()); + } + + public int hashCode() { + return getClass().hashCode(); + } + +} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/Calculator.java b/org.springframework.context/src/test/java/org/springframework/scripting/Calculator.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/Calculator.java rename to org.springframework.context/src/test/java/org/springframework/scripting/Calculator.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/CallCounter.java b/org.springframework.context/src/test/java/org/springframework/scripting/CallCounter.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/CallCounter.java rename to org.springframework.context/src/test/java/org/springframework/scripting/CallCounter.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/ConfigurableMessenger.java b/org.springframework.context/src/test/java/org/springframework/scripting/ConfigurableMessenger.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/ConfigurableMessenger.java rename to org.springframework.context/src/test/java/org/springframework/scripting/ConfigurableMessenger.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/ContextScriptBean.java b/org.springframework.context/src/test/java/org/springframework/scripting/ContextScriptBean.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/ContextScriptBean.java rename to org.springframework.context/src/test/java/org/springframework/scripting/ContextScriptBean.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/Messenger.java b/org.springframework.context/src/test/java/org/springframework/scripting/Messenger.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/Messenger.java rename to org.springframework.context/src/test/java/org/springframework/scripting/Messenger.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/MessengerScrambler.java b/org.springframework.context/src/test/java/org/springframework/scripting/MessengerScrambler.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/MessengerScrambler.java rename to org.springframework.context/src/test/java/org/springframework/scripting/MessengerScrambler.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/ScriptBean.java b/org.springframework.context/src/test/java/org/springframework/scripting/ScriptBean.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/ScriptBean.java rename to org.springframework.context/src/test/java/org/springframework/scripting/ScriptBean.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/TestBeanAwareMessenger.java b/org.springframework.context/src/test/java/org/springframework/scripting/TestBeanAwareMessenger.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/TestBeanAwareMessenger.java rename to org.springframework.context/src/test/java/org/springframework/scripting/TestBeanAwareMessenger.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Broken.bsh b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/Broken.bsh similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Broken.bsh rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/Broken.bsh diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/BshScriptFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/BshScriptFactoryTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/BshScriptFactoryTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/BshScriptFactoryTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Calculator.bsh b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/Calculator.bsh similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Calculator.bsh rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/Calculator.bsh diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Messenger.bsh b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/Messenger.bsh similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/Messenger.bsh rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/Messenger.bsh diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/MessengerImpl.bsh b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/MessengerImpl.bsh similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/MessengerImpl.bsh rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/MessengerImpl.bsh diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/MessengerInstance.bsh b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/MessengerInstance.bsh similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/MessengerInstance.bsh rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/MessengerInstance.bsh diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bsh-with-xsd.xml b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/bsh-with-xsd.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bsh-with-xsd.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/bsh-with-xsd.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshBrokenContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshBrokenContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshBrokenContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshBrokenContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshRefreshableContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshRefreshableContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/bsh/bshRefreshableContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/bsh/bshRefreshableContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/config/ITestBean.java b/org.springframework.context/src/test/java/org/springframework/scripting/config/ITestBean.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/config/ITestBean.java rename to org.springframework.context/src/test/java/org/springframework/scripting/config/ITestBean.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/config/OtherTestBean.java b/org.springframework.context/src/test/java/org/springframework/scripting/config/OtherTestBean.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/config/OtherTestBean.java rename to org.springframework.context/src/test/java/org/springframework/scripting/config/OtherTestBean.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/config/ScriptingDefaultsTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/config/ScriptingDefaultsTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/config/ScriptingDefaultsTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/config/ScriptingDefaultsTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/config/TestBean.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/config/TestBean.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/config/TestBean.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/config/TestBean.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/config/scriptingDefaultsTests.xml b/org.springframework.context/src/test/java/org/springframework/scripting/config/scriptingDefaultsTests.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/config/scriptingDefaultsTests.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/config/scriptingDefaultsTests.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Broken.groovyb b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/Broken.groovyb similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Broken.groovyb rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/Broken.groovyb diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Calculator.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/Calculator.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Calculator.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/Calculator.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/CallCounter.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/CallCounter.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/CallCounter.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/CallCounter.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/DelegatingCalculator.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/DelegatingCalculator.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/DelegatingCalculator.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/DelegatingCalculator.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/GroovyClassLoadingTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/GroovyClassLoadingTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/GroovyClassLoadingTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/GroovyClassLoadingTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java similarity index 96% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java index a8641a688b..50bee5d33f 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java +++ b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/GroovyScriptFactoryTests.java @@ -16,6 +16,8 @@ package org.springframework.scripting.groovy; +import static org.junit.Assert.*; + import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Map; @@ -24,6 +26,7 @@ import groovy.lang.DelegatingMetaClass; import groovy.lang.GroovyObject; import junit.framework.TestCase; import org.easymock.MockControl; +import org.junit.Test; import org.springframework.aop.support.AopUtils; import org.springframework.aop.target.dynamic.Refreshable; @@ -42,7 +45,6 @@ import org.springframework.scripting.Messenger; import org.springframework.scripting.ScriptCompilationException; import org.springframework.scripting.ScriptSource; import org.springframework.scripting.support.ScriptFactoryPostProcessor; -import org.springframework.test.AssertThrows; /** * @author Rob Harrop @@ -50,9 +52,11 @@ import org.springframework.test.AssertThrows; * @author Rod Johnson * @author Juergen Hoeller * @author Mark Fisher + * @author Chris Beams */ -public class GroovyScriptFactoryTests extends TestCase { +public class GroovyScriptFactoryTests { + @Test public void testStaticScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); @@ -81,6 +85,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); } + @Test public void testStaticPrototypeScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); ConfigurableMessenger messenger = (ConfigurableMessenger) ctx.getBean("messengerPrototype"); @@ -99,6 +104,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals("Byebye World!", messenger2.getMessage()); } + @Test public void testStaticScriptWithInstance() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("messengerInstance")); @@ -112,6 +118,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); } + @Test public void testStaticScriptWithInlineDefinedInstance() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("messengerInstanceInline")); @@ -125,6 +132,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); } + @Test public void testNonStaticScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyRefreshableContext.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("messenger"); @@ -142,6 +150,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals("Incorrect refresh count", 2, refreshable.getRefreshCount()); } + @Test public void testNonStaticPrototypeScript() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovyRefreshableContext.xml", getClass()); ConfigurableMessenger messenger = (ConfigurableMessenger) ctx.getBean("messengerPrototype"); @@ -165,6 +174,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals("Incorrect refresh count", 2, refreshable.getRefreshCount()); } + @Test public void testScriptCompilationException() throws Exception { try { new ClassPathXmlApplicationContext("org/springframework/scripting/groovy/groovyBrokenContext.xml"); @@ -175,6 +185,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testScriptedClassThatDoesNotHaveANoArgCtor() throws Exception { MockControl mock = MockControl.createControl(ScriptSource.class); ScriptSource script = (ScriptSource) mock.getMock(); @@ -195,6 +206,7 @@ public class GroovyScriptFactoryTests extends TestCase { mock.verify(); } + @Test public void testScriptedClassThatHasNoPublicNoArgCtor() throws Exception { MockControl mock = MockControl.createControl(ScriptSource.class); ScriptSource script = (ScriptSource) mock.getMock(); @@ -215,6 +227,7 @@ public class GroovyScriptFactoryTests extends TestCase { mock.verify(); } + @Test public void testWithTwoClassesDefinedInTheOneGroovyFile_CorrectClassFirst() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("twoClassesCorrectOneFirst.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("messenger"); @@ -225,6 +238,7 @@ public class GroovyScriptFactoryTests extends TestCase { GroovyObject goo = (GroovyObject) messenger; } + @Test public void testWithTwoClassesDefinedInTheOneGroovyFile_WrongClassFirst() throws Exception { try { ApplicationContext ctx = new ClassPathXmlApplicationContext("twoClassesWrongOneFirst.xml", getClass()); @@ -236,6 +250,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithNullScriptSourceLocator() throws Exception { try { new GroovyScriptFactory(null); @@ -245,6 +260,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithEmptyScriptSourceLocator() throws Exception { try { new GroovyScriptFactory(""); @@ -254,6 +270,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testCtorWithWhitespacedScriptSourceLocator() throws Exception { try { new GroovyScriptFactory("\n "); @@ -263,6 +280,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testWithInlineScriptWithLeadingWhitespace() throws Exception { try { new ClassPathXmlApplicationContext("lwspBadGroovyContext.xml", getClass()); @@ -273,6 +291,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testGetScriptedObjectDoesNotChokeOnNullInterfacesBeingPassedIn() throws Exception { MockControl mock = MockControl.createControl(ScriptSource.class); ScriptSource scriptSource = (ScriptSource) mock.getMock(); @@ -288,6 +307,7 @@ public class GroovyScriptFactoryTests extends TestCase { mock.verify(); } + @Test public void testGetScriptedObjectDoesChokeOnNullScriptSourceBeingPassedIn() throws Exception { GroovyScriptFactory factory = new GroovyScriptFactory("a script source locator (doesn't matter here)"); try { @@ -298,6 +318,7 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testResourceScriptFromTag() throws Exception { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); Messenger messenger = (Messenger) ctx.getBean("messenger"); @@ -313,6 +334,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals(-200, countingAspect.getCalls()); } + @Test public void testPrototypeScriptFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); ConfigurableMessenger messenger = (ConfigurableMessenger) ctx.getBean("messengerPrototype"); @@ -328,6 +350,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals("Byebye World!", messenger2.getMessage()); } + @Test public void testInlineScriptFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); Calculator calculator = (Calculator) ctx.getBean("calculator"); @@ -335,6 +358,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertFalse(calculator instanceof Refreshable); } + @Test public void testRefreshableFromTag() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); assertTrue(Arrays.asList(ctx.getBeanNamesForType(Messenger.class)).contains("refreshableMessenger")); @@ -351,6 +375,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertTrue(ctx.getBeansOfType(Messenger.class).values().contains(messenger)); } + @Test public void testAnonymousScriptDetected() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-with-xsd.xml", getClass()); Map beans = ctx.getBeansOfType(Messenger.class); @@ -361,6 +386,7 @@ public class GroovyScriptFactoryTests extends TestCase { * Tests the SPR-2098 bug whereby no more than 1 property element could be * passed to a scripted bean :( */ + @Test public void testCanPassInMoreThanOneProperty() { ApplicationContext ctx = new ClassPathXmlApplicationContext("groovy-multiple-properties.xml", getClass()); TestBean tb = (TestBean) ctx.getBean("testBean"); @@ -385,28 +411,30 @@ public class GroovyScriptFactoryTests extends TestCase { } } + @Test public void testMetaClassWithBeans() { testMetaClass("org/springframework/scripting/groovy/calculators.xml"); } + @Test public void testMetaClassWithXsd() { testMetaClass("org/springframework/scripting/groovy/calculators-with-xsd.xml"); } private void testMetaClass(final String xmlFile) { // expect the exception we threw in the custom metaclass to show it got invoked - AssertThrows at = new AssertThrows(IllegalStateException.class) { - public void test() throws Exception { - ApplicationContext ctx = - new ClassPathXmlApplicationContext(xmlFile); - Calculator calc = (Calculator) ctx.getBean("delegatingCalculator"); - calc.add(1, 2); - } - }; - at.runTest(); - assertEquals("Gotcha", at.getActualException().getMessage()); + try { + ApplicationContext ctx = + new ClassPathXmlApplicationContext(xmlFile); + Calculator calc = (Calculator) ctx.getBean("delegatingCalculator"); + calc.add(1, 2); + fail("expected IllegalStateException"); + } catch (IllegalStateException ex) { + assertEquals("Gotcha", ex.getMessage()); + } } + @Test public void testFactoryBean() { ApplicationContext context = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); Object factory = context.getBean("&factory"); @@ -416,6 +444,7 @@ public class GroovyScriptFactoryTests extends TestCase { assertEquals("test", result); } + @Test public void testRefreshableFactoryBean() { ApplicationContext context = new ClassPathXmlApplicationContext("groovyContext.xml", getClass()); Object factory = context.getBean("&refreshableFactory"); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Messenger.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/Messenger.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/Messenger.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/Messenger.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/MessengerInstance.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/MessengerInstance.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/MessengerInstance.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/MessengerInstance.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/ScriptBean.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/ScriptBean.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/ScriptBean.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/ScriptBean.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/TestFactoryBean.groovy b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/TestFactoryBean.groovy similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/TestFactoryBean.groovy rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/TestFactoryBean.groovy diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/calculators-with-xsd.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/calculators-with-xsd.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/calculators-with-xsd.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/calculators-with-xsd.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/calculators.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/calculators.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/calculators.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/calculators.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovy-multiple-properties.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovy-multiple-properties.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovy-multiple-properties.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovy-multiple-properties.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovy-with-xsd.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovy-with-xsd.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovy-with-xsd.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovy-with-xsd.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyBrokenContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyBrokenContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyBrokenContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyBrokenContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyRefreshableContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyRefreshableContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/groovyRefreshableContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/groovyRefreshableContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/lwspBadGroovyContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/lwspBadGroovyContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/lwspBadGroovyContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/lwspBadGroovyContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/twoClassesCorrectOneFirst.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/twoClassesCorrectOneFirst.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/twoClassesCorrectOneFirst.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/twoClassesCorrectOneFirst.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/twoClassesWrongOneFirst.xml b/org.springframework.context/src/test/java/org/springframework/scripting/groovy/twoClassesWrongOneFirst.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/groovy/twoClassesWrongOneFirst.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/groovy/twoClassesWrongOneFirst.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/AdvisedJRubyScriptFactoryTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Broken.rb b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Broken.rb similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Broken.rb rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Broken.rb diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Calculator.rb b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Calculator.rb similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Calculator.rb rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Calculator.rb diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/JRubyScriptFactoryTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Messenger.rb b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Messenger.rb similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Messenger.rb rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Messenger.rb diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/PrimitiveAdder.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/PrimitiveAdder.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/PrimitiveAdder.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/PrimitiveAdder.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printable.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printable.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printable.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printable.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printer.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printer.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printer.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printer.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printer.rb b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printer.rb similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/Printer.rb rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/Printer.rb diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/WrapperAdder.java b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/WrapperAdder.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/WrapperAdder.java rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/WrapperAdder.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByBeanNameAutoProxyCreator.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/advisedByProxyFactoryBean.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jruby-aop.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jruby-aop.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jruby-aop.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jruby-aop.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jruby-with-xsd.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jruby-with-xsd.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jruby-with-xsd.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jruby-with-xsd.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyBrokenContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyBrokenContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyBrokenContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyBrokenContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContextForPrimitives.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContextForPrimitives.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContextForPrimitives.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContextForPrimitives.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContextForWrappers.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContextForWrappers.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyContextForWrappers.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyContextForWrappers.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyRefreshableContext.xml b/org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyRefreshableContext.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/jruby/jrubyRefreshableContext.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/jruby/jrubyRefreshableContext.xml diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/RefreshableScriptTargetSourceTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/support/RefreshableScriptTargetSourceTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/RefreshableScriptTargetSourceTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/support/RefreshableScriptTargetSourceTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/ResourceScriptSourceTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/support/ResourceScriptSourceTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/ResourceScriptSourceTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/support/ResourceScriptSourceTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/support/ScriptFactoryPostProcessorTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/StaticScriptSourceTests.java b/org.springframework.context/src/test/java/org/springframework/scripting/support/StaticScriptSourceTests.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/StaticScriptSourceTests.java rename to org.springframework.context/src/test/java/org/springframework/scripting/support/StaticScriptSourceTests.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/StubMessenger.java b/org.springframework.context/src/test/java/org/springframework/scripting/support/StubMessenger.java similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/StubMessenger.java rename to org.springframework.context/src/test/java/org/springframework/scripting/support/StubMessenger.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/scripting/support/groovyReferences.xml b/org.springframework.context/src/test/java/org/springframework/scripting/support/groovyReferences.xml similarity index 100% rename from org.springframework.testsuite/src/test/java/org/springframework/scripting/support/groovyReferences.xml rename to org.springframework.context/src/test/java/org/springframework/scripting/support/groovyReferences.xml diff --git a/org.springframework.testsuite/.classpath.swp b/org.springframework.testsuite/.classpath.swp new file mode 100644 index 0000000000..4d9c78ecde Binary files /dev/null and b/org.springframework.testsuite/.classpath.swp differ diff --git a/org.springframework.testsuite/.ivy.xml.swp b/org.springframework.testsuite/.ivy.xml.swp new file mode 100644 index 0000000000..73e724d7bc Binary files /dev/null and b/org.springframework.testsuite/.ivy.xml.swp differ