Bug 567150 - no hidden rules any longer

By nesting construction make sure that only one rule per test class is
instantiated. Unfortunately the code this way is not really nice.
However as long as there is no better solution this way we get rid of
some warnings and a potential source of problems regarding test
execution cleanup.

MoveInnerToTopLevelTests.java contains now a sleep to make the test run.
The reason for the need of this sleep is not known yet. It is needed
since I changed its @ClassRule to @Rule.

Change-Id: Iae3f70d853cf6703b564c218c69fccef38222d5b
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
index 0095a5b..18e86f2 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
@@ -24,7 +24,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -62,8 +61,9 @@
 
 	private static final boolean RUN_CONSTRUCTOR_TEST= true;
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public ChangeSignatureTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests.java
index dd50e17..c5a832c 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests.java
@@ -22,7 +22,6 @@
 import java.util.Collection;
 
 import org.junit.Assert;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.StringAsserts;
@@ -58,8 +57,9 @@
 		return new ChangeTypeRefactoring(cu, selectionStart, selectionLength, selectedType);
 	}
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public ChangeTypeRefactoringTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests1d7.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests1d7.java
index ba2418d..c53e620 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests1d7.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeTypeRefactoringTests1d7.java
@@ -15,7 +15,6 @@
 
 import java.util.Collection;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -24,7 +23,6 @@
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d7Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests should run on Java Dolphin 1.7 .
@@ -32,9 +30,10 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class ChangeTypeRefactoringTests1d7 extends ChangeTypeRefactoringTests {
-	@Rule
-	public RefactoringTestSetup js= new Java1d7Setup();
 
+	public ChangeTypeRefactoringTests1d7() {
+		rts= new Java1d7Setup();
+	}
 	@Override
 	protected String getTestFileName(boolean positive, boolean input) {
 		String fileName= TEST_PATH_PREFIX + getRefactoringPath();
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests.java
index c43843b..94cc44a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests.java
@@ -28,7 +28,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -48,8 +47,8 @@
 import org.eclipse.jdt.internal.corext.refactoring.code.ConvertAnonymousToNestedRefactoring;
 
 import org.eclipse.jdt.ui.tests.refactoring.infra.TextRangeUtil;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d5Setup;
+import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class ConvertAnonymousToNestedTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "ConvertAnonymousToNested/";
@@ -61,8 +60,13 @@
 		return REFACTORING_PATH;
 	}
 
-	@Rule
-	public RefactoringTestSetup js= new Java1d5Setup();
+	public ConvertAnonymousToNestedTests() {
+		this.rts= new Java1d5Setup();
+	}
+
+	protected ConvertAnonymousToNestedTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	private String getSimpleTestFileName(boolean canInline, boolean input){
 		String fileName = "A_" + getName();
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests1d8.java
index 8d0e6aa..cce6dfb 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ConvertAnonymousToNestedTests1d8.java
@@ -13,7 +13,6 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -22,7 +21,6 @@
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -32,8 +30,9 @@
 public class ConvertAnonymousToNestedTests1d8 extends ConvertAnonymousToNestedTests {
 	private static final String REFACTORING_PATH= "ConvertAnonymousToNested18/";
 
-	@Rule
-	public RefactoringTestSetup js= new Java1d8Setup();
+	public ConvertAnonymousToNestedTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/CopyPackageChangeTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/CopyPackageChangeTest.java
index b1a41f7..073d052 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/CopyPackageChangeTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/CopyPackageChangeTest.java
@@ -16,7 +16,6 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -33,8 +32,9 @@
 public class CopyPackageChangeTest extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "CopyPackageChange/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public CopyPackageChangeTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
index eb1a969..391c38f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DelegateCreatorTests.java
@@ -15,7 +15,6 @@
 
 import java.io.IOException;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -46,8 +45,9 @@
 public class DelegateCreatorTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "DelegateCreator/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public DelegateCreatorTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DocumentChangeTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DocumentChangeTest.java
index 96474dd..e5b73e8 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DocumentChangeTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/DocumentChangeTest.java
@@ -19,7 +19,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaTestPlugin;
@@ -70,8 +69,10 @@
  * @since 3.6
  */
 public class DocumentChangeTest extends GenericRefactoringTest {
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public DocumentChangeTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests.java
index 060c997..08c3bff 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests.java
@@ -25,7 +25,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -56,8 +55,13 @@
 	protected IPackageFragment fPack;
 	protected ExtractClassDescriptor fDescriptor;
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public ExtractClassTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	protected ExtractClassTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	protected IType setupType() throws Exception {
 		ICompilationUnit cu= createCUfromTestFile(getPackageP(), getCUName(), true);
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests1d8.java
index 12eb2c6..b2e8931 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractClassTests1d8.java
@@ -16,7 +16,6 @@
 import java.util.Hashtable;
 import java.util.Map;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -31,7 +30,6 @@
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.core.rules.Java1d8ProjectTestSetup;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -41,8 +39,9 @@
 public class ExtractClassTests1d8 extends ExtractClassTests {
 	private static final String REFACTORING_PATH= "ExtractClass18/";
 
-	@Rule
-	public RefactoringTestSetup rts= new Java1d8Setup();
+	public ExtractClassTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests.java
index 8e8cacc..57a48eb 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests.java
@@ -20,7 +20,6 @@
 
 import java.util.Hashtable;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -53,8 +52,13 @@
 	private String fCompactPref;
 	private boolean fAddComments;
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public ExtractConstantTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	protected ExtractConstantTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests13.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests13.java
index 9552559..6039227 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests13.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests13.java
@@ -13,20 +13,19 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java13Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class ExtractConstantTests13 extends ExtractConstantTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java13Setup();
+	public ExtractConstantTests13() {
+		super(new Java13Setup());
+	}
 
 	@Override
 	protected String getTestFileName(boolean canExtract, boolean input) {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests1d7.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests1d7.java
index 2d44662..0296c8a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests1d7.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractConstantTests1d7.java
@@ -13,14 +13,12 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d7Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests should run on Java Dolphin 1.7 .
@@ -28,8 +26,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class ExtractConstantTests1d7 extends ExtractConstantTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java1d7Setup();
+	public ExtractConstantTests1d7() {
+		super(new Java1d7Setup());
+	}
 
 	@Override
 	protected String getTestFileName(boolean canExtract, boolean input) {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractInterfaceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractInterfaceTests.java
index 4cd06e6..38ff6be 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractInterfaceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractInterfaceTests.java
@@ -21,7 +21,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -49,11 +48,12 @@
 
 public class ExtractInterfaceTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "ExtractInterface/";
-    private Hashtable<String, String> fOldOptions;
-    protected boolean fGenerateAnnotations= false;
+	private Hashtable<String, String> fOldOptions;
+	protected boolean fGenerateAnnotations= false;
 
-    @Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public ExtractInterfaceTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractSupertypeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractSupertypeTests.java
index b01588e..c535ab3 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractSupertypeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractSupertypeTests.java
@@ -19,7 +19,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -52,8 +51,10 @@
  * Note: Extract Supertype heavily relies on PullUpRefactoring and its tests
  */
 public final class ExtractSupertypeTests extends GenericRefactoringTest {
-	@Rule
-	public Java1d5Setup js= new Java1d5Setup();
+
+	public ExtractSupertypeTests() {
+		rts= new Java1d5Setup();
+	}
 
 	private static final String REFACTORING_PATH= "ExtractSupertype/";
 
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractTempTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractTempTests.java
index 5e74ab1..edf2b03 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractTempTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ExtractTempTests.java
@@ -23,7 +23,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -49,8 +48,9 @@
 
 	private String fCompactPref;
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public ExtractTempTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/GenericRefactoringTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/GenericRefactoringTest.java
index 77e484c..5148e10 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/GenericRefactoringTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/GenericRefactoringTest.java
@@ -86,8 +86,18 @@
 	protected static final Charset ENCODING= StandardCharsets.UTF_8;
 
 	@Rule
+	public RefactoringTestSetup rts;
+
+	@Rule
 	public TestName tn= new TestName();
 
+	public GenericRefactoringTest() {
+	}
+
+	public GenericRefactoringTest(RefactoringTestSetup rts) {
+		this.rts=rts;
+	}
+
 	/**
 	 * If <code>true</code> a descriptor is created from the change.
 	 * The new descriptor is then used to create the refactoring again
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InferTypeArgumentsTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InferTypeArgumentsTests.java
index 31da361..63060a6 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InferTypeArgumentsTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InferTypeArgumentsTests.java
@@ -24,7 +24,6 @@
 import java.util.Arrays;
 import java.util.zip.ZipInputStream;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -61,8 +60,9 @@
 	private boolean fAssumeCloneReturnsSameType= true;
 	private boolean fLeaveUnconstrainedRaw= true;
 
-	@Rule
-	public Java1d6Setup fgTestSetup= new Java1d6Setup();
+	public InferTypeArgumentsTests() {
+		rts= new Java1d6Setup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests.java
index 9b31a00..b85e053 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests.java
@@ -20,7 +20,6 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.Assert;
@@ -44,8 +43,13 @@
 
 	protected boolean toSucceed;
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public InlineConstantTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	InlineConstantTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d7.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d7.java
index 8caad99..0f86671 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d7.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d7.java
@@ -13,14 +13,12 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d7Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests should run on Java Dolphin 1.7 .
@@ -29,8 +27,9 @@
 @RunWith(CustomBaseRunner.class)
 public class InlineConstantTests1d7 extends InlineConstantTests {
 
-	@Rule
-	public RefactoringTestSetup rts= new Java1d7Setup();
+	public InlineConstantTests1d7() {
+		super(new Java1d7Setup());
+	}
 
 	@Override
 	protected String successPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d8.java
index a0eefc8..875dd9b 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineConstantTests1d8.java
@@ -13,14 +13,12 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -28,8 +26,10 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class InlineConstantTests1d8 extends InlineConstantTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java1d8Setup();
+
+	public InlineConstantTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Override
 	protected String successPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineTempTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineTempTests.java
index 79c1e60..82d38f1 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineTempTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/InlineTempTests.java
@@ -20,7 +20,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
@@ -43,8 +42,9 @@
 		return REFACTORING_PATH;
 	}
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public InlineTempTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	protected String getSimpleTestFileName(boolean canInline, boolean input){
 		String fileName = "A_" + getName();
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceFactoryTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceFactoryTests.java
index 7011e12..d7208db 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceFactoryTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceFactoryTests.java
@@ -25,7 +25,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -46,7 +45,6 @@
 import org.eclipse.jdt.internal.corext.refactoring.code.IntroduceFactoryRefactoring;
 
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d6Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * @author rfuhrer@watson.ibm.com
@@ -54,8 +52,9 @@
 public class IntroduceFactoryTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "IntroduceFactory/";
 
-	@Rule
-	public RefactoringTestSetup rts= new Java1d6Setup();
+	public IntroduceFactoryTests() {
+		rts= new Java1d6Setup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests.java
index df9285f..8fe0153 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests.java
@@ -20,7 +20,6 @@
 
 import java.io.IOException;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -43,8 +42,13 @@
 public class IntroduceIndirectionTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "IntroduceIndirection/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public IntroduceIndirectionTests() {
+		rts= new RefactoringTestSetup();
+	}
+
+	protected IntroduceIndirectionTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d7.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d7.java
index 09ca285..7a0764e 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d7.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d7.java
@@ -14,14 +14,12 @@
 
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d7Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests should run on Java Dolphin 1.7 .
@@ -29,10 +27,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class IntroduceIndirectionTests1d7 extends IntroduceIndirectionTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java1d7Setup();
-
-// ---
+	public IntroduceIndirectionTests1d7() {
+		super(new Java1d7Setup());
+	}
 
 	@Test
 	public void test17_32() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d8.java
index 655da22..176684a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceIndirectionTests1d8.java
@@ -14,14 +14,12 @@
 
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -29,10 +27,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class IntroduceIndirectionTests1d8 extends IntroduceIndirectionTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java1d8Setup();
-
-// ---
+	public IntroduceIndirectionTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Test
 	public void test18_01() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests.java
index 8020bcc..acf2e56 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests.java
@@ -22,7 +22,6 @@
 import java.util.Hashtable;
 import java.util.Map;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -54,12 +53,17 @@
 	private static final String DEFAULT_SUB_DIR= "sub";
 	private static final String REFACTORING_PATH= "IntroduceParameterObject/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
-
 	private IPackageFragment fPack;
 	protected IntroduceParameterObjectDescriptor fDescriptor;
 
+	public IntroduceParameterObjectTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	protected IntroduceParameterObjectTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
+
 	private void checkAdditionalFile(String subdir, String fileName) throws Exception, JavaModelException, IOException {
 		IPackageFragment pack= getSubPackage(subdir);
 		ICompilationUnit cu= pack.getCompilationUnit(fileName+".java");
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests1d8.java
index 43e8337..1477cff 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterObjectTests1d8.java
@@ -16,7 +16,6 @@
 import java.util.Hashtable;
 import java.util.Map;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -31,7 +30,6 @@
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.core.rules.Java1d8ProjectTestSetup;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -41,8 +39,9 @@
 public class IntroduceParameterObjectTests1d8 extends IntroduceParameterObjectTests {
 	private static final String REFACTORING_PATH= "IntroduceParameterObject18/";
 
-	@Rule
-	public RefactoringTestSetup rts= new Java1d8Setup();
+	public IntroduceParameterObjectTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests.java
index decc8df..f98c7cc 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests.java
@@ -37,7 +37,15 @@
 	private static final String SLASH_OUT= "/out";
 
 	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public RefactoringTestSetup rts;
+
+	public IntroduceParameterTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	protected IntroduceParameterTests(RefactoringTestSetup rts) {
+		this.rts= rts;
+	}
 
 	@Override
 	protected String getResourceLocation() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests1d7.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests1d7.java
index 9cf8a4e..136a006 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests1d7.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/IntroduceParameterTests1d7.java
@@ -14,14 +14,12 @@
 
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d7Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests should run on Java Dolphin 1.7 .
@@ -29,10 +27,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class IntroduceParameterTests1d7 extends IntroduceParameterTests {
-	@Rule
-	public RefactoringTestSetup rts= new Java1d7Setup();
-
-// ---
+	public IntroduceParameterTests1d7() {
+		super(new Java1d7Setup());
+	}
 
 	@Test
 	public void testSimple17_Catch1() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInitializerTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInitializerTests.java
index 82323b9..58cb65f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInitializerTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInitializerTests.java
@@ -17,7 +17,6 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.resources.IResource;
@@ -42,8 +41,9 @@
 public class MoveInitializerTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "MoveInitializer/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public MoveInitializerTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToNewTests14.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToNewTests14.java
index 8ca958b..7fab934 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToNewTests14.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToNewTests14.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -33,15 +32,15 @@
 import org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring;
 
 import org.eclipse.jdt.ui.tests.refactoring.rules.JavaPreviewSetup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
 
 public class MoveInnerToNewTests14 extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "MoveInnerToNew14/";
 
-	@Rule
-	public RefactoringTestSetup fts= new JavaPreviewSetup();
+	public MoveInnerToNewTests14() {
+		rts= new JavaPreviewSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java
index e0664d6..8e1576a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInnerToTopLevelTests.java
@@ -24,7 +24,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.ClassRule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -46,7 +45,6 @@
 
 import org.eclipse.jdt.ui.tests.refactoring.infra.TextRangeUtil;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d5Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
 
@@ -60,8 +58,9 @@
 
 	private String fCompactPref;
 
-	@ClassRule
-	public static RefactoringTestSetup fts= new Java1d5Setup();
+	public MoveInnerToTopLevelTests() {
+		rts= new Java1d5Setup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
@@ -160,6 +159,7 @@
 
 	private void validateFailingTest(String parentClassName, String className, String[] cuNames, String[] packageNames, String enclosingInstanceName, int expectedSeverity) throws Exception {
 		IType parentClas= getClassFromTestFile(getPackageP(), parentClassName);
+		Thread.sleep(800); // its magic..
 		IType clas= parentClas.getType(className);
 
 		MoveInnerToTopRefactoring ref= ((RefactoringAvailabilityTester.isMoveInnerAvailable(clas)) ? new MoveInnerToTopRefactoring(clas, JavaPreferencesSettings.getCodeGenerationSettings(clas.getJavaProject())) : null);
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
index b8613f9..c96c18d 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests.java
@@ -21,7 +21,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.Assert;
@@ -53,6 +52,14 @@
 
 	private static final String REFACTORING_PATH= "MoveInstanceMethod/";
 
+	public MoveInstanceMethodTests() {
+		this.rts= new Java1d5Setup();
+	}
+
+	protected MoveInstanceMethodTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
+
 	public static void chooseNewTarget(MoveInstanceMethodProcessor processor, int newTargetType, String newTargetName) {
 		IVariableBinding target= null;
 		for (IVariableBinding candidate : processor.getPossibleTargets()) {
@@ -72,8 +79,6 @@
 		return (IMethod) jes[0];
 	}
 
-	@Rule
-	public RefactoringTestSetup fts= new Java1d5Setup();
 
 	private static boolean typeMatches(int newTargetType, IVariableBinding newTarget) {
 		return newTargetType == PARAMETER && !newTarget.isField() || newTargetType == FIELD && newTarget.isField();
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests1d8.java
index 73f48e0..89a6449 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveInstanceMethodTests1d8.java
@@ -16,7 +16,6 @@
 import java.util.Hashtable;
 import java.util.Map;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -31,7 +30,6 @@
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.core.rules.Java1d8ProjectTestSetup;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -39,9 +37,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class MoveInstanceMethodTests1d8 extends MoveInstanceMethodTests {
-	@Rule
-	public RefactoringTestSetup fts= new Java1d8Setup();
-
+	public MoveInstanceMethodTests1d8() {
+		super(new Java1d8Setup());
+	}
 	// test for bug 410056, move default method from interface to class
 	@Test
 	public void test18_1() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests.java
index aeae628..6c7e7a5 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests.java
@@ -17,7 +17,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
@@ -45,8 +44,13 @@
 public class MoveMembersTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "MoveMembers/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public MoveMembersTests() {
+		rts= new RefactoringTestSetup();
+	}
+
+	protected MoveMembersTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests1d8.java
index 96c4a0f..bdeff38 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveMembersTests1d8.java
@@ -13,14 +13,12 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -28,9 +26,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class MoveMembersTests1d8 extends MoveMembersTests {
-	@SuppressWarnings("hiding")
-	@Rule
-	public RefactoringTestSetup fts= new Java1d8Setup();
+	public MoveMembersTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Test
 	public void test18_1() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveRenameResourceChangeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveRenameResourceChangeTests.java
index bad5e42..1acd91d 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveRenameResourceChangeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/MoveRenameResourceChangeTests.java
@@ -19,7 +19,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -39,8 +38,10 @@
 import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class MoveRenameResourceChangeTests extends GenericRefactoringTest {
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public MoveRenameResourceChangeTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Test
 	public void testFile0() throws Exception{
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests.java
index 1d23890..040263f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests.java
@@ -19,7 +19,6 @@
 
 import java.util.Hashtable;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -41,10 +40,15 @@
 public class PromoteTempToFieldTests extends GenericRefactoringTest{
 	private static final boolean BUG_39363= true;
 	private static final String REFACTORING_PATH= "PromoteTempToField/";
-    private String fCompactPref;
+	private String fCompactPref;
 
-    @Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public PromoteTempToFieldTests() {
+		this.rts= new RefactoringTestSetup();
+	}
+
+	protected PromoteTempToFieldTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests1d8.java
index 1fe3a8e..2409121 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PromoteTempToFieldTests1d8.java
@@ -13,7 +13,6 @@
  *******************************************************************************/
 package org.eclipse.jdt.ui.tests.refactoring;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -26,7 +25,6 @@
 import org.eclipse.jdt.ui.tests.CustomBaseRunner;
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 /**
  * Those tests are made to run on Java Spider 1.8 .
@@ -34,9 +32,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class PromoteTempToFieldTests1d8 extends PromoteTempToFieldTests {
-	@SuppressWarnings("hiding")
-	@Rule
-	public RefactoringTestSetup fts= new Java1d8Setup();
+	public PromoteTempToFieldTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Test
 	public void testFailInterfaceMethods1() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests.java
index ae17ae9..70d5b4a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests.java
@@ -22,7 +22,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -59,8 +58,13 @@
 
 	private static final String REFACTORING_PATH= "PullUp/";
 
-	@Rule
-	public RefactoringTestSetup fts= new Java1d5Setup();
+	public PullUpTests() {
+		this.rts= new Java1d5Setup();
+	}
+
+	protected PullUpTests(RefactoringTestSetup rts) {
+		super(rts);
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests1d8.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests1d8.java
index 1d856d9..4fc2c7c 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests1d8.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PullUpTests1d8.java
@@ -18,7 +18,6 @@
 
 import java.util.Hashtable;
 
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -46,7 +45,6 @@
 import org.eclipse.jdt.ui.tests.IgnoreInheritedTests;
 import org.eclipse.jdt.ui.tests.core.rules.Java1d8ProjectTestSetup;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d8Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 import org.eclipse.jdt.internal.ui.JavaPlugin;
 
@@ -56,9 +54,9 @@
 @IgnoreInheritedTests
 @RunWith(CustomBaseRunner.class)
 public class PullUpTests1d8 extends PullUpTests {
-	@SuppressWarnings("hiding")
-	@Rule
-	public RefactoringTestSetup fts= new Java1d8Setup();
+	public PullUpTests1d8() {
+		super(new Java1d8Setup());
+	}
 
 	@Test
 	public void test18_1() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PushDownTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PushDownTests.java
index 81c0044..1f2b634 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PushDownTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/PushDownTests.java
@@ -21,7 +21,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -43,13 +42,13 @@
 import org.eclipse.jdt.internal.corext.refactoring.structure.PushDownRefactoringProcessor.MemberActionInfo;
 
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d5Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class PushDownTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "PushDown/";
 
-	@Rule
-	public RefactoringTestSetup fts= new Java1d5Setup();
+	public PushDownTests() {
+		rts= new Java1d5Setup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RefactoringScannerTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RefactoringScannerTests.java
index 18e7cce..68e4295 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RefactoringScannerTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RefactoringScannerTests.java
@@ -18,7 +18,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.internal.corext.refactoring.rename.RefactoringScanner;
@@ -37,9 +36,9 @@
 		}
 	}
 
-
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RefactoringScannerTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	private RefactoringScanner fScanner;
 
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameJavaProjectTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameJavaProjectTests.java
index 25b3958..26b3b17 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameJavaProjectTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameJavaProjectTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -42,8 +41,10 @@
 import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class RenameJavaProjectTests extends GenericRefactoringTest {
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public RenameJavaProjectTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodInInterfaceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodInInterfaceTests.java
index fc6d979..2c2085e 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodInInterfaceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodInInterfaceTests.java
@@ -19,7 +19,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -45,8 +44,9 @@
 	private static final String REFACTORING_PATH= "RenameMethodInInterface/";
 	private static final String[] NO_ARGUMENTS= new String[0];
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameMethodInInterfaceTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameNonPrivateFieldTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameNonPrivateFieldTests.java
index 5f631a5..ca91430 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameNonPrivateFieldTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameNonPrivateFieldTests.java
@@ -24,7 +24,6 @@
 import java.util.Hashtable;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -66,8 +65,9 @@
 	private boolean fRenameGetter= false;
 	private boolean fRenameSetter= false;
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameNonPrivateFieldTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java
index 030210e..d8881db 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java
@@ -35,7 +35,6 @@
 import java.util.zip.ZipInputStream;
 
 import org.junit.Assert;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -92,7 +91,6 @@
 import org.eclipse.jdt.ui.tests.refactoring.infra.DebugUtils;
 import org.eclipse.jdt.ui.tests.refactoring.infra.ZipTools;
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d5Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 import org.eclipse.jdt.internal.ui.util.CoreUtility;
 
@@ -108,8 +106,9 @@
 	private String fQualifiedNamesFilePatterns;
 	private boolean fRenameSubpackages;
 
-	@Rule
-	public RefactoringTestSetup fts= new Java1d5Setup();
+	public RenamePackageTests() {
+		rts= new Java1d5Setup();
+	}
 
 //	public void run(TestResult result) {
 //		System.out.println("--- " + getName() + " - RenamePackageTests ---");
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameParametersTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameParametersTests.java
index 56c00b8..08831ce 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameParametersTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameParametersTests.java
@@ -21,7 +21,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.ltk.core.refactoring.Refactoring;
@@ -42,8 +41,9 @@
 public class RenameParametersTests extends GenericRefactoringTest{
 	private static final String REFACTORING_PATH= "RenameParameters/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameParametersTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateFieldTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateFieldTests.java
index 6f4b081..3f58c28 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateFieldTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateFieldTests.java
@@ -23,7 +23,6 @@
 import java.util.Hashtable;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -53,8 +52,10 @@
 	private static final boolean BUG_81084= true;
 
 	private String fPrefixPref;
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public RenamePrivateFieldTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateMethodTests.java
index d53ff4b..fad4cfc 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateMethodTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePrivateMethodTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -40,8 +39,9 @@
 public class RenamePrivateMethodTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "RenamePrivateMethod/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenamePrivateMethodTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameRecordElementsTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameRecordElementsTests.java
index 3926df4..706f7c9 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameRecordElementsTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameRecordElementsTests.java
@@ -23,7 +23,6 @@
 import java.util.Hashtable;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -47,14 +46,15 @@
 import org.eclipse.jdt.internal.corext.refactoring.rename.RenameFieldProcessor;
 
 import org.eclipse.jdt.ui.tests.refactoring.rules.JavaPreviewSetup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class RenameRecordElementsTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "RenameRecordElements/";
 
 	private String fPrefixPref;
-	@Rule
-	public RefactoringTestSetup fts= new JavaPreviewSetup();
+
+	public RenameRecordElementsTests() {
+		rts= new JavaPreviewSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameResourceChangeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameResourceChangeTests.java
index c13ff0f..a368037 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameResourceChangeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameResourceChangeTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -38,8 +37,10 @@
 import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class RenameResourceChangeTests extends GenericRefactoringTest {
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public RenameResourceChangeTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Test
 	public void testFile0() throws Exception{
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameSourceFolderChangeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameSourceFolderChangeTests.java
index 9d47ee0..808b7bf 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameSourceFolderChangeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameSourceFolderChangeTests.java
@@ -17,7 +17,6 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -36,8 +35,10 @@
 import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class RenameSourceFolderChangeTests extends GenericRefactoringTest {
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+
+	public RenameSourceFolderChangeTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Test
 	public void test0() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameStaticMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameStaticMethodTests.java
index d01231c..2dad71a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameStaticMethodTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameStaticMethodTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -43,8 +42,9 @@
 
 	private static final boolean BUG_83332_SPLIT_SINGLE_IMPORT= true;
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameStaticMethodTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTempTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTempTests.java
index 89b46b3..fc4b614 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTempTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTempTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.ltk.core.refactoring.Refactoring;
@@ -44,8 +43,9 @@
 
 	private static final String REFACTORING_PATH= "RenameTemp/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameTempTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests18.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests18.java
index 63a8918..7958107 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests18.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests18.java
@@ -63,7 +63,7 @@
 	private static final String REFACTORING_PATH= "RenameTests18/";
 
 	@Rule
-	public RefactoringTestSetup fts= new Java1d8Setup() {
+	public RefactoringTestSetup rts= new Java1d8Setup() {
 		@Override
 		public void before() throws Exception {
 			JavaProjectHelper.PERFORM_DUMMY_SEARCH++;
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeParameterTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeParameterTests.java
index c7b7412..8b51dc3 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeParameterTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeParameterTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -35,14 +34,14 @@
 import org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeParameterProcessor;
 
 import org.eclipse.jdt.ui.tests.refactoring.rules.Java1d5Setup;
-import org.eclipse.jdt.ui.tests.refactoring.rules.RefactoringTestSetup;
 
 public class RenameTypeParameterTests extends GenericRefactoringTest {
 
 	private static final String REFACTORING_PATH= "RenameTypeParameter/";
 
-	@Rule
-	public RefactoringTestSetup fts= new Java1d5Setup();
+	public RenameTypeParameterTests() {
+		rts= new Java1d5Setup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeTests.java
index 4e9c13c..61b46bf 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTypeTests.java
@@ -26,7 +26,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.CoreException;
@@ -71,8 +70,9 @@
 	private static final boolean BUG_54948= false;
 	private static final String REFACTORING_PATH= "RenameType/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameTypeTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameVirtualMethodInClassTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameVirtualMethodInClassTests.java
index 1b973f7..72ef50f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameVirtualMethodInClassTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameVirtualMethodInClassTests.java
@@ -19,7 +19,6 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -48,8 +47,9 @@
 
 	private static final boolean BUG_83217_IMPLICIT_ENUM_METHODS= true;
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public RenameVirtualMethodInClassTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath(){
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UndoManagerTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UndoManagerTests.java
index 9b2e3ea..934c7c4 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UndoManagerTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UndoManagerTests.java
@@ -17,7 +17,6 @@
 import static org.junit.Assert.assertTrue;
 
 import org.junit.After;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.NullProgressMonitor;
@@ -30,8 +29,9 @@
 
 public class UndoManagerTests extends GenericRefactoringTest {
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public UndoManagerTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	private void checkState(boolean undo, boolean redo, int undoCount, int redoCount){
 		checkState(0, undo, redo, undoCount, redoCount);
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UseSupertypeWherePossibleTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UseSupertypeWherePossibleTests.java
index d33859b..b470941 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UseSupertypeWherePossibleTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/UseSupertypeWherePossibleTests.java
@@ -18,7 +18,6 @@
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -41,8 +40,9 @@
 
 	private static final String REFACTORING_PATH= "UseSupertypeWherePossible/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public UseSupertypeWherePossibleTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ValidateEditTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ValidateEditTests.java
index 8826278..12e4f5e 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ValidateEditTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ValidateEditTests.java
@@ -21,7 +21,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.team.core.RepositoryProvider;
@@ -59,8 +58,9 @@
 
 public class ValidateEditTests extends GenericRefactoringTest {
 
-	@Rule
-	public Java1d5Setup fgTestSetup= new Java1d5Setup();
+	public ValidateEditTests() {
+		rts= new Java1d5Setup();
+	}
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/GoToNextPreviousMemberActionTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/GoToNextPreviousMemberActionTests.java
index 7747698..d610c31 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/GoToNextPreviousMemberActionTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/GoToNextPreviousMemberActionTests.java
@@ -15,7 +15,6 @@
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.core.ICompilationUnit;
@@ -30,8 +29,9 @@
 public class GoToNextPreviousMemberActionTests extends GenericRefactoringTest{
 	private static final String REFACTORING_PATH= "GoToNextPreviousMemberAction/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public GoToNextPreviousMemberActionTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/StructureSelectionActionTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/StructureSelectionActionTests.java
index 72ff569..c883a63 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/StructureSelectionActionTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/StructureSelectionActionTests.java
@@ -17,7 +17,6 @@
 
 import java.io.IOException;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.core.ICompilationUnit;
@@ -38,8 +37,9 @@
 public class StructureSelectionActionTests extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "StructureSelectionAction/";
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public StructureSelectionActionTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyResourcesToClipboardActionTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyResourcesToClipboardActionTest.java
index 54beece..4d0857d 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyResourcesToClipboardActionTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyResourcesToClipboardActionTest.java
@@ -18,7 +18,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.swt.dnd.Clipboard;
@@ -39,8 +38,10 @@
 import org.eclipse.jdt.internal.ui.refactoring.reorg.CopyToClipboardAction;
 
 public class CopyResourcesToClipboardActionTest extends GenericRefactoringTest{
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+
+	public CopyResourcesToClipboardActionTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	private ICompilationUnit fCuA;
 	private ICompilationUnit fCuB;
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyTest.java
index 7f87276..586efd3 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyTest.java
@@ -22,7 +22,6 @@
 
 import java.io.IOException;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -83,8 +82,9 @@
 public class CopyTest extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "Copy/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public CopyTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyToClipboardActionTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyToClipboardActionTest.java
index f245ebe..b27502e 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyToClipboardActionTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/CopyToClipboardActionTest.java
@@ -21,7 +21,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.swt.dnd.Clipboard;
@@ -75,8 +74,9 @@
 	private IFile faTxt;
 	private IFolder fOlder;
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public CopyToClipboardActionTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/DeleteTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/DeleteTest.java
index 4e25f3f..dd1f84d 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/DeleteTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/DeleteTest.java
@@ -26,7 +26,6 @@
 
 import org.junit.Before;
 import org.junit.FixMethodOrder;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runners.MethodSorters;
 
@@ -76,8 +75,9 @@
 	private static final boolean BUG_55221= true;
 	private static final String REFACTORING_PATH= "Delete/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public DeleteTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MoveTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MoveTest.java
index 578b35a..8404625 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MoveTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MoveTest.java
@@ -22,7 +22,6 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -162,8 +161,9 @@
 
 	private static final String REFACTORING_PATH= "Move/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public MoveTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MultiMoveTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MultiMoveTest.java
index 44f1b71..6cdf35f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MultiMoveTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/MultiMoveTest.java
@@ -16,7 +16,6 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.testplugin.JavaProjectHelper;
@@ -51,8 +50,9 @@
 public class MultiMoveTest extends GenericRefactoringTest {
 	private static final String REFACTORING_PATH= "MultiMove/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public MultiMoveTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	public void genericbefore() throws Exception {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/PasteActionTest.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/PasteActionTest.java
index 3618722..d2dd5ad 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/PasteActionTest.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/PasteActionTest.java
@@ -21,7 +21,6 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.swt.SWTError;
@@ -65,8 +64,9 @@
 	private Clipboard fClipboard;
 	private static final String REFACTORING_PATH= "Paste/";
 
-	@Rule
-	public RefactoringTestSetup fts= new RefactoringTestSetup();
+	public PasteActionTest() {
+		rts= new RefactoringTestSetup();
+	}
 
 	@Override
 	protected String getRefactoringPath() {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/TypeConstraintTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/TypeConstraintTests.java
index a15a637..1501cc1 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/TypeConstraintTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/TypeConstraintTests.java
@@ -21,7 +21,6 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.junit.Rule;
 import org.junit.Test;
 
 import org.eclipse.jdt.core.ICompilationUnit;
@@ -50,8 +49,9 @@
 		return PATH;
 	}
 
-	@Rule
-	public RefactoringTestSetup rts= new RefactoringTestSetup();
+	public TypeConstraintTests() {
+		rts= new RefactoringTestSetup();
+	}
 
 	private String getSimpleTestFileName(){
 		return "A_" + tn.getMethodName() + ".java";