diff --git a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/AllTests.java b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/AllTests.java
index 836d292..e087325 100644
--- a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/AllTests.java
+++ b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/AllTests.java
@@ -86,8 +86,7 @@
 			System.err.println("Generating a target platform");
 			Utils.setTargetPlatform();
 		}
-		
-		
+
 		TestSuite suite = new TestSuite("Tests for org.eclipse.gmf, tooling side");
 		final SessionSetup sessionSetup = SessionSetup.newInstance();
 		final LinksSessionSetup sessionSetup2 = LinksSessionSetup.newInstance();
@@ -97,16 +96,15 @@
 		// subclassing to generate extra code
 		final SessionSetup setupEditHelpersTest = new EditHelpersTest.EditHelpersSessionSetup();
 		final SessionSetup setupBundleActivationTest = new BundleActivationTest.CustomSetup();
-		
+
 		SessionSetup.disallowSingleTestCaseUse();
-		
 
 		JavaCore.initializeAfterLoad(null);
 
 		/*
-		 * Temporary workaround: loading all the projects in the
-		 * beginning to get rid of the problems with runtime registries
-		 * reloading. In particular - ViewService.
+		 * Temporary workaround: loading all the projects in the beginning to
+		 * get rid of the problems with runtime registries reloading. In
+		 * particular - ViewService.
 		 */
 		// since we force initialization, need to make sure our tests would use same initialized setup instances. 
 		Plugin.getConfig().registerInstance(SessionSetup.class, sessionSetup);
@@ -146,10 +144,10 @@
 		suite.addTestSuite(TestDefaultMergeService.class);
 		suite.addTestSuite(PluginXMLTextMergerTest.class);
 		suite.addTestSuite(ManifestMergeTest.class);
-        suite.addTestSuite(OrganizeImportsPostprocessorTest.class);
+		suite.addTestSuite(OrganizeImportsPostprocessorTest.class);
 
 		suite.addTestSuite(EcoreGenModelMatcherTest.class);
-		suite.addTestSuite(ModelLoadHelperTest.class);		
+		suite.addTestSuite(ModelLoadHelperTest.class);
 		suite.addTest(AllMigrationTests.suite());
 		suite.addTest(AllValidateTests.suite());
 
@@ -163,14 +161,14 @@
 		suite.addTestSuite(MapModeStrategyTest.class);
 		suite.addTestSuite(ViewmapProducersTest.class);
 		suite.addTestSuite(ToolDefHandocodedImplTest.class);
-		suite.addTestSuite(AuditHandcodedTest.class);		
-		suite.addTestSuite(AuditRulesTest.class);		
+		suite.addTestSuite(AuditHandcodedTest.class);
+		suite.addTestSuite(AuditRulesTest.class);
 		suite.addTestSuite(ElementInitializerTest.class);
 		suite.addTestSuite(CodegenReconcileTest.class);
 		// though it might be an overkill to check two setups, it should be fast and won't hurt.
 		suite.addTest(feed(TestAllDerivedFeatures.class, sessionSetup, "-SessionSetup"));
 		suite.addTest(feed(TestAllDerivedFeatures.class, sessionSetup2, "-LinksSessionSetup"));
-		
+
 		suite.addTestSuite(DiagramNodeTest.class);
 		suite.addTestSuite(CompartmentPropertiesTest.class);
 		suite.addTestSuite(NamingStrategyTest.class);
@@ -189,19 +187,19 @@
 		
 		suite.addTestSuite(LinkCreationTest.class);
 		suite.addTestSuite(LinkCreationConstraintsTest.class);
-		suite.addTestSuite(MetricRulesTest.class);		
+		suite.addTestSuite(MetricRulesTest.class);
 		suite.addTestSuite(GenFeatureSeqInitializerTest.class);
 		suite.addTestSuite(GenModelGraphAnalyzerTest.class);
 		suite.addTestSuite(EditHelpersTest.class);
-		//suite.addTest(feed(ParsersTest.class, new ParsersSetup(false), "-direct"));
-		//suite.addTest(feed(ParsersTest.class, new ParsersSetup(true), "-provider"));
+		suite.addTest(feed(ParsersTest.class, new ParsersSetup(false), "-direct"));
+		suite.addTest(feed(ParsersTest.class, new ParsersSetup(true), "-provider"));
 
 		// slowest test goes last
 		suite.addTestSuite(RuntimeCompilationTest.class);
 
-
 		//$JUnit-END$
 		suite.addTest(new CleanupTest("testCleanup") {
+
 			protected void performCleanup() throws Exception {
 				sessionSetup.cleanup();
 				sessionSetup2.cleanup();
@@ -211,7 +209,7 @@
 				setupBundleActivationTest.cleanup();
 			}
 		});
-		
+
 		return suite;
 	}
 
@@ -231,7 +229,7 @@
 		c.register(GenModelTransformerSimpleTest.class, SessionSetup.class);
 		c.register(LabelMappingTransformTest.class, SessionSetup.class);
 		c.register(PaletteTransformationTest.class, SessionSetup.class);
-		c.register(AuditHandcodedTest.class, SessionSetup.class);		
+		c.register(AuditHandcodedTest.class, SessionSetup.class);
 		c.register(CodegenReconcileTest.class, SessionSetup.class);
 		// Default configuration, TestAllDerivedFeatures also runs for LinksSessionSetup 
 		c.register(TestAllDerivedFeatures.class, SessionSetup.class);
diff --git a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gef/ParsersTest.java b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gef/ParsersTest.java
index 63b8236..83efec5 100644
--- a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gef/ParsersTest.java
+++ b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/gef/ParsersTest.java
@@ -525,8 +525,11 @@
 			final PredefinedParser printfRegexParser = GMFGenFactory.eINSTANCE.createPredefinedParser();
 			printfRegexParser.setViewMethod(LabelTextAccessMethod.PRINTF);
 			printfRegexParser.setEditMethod(LabelTextAccessMethod.REGEXP);
+			
 			final CustomParser customParser = GMFGenFactory.eINSTANCE.createCustomParser();
 			customParser.setQualifiedName(diagramkin.getEditPartsPackageName() + ".MyCustomParser");
+			customParser.setGenerateBoilerplate(false); // because we will generate this class externally, see ParsersSetup#GenProjectSetup#hookExtraCodeGeneration
+			
 			final ExternalParser externalParser = GMFGenFactory.eINSTANCE.createExternalParser();
 			externalParser.setHint("\"Description\""); // value of CommonParserHint.DESCIPTION constant, 
 			// not the constant itself to manually (visually) assure (in the generated class) the hint is being used.
diff --git a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/RuntimeWorkspaceSetup.java b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/RuntimeWorkspaceSetup.java
index d9ce324..a73e74f 100644
--- a/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/RuntimeWorkspaceSetup.java
+++ b/tests/org.eclipse.gmf.tests/src/org/eclipse/gmf/tests/setup/RuntimeWorkspaceSetup.java
@@ -29,6 +29,7 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.gmf.tests.Plugin;
 import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
 
 /**
  * Running tests within PDE, we face two major problems:
@@ -79,10 +80,10 @@
 		List<String> l = Arrays.asList(Platform.getCommandLineArgs());
 		int i;
 		if ((i = l.indexOf("-dev")) != -1) {
-			isDevBinPresent = i + 1 < l.size() && l.get(i+1).startsWith("bin");
+			isDevBinPresent = i + 1 < l.size() && l.get(i + 1).startsWith("bin");
 		} else {
 			String osgiDevProp = Plugin.getBundleContext().getProperty("osgi.dev");
-			isDevBinPresent = osgiDevProp!= null && osgiDevProp.contains("bin");
+			isDevBinPresent = osgiDevProp != null && osgiDevProp.contains("bin");
 		}
 	}
 
@@ -145,13 +146,14 @@
 	/**
 	 * at least 1.4
 	 */
+	@SuppressWarnings("restriction")
 	private static void ensureJava14() {
-		if (!JavaCore.VERSION_1_4.equals(JavaCore.getOption(JavaCore.COMPILER_SOURCE))) {
+		String actual = JavaCore.getOption(JavaCore.COMPILER_SOURCE);
+		long comparableValue = CompilerOptions.versionToJdkLevel(actual);
+		if (comparableValue < CompilerOptions.versionToJdkLevel(JavaCore.VERSION_1_4)) {
 			@SuppressWarnings("unchecked")
-			Hashtable<String,String> options = JavaCore.getOptions();
-			options.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_4);
-			options.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_4);
-			options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_4);
+			Hashtable<String, String> options = JavaCore.getOptions();
+			JavaCore.setComplianceOptions(JavaCore.VERSION_1_4, options);
 			JavaCore.setOptions(options);
 		}
 	}
@@ -163,7 +165,7 @@
 		wd.setFileStateLongevity(0);
 		wd.setMaxFileStates(0);
 		wd.setMaxFileStateSize(0);
-		wd.setSnapshotInterval(60*60*1000);
+		wd.setSnapshotInterval(60 * 60 * 1000);
 	}
 
 	private static void switchAutobuildOff(IWorkspaceDescription wd) {
