diff --git a/org.springframework.testsuite/.settings/org.springframework.ide.eclipse.core.prefs b/org.springframework.testsuite/.settings/org.springframework.ide.eclipse.core.prefs
new file mode 100644
index 00000000000..af196ac0b14
--- /dev/null
+++ b/org.springframework.testsuite/.settings/org.springframework.ide.eclipse.core.prefs
@@ -0,0 +1,67 @@
+#Wed Dec 17 14:53:01 PST 2008
+eclipse.preferences.version=1
+org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
+org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true
+org.springframework.ide.eclipse.core.builders.enable.osgibundleupdater=true
+org.springframework.ide.eclipse.core.enable.project.preferences=false
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.ap.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.applicationSymbolicNameRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.applicationVersionRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleActivationPolicyRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleActivatorRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleManifestVersionRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleNameRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleSymbolicNameRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.bundleVersionRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.exportPackageRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.importRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.parsingProblemsRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.platform.ide.manifest.core.requireBundleRule-com.springsource.platform.ide.manifest.core.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.ap.quickfix.importBundleVersionRule-com.springsource.sts.ap.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.ap.quickfix.importLibraryVersionRule-com.springsource.sts.ap.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.ap.quickfix.importPackageVersionRule-com.springsource.sts.ap.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.ap.quickfix.requireBundleVersionRule-com.springsource.sts.ap.quickfix.manifestvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.RefElementRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.legacyxmlusage.jndiobjectfactory-com.springsource.sts.bestpractices.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
diff --git a/org.springframework.testsuite/.springBeans b/org.springframework.testsuite/.springBeans
new file mode 100644
index 00000000000..16e931784c6
--- /dev/null
+++ b/org.springframework.testsuite/.springBeans
@@ -0,0 +1,148 @@
+
+
- * @author Rod Johnson
- * @since 2.0
- */
-@Aspect
-public class MakeLockable {
-
- @DeclareParents(value = "org.springframework..*",
- defaultImpl=DefaultLockable.class)
- public static Lockable mixin;
-
- @Before(value="execution(void set*(*)) && this(mixin)", argNames="mixin")
- public void checkNotLocked(
- Lockable mixin) // Bind to arg
- {
- // Can also obtain the mixin (this) this way
- //Lockable mixin = (Lockable) jp.getThis();
- if (mixin.locked()) {
- throw new IllegalStateException();
- }
- }
-
-}
-
-/*
- *
- * public aspect MakeLockable {
- *
- * declare parents org....* implements Lockable;
- *
- * private boolean Lockable.locked;
-
- * public void Lockable.lock() {
- this.locked = true;
- }
-
- * public void Lockable.unlock() {
- this.locked = false;
- }
-
- * public boolean Lockable.locked() {
- return this.locked;
- }
- *
- *
- * }
- */
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/Modifiable.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/Modifiable.java
deleted file mode 100644
index 1bdfe67fe5a..00000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/Modifiable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2002-2006 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.aop.aspectj.annotation;
-
-/**
- * Used as a mixin.
- *
- * @author Rod Johnson
- */
-public interface Modifiable {
-
- boolean isModified();
-
- void acceptChanges();
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NamedPointcutWithArgs.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NamedPointcutWithArgs.java
deleted file mode 100644
index 8f80a5644c2..00000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NamedPointcutWithArgs.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.aspectj.annotation;
-
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-
-/**
- * @author Adrian Colyer
- */
-@Aspect
-public class NamedPointcutWithArgs {
-
- @Pointcut("execution(* *(..)) && args(s,..)")
- public void pointcutWithArgs(String s) {}
-
- @Around("pointcutWithArgs(aString)")
- public Object doAround(ProceedingJoinPoint pjp, String aString) throws Throwable {
- System.out.println("got '" + aString + "' at '" + pjp + "'");
- throw new IllegalArgumentException(aString);
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NotLockable.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NotLockable.java
deleted file mode 100644
index 928e006f182..00000000000
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/NotLockable.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.springframework.aop.aspectj.annotation;
-
-public class NotLockable {
-
- private int intValue;
-
- public int getIntValue() {
- return intValue;
- }
-
- public void setIntValue(int intValue) {
- this.intValue = intValue;
- }
-
-}
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdvice.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdvice.java
similarity index 89%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdvice.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdvice.java
index 402625a27d0..3a9c276888a 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdvice.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdvice.java
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package org.springframework.aop;
+package org.springframework.aop.framework.adapter;
+
+import org.springframework.aop.BeforeAdvice;
/**
* Simple BeforeAdvice for testing.
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceAdapter.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceAdapter.java
similarity index 93%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceAdapter.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceAdapter.java
index 8273435502c..abc588d9e5d 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceAdapter.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceAdapter.java
@@ -14,13 +14,14 @@
* limitations under the License.
*/
-package org.springframework.aop;
+package org.springframework.aop.framework.adapter;
import java.io.Serializable;
import org.aopalliance.aop.Advice;
import org.aopalliance.intercept.MethodInterceptor;
+import org.springframework.aop.Advisor;
import org.springframework.aop.framework.adapter.AdvisorAdapter;
/**
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceImpl.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceImpl.java
similarity index 94%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceImpl.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceImpl.java
index 83715314e74..33eae58208c 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceImpl.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.aop;
+package org.springframework.aop.framework.adapter;
/**
* @author Dmitriy Kopylenko
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceInterceptor.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceInterceptor.java
similarity index 95%
rename from org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceInterceptor.java
rename to org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceInterceptor.java
index d2056190e3e..2c60182f4d0 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/SimpleBeforeAdviceInterceptor.java
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/SimpleBeforeAdviceInterceptor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.aop;
+package org.springframework.aop.framework.adapter;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/withBPPContext.xml b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/withBPPContext.xml
index df51623facd..0aa3b46d648 100644
--- a/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/withBPPContext.xml
+++ b/org.springframework.testsuite/src/test/java/org/springframework/aop/framework/adapter/withBPPContext.xml
@@ -5,7 +5,7 @@