diff --git a/core/pom.xml b/core/pom.xml index 5bb935fab..980714243 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -207,7 +207,6 @@ org.apache.logging.log4j log4j-api - ${log4j2.version} @@ -235,42 +234,12 @@ org.springframework - spring-core - true - - - org.springframework - spring-aop - true - - - org.springframework - spring-aspects - true - - - org.springframework - spring-beans - true - - - org.springframework - spring-context - true - - - org.springframework - spring-context-support - true + spring-test + test org.springframework spring-web - true - - - org.springframework - spring-test test diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/package.html b/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/package.html deleted file mode 100644 index bb0c68183..000000000 --- a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/package.html +++ /dev/null @@ -1,21 +0,0 @@ - -Spring specific interceptor classes. diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/package.html b/core/src/main/java/com/opensymphony/xwork2/spring/package.html deleted file mode 100644 index b82f58fc3..000000000 --- a/core/src/main/java/com/opensymphony/xwork2/spring/package.html +++ /dev/null @@ -1,21 +0,0 @@ - -Spring ObjectFactory classes. diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/Bar.java b/core/src/test/java/com/opensymphony/xwork2/spring/Bar.java deleted file mode 100644 index 88052880b..000000000 --- a/core/src/test/java/com/opensymphony/xwork2/spring/Bar.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 com.opensymphony.xwork2.spring; - -/** - * @author Mike - */ -public class Bar { - - private Foo foo; - private String thing; - private int value; - - /** - * @return Returns the foo. - */ - public Foo getFoo() { - return foo; - } - - /** - * @param foo The foo to set. - */ - public void setFoo(Foo foo) { - this.foo = foo; - } - - /** - * @return Returns the thing. - */ - public String getThing() { - return thing; - } - - /** - * @param thing The thing to set. - */ - public void setThing(String thing) { - this.thing = thing; - } - - /** - * @return Returns the value. - */ - public int getValue() { - return value; - } - - /** - * @param value The value to set. - */ - public void setValue(int value) { - this.value = value; - } -} diff --git a/core/src/test/java/com/opensymphony/xwork2/util/DummyObjectFactory.java b/core/src/test/java/com/opensymphony/xwork2/util/DummyObjectFactory.java new file mode 100644 index 000000000..19c225472 --- /dev/null +++ b/core/src/test/java/com/opensymphony/xwork2/util/DummyObjectFactory.java @@ -0,0 +1,7 @@ +package com.opensymphony.xwork2.util; + +import com.opensymphony.xwork2.ObjectFactory; + +public class DummyObjectFactory extends ObjectFactory { + +} diff --git a/core/src/test/java/com/opensymphony/xwork2/util/ResolverUtilTest.java b/core/src/test/java/com/opensymphony/xwork2/util/ResolverUtilTest.java index b2cb3d4fd..73d81724d 100644 --- a/core/src/test/java/com/opensymphony/xwork2/util/ResolverUtilTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/util/ResolverUtilTest.java @@ -19,7 +19,6 @@ package com.opensymphony.xwork2.util; import com.opensymphony.xwork2.ObjectFactory; -import com.opensymphony.xwork2.spring.SpringObjectFactory; import junit.framework.TestCase; import java.net.URL; @@ -33,16 +32,16 @@ public class ResolverUtilTest extends TestCase { Set> impls = resolver.getClasses(); assertTrue(impls.contains(ObjectFactory.class)); - assertTrue(impls.contains(SpringObjectFactory.class)); + assertTrue(impls.contains(DummyObjectFactory.class)); } public void testMissingSomeFind() throws Exception { ResolverUtil resolver = new ResolverUtil<>(); - resolver.findImplementations(ObjectFactory.class, "com.opensymphony.xwork2.spring"); + resolver.findImplementations(ObjectFactory.class, "com.opensymphony.xwork2.util"); Set> impls = resolver.getClasses(); assertFalse(impls.contains(ObjectFactory.class)); - assertTrue(impls.contains(SpringObjectFactory.class)); + assertTrue(impls.contains(DummyObjectFactory.class)); } public void testFindNamedResource() throws Exception { diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/autowireContext.xml b/core/src/test/resources/com/opensymphony/xwork2/spring/autowireContext.xml deleted file mode 100644 index 4704c8418..000000000 --- a/core/src/test/resources/com/opensymphony/xwork2/spring/autowireContext.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/resolverApplicationContext.xml b/core/src/test/resources/com/opensymphony/xwork2/spring/resolverApplicationContext.xml deleted file mode 100644 index c955021ba..000000000 --- a/core/src/test/resources/com/opensymphony/xwork2/spring/resolverApplicationContext.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Little Foo - - - 16 - - diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml b/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml deleted file mode 100644 index c2c329355..000000000 --- a/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - @org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE - - - - - - - - - diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml index 76b7831fc..774271d41 100644 --- a/plugins/spring/pom.xml +++ b/plugins/spring/pom.xml @@ -51,6 +51,18 @@ org.springframework spring-web + + + org.springframework + spring-aspects + true + + + + org.springframework + spring-aop + true + org.springframework @@ -68,6 +80,12 @@ commons-jci-fam true + + + org.springframework + spring-context-support + true + org.easymock diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java b/plugins/spring/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java similarity index 100% rename from core/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java rename to plugins/spring/src/main/java/com/opensymphony/xwork2/spring/SpringObjectFactory.java diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java b/plugins/spring/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java similarity index 100% rename from core/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java rename to plugins/spring/src/main/java/com/opensymphony/xwork2/spring/SpringProxyableObjectFactory.java diff --git a/core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java b/plugins/spring/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java similarity index 100% rename from core/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java rename to plugins/spring/src/main/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptor.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/Foo.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/ModelDrivenAction.java similarity index 59% rename from core/src/test/java/com/opensymphony/xwork2/spring/Foo.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/ModelDrivenAction.java index 203dcdec1..fabc3ed95 100644 --- a/core/src/test/java/com/opensymphony/xwork2/spring/Foo.java +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/ModelDrivenAction.java @@ -16,30 +16,33 @@ * specific language governing permissions and limitations * under the License. */ -package com.opensymphony.xwork2.spring; +package com.opensymphony.xwork2; + /** - * @author Mike + * ModelDrivenAction + * + * @author Jason Carreira + * Created Apr 8, 2003 6:27:29 PM */ -public class Foo -{ - String name = null; - - public Foo() { - name = "not set"; - } - - public Foo(String name) { - this.name = name; - } - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } +public class ModelDrivenAction extends ActionSupport implements ModelDriven { + + private String foo; + private TestBean model = new TestBean(); + + + public void setFoo(String foo) { + this.foo = foo; + } + + public String getFoo() { + return foo; + } + + /** + * @return the model to be pushed onto the ValueStack after the Action itself + */ + public Object getModel() { + return model; + } } diff --git a/plugins/spring/src/test/java/com/opensymphony/xwork2/SimpleAction.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/SimpleAction.java new file mode 100644 index 000000000..18c8fe04b --- /dev/null +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/SimpleAction.java @@ -0,0 +1,284 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 com.opensymphony.xwork2; + +import com.opensymphony.xwork2.ActionInvocation; +import com.opensymphony.xwork2.ActionSupport; +import com.opensymphony.xwork2.Result; +import com.opensymphony.xwork2.config.Configuration; +import com.opensymphony.xwork2.inject.Inject; + +import java.util.*; + + +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ +public class SimpleAction extends ActionSupport { + + public static final String COMMAND_RETURN_CODE = "com.opensymphony.xwork2.SimpleAction.CommandInvoked"; + + + private ArrayList someList = new ArrayList<>(); + private Date date = new Date(); + private Properties settings = new Properties(); + private String blah; + private String name; + private TestBean bean = new TestBean(); + private boolean throwException; + private int bar; + private int baz; + private int foo; + private long longFoo; + private short shortFoo; + private double percentage; + private Map indexedProps = new HashMap<>(); + + private String aliasSource; + private String aliasDest; + private Map protectedMap = new HashMap<>(); + private Map existingMap = new HashMap<>(); + + private List beanList; + + public static boolean resultCalled; + + + public SimpleAction() { + resultCalled = false; + existingMap.put("existingKey", "value"); + } + + public Map getTheProtectedMap() { + return protectedMap; + } + + protected Map getTheSemiProtectedMap() { + return protectedMap; + } + + public void setExistingMap(Map map) { + this.existingMap = map; + } + + public Map getTheExistingMap() { + return existingMap; + } + + + public void setBar(int bar) { + this.bar = bar; + } + + public int getBar() { + return bar; + } + + public double getPercentage() { + return percentage; + } + + public void setPercentage(double percentage) { + this.percentage = percentage; + } + + public void setBaz(int baz) { + this.baz = baz; + } + + public int getBaz() { + return baz; + } + + public void setBean(TestBean bean) { + this.bean = bean; + } + + public TestBean getBean() { + return bean; + } + + public void setBlah(String blah) { + this.blah = blah; + } + + public String getBlah() { + return blah; + } + + public Boolean getBool(String b) { + return new Boolean(b); + } + + public boolean[] getBools() { + return new boolean[]{true, false, false, true}; + } + + public void setDate(Date date) { + this.date = date; + } + + public Date getDate() { + return date; + } + + public void setFoo(int foo) { + this.foo = foo; + } + + public int getFoo() { + return foo; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setSettings(Properties settings) { + this.settings = settings; + } + + public Properties getSettings() { + return settings; + } + + + public String getAliasDest() { + return aliasDest; + } + + public void setAliasDest(String aliasDest) { + this.aliasDest = aliasDest; + } + + public String getAliasSource() { + return aliasSource; + } + + public void setAliasSource(String aliasSource) { + this.aliasSource = aliasSource; + } + + + public void setSomeList(ArrayList someList) { + this.someList = someList; + } + + public ArrayList getSomeList() { + return someList; + } + + public String getIndexedProp(int index) { + return indexedProps.get(index); + } + + public void setIndexedProp(int index, String val) { + indexedProps.put(index, val); + } + + + public void setThrowException(boolean throwException) { + this.throwException = throwException; + } + + public String commandMethod() throws Exception { + return COMMAND_RETURN_CODE; + } + + public Result resultAction() throws Exception { + return new Result() { + public Configuration configuration; + + @Inject + public void setConfiguration(Configuration config) { + this.configuration = config; + } + public void execute(ActionInvocation invocation) throws Exception { + if (configuration != null) + resultCalled = true; + } + + }; + } + + public String exceptionMethod() throws Exception { + if (throwException) { + throw new Exception("We're supposed to throw this"); + } + + return "OK"; + } + + public String nullMethod() { + return null; + } + + @Override + public String execute() throws Exception { + if (foo == bar) { + return ERROR; + } + + baz = foo + bar; + + name = "HelloWorld"; + settings.put("foo", "bar"); + settings.put("black", "white"); + + someList.add("jack"); + someList.add("bill"); + someList.add("kerry"); + + return SUCCESS; + } + + public long getLongFoo() { + return longFoo; + } + + + public void setLongFoo(long longFoo) { + this.longFoo = longFoo; + } + + + public short getShortFoo() { + return shortFoo; + } + + + public void setShortFoo(short shortFoo) { + this.shortFoo = shortFoo; + } + + public List getBeanList() { + return beanList; + } + + public void setBeanList(List beanList) { + this.beanList = beanList; + } +} diff --git a/plugins/spring/src/test/java/com/opensymphony/xwork2/TestBean.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/TestBean.java new file mode 100644 index 000000000..8b1a8ff4c --- /dev/null +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/TestBean.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 com.opensymphony.xwork2; + +import java.util.Date; + + +/** + * TestBean + * + * @author Jason Carreira + * Created Aug 4, 2003 12:39:53 AM + */ +public class TestBean { + + private Date birth; + private String name; + private int count; + + private TestChildBean child = new TestChildBean(); + + public TestBean() { + } + + + public void setBirth(Date birth) { + this.birth = birth; + } + + public Date getBirth() { + return birth; + } + + public void setCount(int count) { + this.count = count; + } + + public int getCount() { + return count; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + + public TestChildBean getChild() { + return child; + } + + + public void setChild(TestChildBean child) { + this.child = child; + } +} diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/ExternalReferenceAction.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/TestChildBean.java similarity index 54% rename from core/src/test/java/com/opensymphony/xwork2/spring/ExternalReferenceAction.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/TestChildBean.java index 482314bc0..731fc8ca4 100644 --- a/core/src/test/java/com/opensymphony/xwork2/spring/ExternalReferenceAction.java +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/TestChildBean.java @@ -16,49 +16,50 @@ * specific language governing permissions and limitations * under the License. */ -package com.opensymphony.xwork2.spring; +package com.opensymphony.xwork2; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; -import com.opensymphony.xwork2.Action; /** - * @author Mike + * TestBean */ -public class ExternalReferenceAction implements Action -{ - private Foo foo; - private Bar bar; +public class TestChildBean { - public String execute() throws Exception { - return SUCCESS; + private Date birth; + private String name; + private int count; + + + public TestChildBean() { + Calendar cal = new GregorianCalendar(1900, 01, 01); + setBirth(cal.getTime()); } - /** - * @return Returns the foo. - */ - public Foo getFoo() { - return foo; + + public void setBirth(Date birth) { + this.birth = birth; } - /** - * @param foo - * The foo to set. - */ - public void setFoo(Foo foo) { - this.foo = foo; + public Date getBirth() { + return birth; } - /** - * @return Returns the bar. - */ - public Bar getBar() { - return bar; + public void setCount(int count) { + this.count = count; } - /** - * @param bar - * The bar to set. - */ - public void setBar(Bar bar) { - this.bar = bar; + public int getCount() { + return count; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; } } diff --git a/core/src/test/java/com/opensymphony/xwork2/TestSubBean.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/TestSubBean.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/TestSubBean.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/TestSubBean.java diff --git a/plugins/spring/src/test/java/com/opensymphony/xwork2/mock/DummyTextProvider.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/mock/DummyTextProvider.java new file mode 100644 index 000000000..01bc270a0 --- /dev/null +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/mock/DummyTextProvider.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 com.opensymphony.xwork2.mock; + +import com.opensymphony.xwork2.TextProvider; +import com.opensymphony.xwork2.util.ValueStack; + +import java.util.List; +import java.util.ResourceBundle; + +public class DummyTextProvider implements TextProvider { + @Override + public boolean hasKey(String key) { + return false; + } + + @Override + public String getText(String key) { + return null; + } + + @Override + public String getText(String key, String defaultValue) { + return null; + } + + @Override + public String getText(String key, String defaultValue, String obj) { + return null; + } + + @Override + public String getText(String key, List args) { + return null; + } + + @Override + public String getText(String key, String[] args) { + return null; + } + + @Override + public String getText(String key, String defaultValue, List args) { + return null; + } + + @Override + public String getText(String key, String defaultValue, String[] args) { + return null; + } + + @Override + public String getText(String key, String defaultValue, List args, ValueStack stack) { + return null; + } + + @Override + public String getText(String key, String defaultValue, String[] args, ValueStack stack) { + return null; + } + + @Override + public ResourceBundle getTexts(String bundleName) { + return null; + } + + @Override + public ResourceBundle getTexts() { + return null; + } +} diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/ExecuteInterceptor.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/ExecuteInterceptor.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/ExecuteInterceptor.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/ExecuteInterceptor.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java similarity index 97% rename from core/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java index d5a47036b..a7a27c9de 100644 --- a/core/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java +++ b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringObjectFactoryTest.java @@ -18,7 +18,16 @@ */ package com.opensymphony.xwork2.spring; -import com.opensymphony.xwork2.*; +import com.opensymphony.xwork2.Action; +import com.opensymphony.xwork2.ActionChainResult; +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.ModelDrivenAction; +import com.opensymphony.xwork2.ObjectFactory; +import com.opensymphony.xwork2.Result; +import com.opensymphony.xwork2.SimpleAction; +import com.opensymphony.xwork2.TestBean; +import com.opensymphony.xwork2.TextProvider; +import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.ConfigurationException; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.config.entities.InterceptorConfig; diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/SpringResult.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringResult.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/SpringResult.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/SpringResult.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/TestAspect.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/TestAspect.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/TestAspect.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/TestAspect.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java b/plugins/spring/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java similarity index 100% rename from core/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java rename to plugins/spring/src/test/java/com/opensymphony/xwork2/spring/interceptor/TestActionInvocation.java diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-spring.xml b/plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/actionContext-spring.xml similarity index 100% rename from core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-spring.xml rename to plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/actionContext-spring.xml diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml b/plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml similarity index 100% rename from core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml rename to plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/emptyContext-spring.xml b/plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/emptyContext-spring.xml similarity index 100% rename from core/src/test/resources/com/opensymphony/xwork2/spring/emptyContext-spring.xml rename to plugins/spring/src/test/resources/com/opensymphony/xwork2/spring/emptyContext-spring.xml