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