[jbosstools-commits] JBoss Tools SVN: r43321 - in trunk: as/features/org.jboss.ide.eclipse.as.feature and 37 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Aug 30 06:39:06 EDT 2012


Author: rob.stryker at jboss.com
Date: 2012-08-30 06:39:06 -0400 (Thu, 30 Aug 2012)
New Revision: 43321

Added:
   trunk/as/features/org.jboss.tools.runtime.as.detector.feature/
   trunk/as/plugins/org.jboss.tools.runtime.as.detector/
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/handlers/
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/handlers/TestHandler1.java
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionFrameworkTest.java
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeTestActivator.java
   trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/
   trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.classpath
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.project
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.settings/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.settings/org.eclipse.jdt.core.prefs
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/META-INF/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/META-INF/MANIFEST.MF
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/bin/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/build.properties
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.properties
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.xml
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/pom.xml
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/IRuntimeDetectionConstants.java
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionAllTests.java
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionTest.java
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectorTestActivator.java
   trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/target/
Removed:
   trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/
   trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/
   trunk/runtime/plugins/org.jboss.tools.runtime.as.detector/
   trunk/runtime/plugins/org.jboss.tools.runtime.seam.detector/
Modified:
   trunk/as/features/org.jboss.ide.eclipse.as.feature/feature.xml
   trunk/as/features/org.jboss.tools.runtime.as.detector.feature/feature.xml
   trunk/as/features/org.jboss.tools.runtime.as.detector.feature/pom.xml
   trunk/as/features/pom.xml
   trunk/as/plugins/org.jboss.tools.runtime.as.detector/META-INF/MANIFEST.MF
   trunk/as/plugins/org.jboss.tools.runtime.as.detector/about.html
   trunk/as/plugins/org.jboss.tools.runtime.as.detector/pom.xml
   trunk/as/plugins/pom.xml
   trunk/as/site/category.xml
   trunk/build/pom.xml
   trunk/runtime/features/org.jboss.tools.runtime.test.feature/feature.xml
   trunk/runtime/features/pom.xml
   trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/JBossRuntimeLocator.java
   trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/RuntimeCoreActivator.java
   trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/AbstractRuntimeDetector.java
   trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/IRuntimeDetector.java
   trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/JBossRuntimeStartup.java
   trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/preferences/RuntimePreferencePage.java
   trunk/runtime/plugins/pom.xml
   trunk/runtime/site/category.xml
   trunk/runtime/tests/org.jboss.tools.runtime.test/META-INF/MANIFEST.MF
   trunk/runtime/tests/org.jboss.tools.runtime.test/plugin.xml
   trunk/runtime/tests/org.jboss.tools.runtime.test/pom.xml
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionAllTests.java
   trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionTest.java
   trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/feature.xml
   trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/pom.xml
   trunk/seam/features/pom.xml
   trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/META-INF/MANIFEST.MF
   trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/pom.xml
   trunk/seam/plugins/pom.xml
   trunk/seam/site/category.xml
   trunk/seam/tests/pom.xml
Log:
https://issues.jboss.org/browse/JBIDE-12447 runtime pushdown big change

Modified: trunk/as/features/org.jboss.ide.eclipse.as.feature/feature.xml
===================================================================
--- trunk/as/features/org.jboss.ide.eclipse.as.feature/feature.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/as/features/org.jboss.ide.eclipse.as.feature/feature.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -39,6 +39,9 @@
    <includes
          id="org.jboss.ide.eclipse.as.serverAdapter.wtp.feature"
          version="0.0.0"/>
+   <includes
+         id="org.jboss.tools.runtime.as.detector.feature"
+         version="0.0.0"/>
 
    <requires>
       <import plugin="org.eclipse.ui" version="3.7.0" match="greaterOrEqual"/>
@@ -78,6 +81,7 @@
       <import plugin="org.eclipse.jst.common.frameworks" version="1.1.500" match="greaterOrEqual"/>
       <import feature="org.jboss.ide.eclipse.archives.feature"/>
       <import feature="org.jboss.tools.jmx.feature"/>
+      <import feature="org.jboss.tools.runtime.core.feature"/>
    </requires>
 
    <plugin

Modified: trunk/as/features/org.jboss.tools.runtime.as.detector.feature/feature.xml
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/feature.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/as/features/org.jboss.tools.runtime.as.detector.feature/feature.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -2,7 +2,7 @@
 <feature
       id="org.jboss.tools.runtime.as.detector.feature"
       label="%featureName"
-      version="1.4.0.qualifier"
+      version="2.4.0.qualifier"
       provider-name="%providerName"
       plugin="org.jboss.tools.runtime.as.detector">
 

Modified: trunk/as/features/org.jboss.tools.runtime.as.detector.feature/pom.xml
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.as.detector.feature/pom.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/as/features/org.jboss.tools.runtime.as.detector.feature/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,11 +3,11 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
-		<groupId>org.jboss.tools.runtime</groupId>
+		<groupId>org.jboss.tools.as</groupId>
 		<artifactId>features</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
+		<version>2.4.0-SNAPSHOT</version>
 	</parent>
-	<groupId>org.jboss.tools.runtime.features</groupId>
+	<groupId>org.jboss.tools.as.features</groupId>
 	<artifactId>org.jboss.tools.runtime.as.detector.feature</artifactId>
 	
 	<packaging>eclipse-feature</packaging>
@@ -44,4 +44,4 @@
 			</plugin>
 		</plugins>
 	</build>
-</project>
\ No newline at end of file
+</project>

Modified: trunk/as/features/pom.xml
===================================================================
--- trunk/as/features/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/as/features/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -19,7 +19,7 @@
 
 		<module>org.jboss.ide.eclipse.as.feature</module>
 		<module>org.jboss.ide.eclipse.as.test.feature</module>
-
+		<module>org.jboss.tools.runtime.as.detector.feature</module>
 	</modules>
 </project>
 	

Modified: trunk/as/plugins/org.jboss.tools.runtime.as.detector/META-INF/MANIFEST.MF
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.as.detector/META-INF/MANIFEST.MF	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/as/plugins/org.jboss.tools.runtime.as.detector/META-INF/MANIFEST.MF	2012-08-30 10:39:06 UTC (rev 43321)
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %BundleName
 Bundle-SymbolicName: org.jboss.tools.runtime.as.detector;singleton:=true
-Bundle-Version: 1.4.0.qualifier
+Bundle-Version: 2.4.0.qualifier
 Bundle-Activator: org.jboss.tools.runtime.as.detector.RuntimeAsActivator
 Require-Bundle: org.eclipse.ui;bundle-version="3.7.0",
  org.eclipse.core.runtime;bundle-version="3.7.0",

Modified: trunk/as/plugins/org.jboss.tools.runtime.as.detector/about.html
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.as.detector/about.html	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/as/plugins/org.jboss.tools.runtime.as.detector/about.html	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>JBoss Runtime Detection</title>
+<title>JBoss Runtime Application Server Detection</title>
 <style type="text/css" media="screen">
 <!--
   body {

Modified: trunk/as/plugins/org.jboss.tools.runtime.as.detector/pom.xml
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.as.detector/pom.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/as/plugins/org.jboss.tools.runtime.as.detector/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,12 +3,12 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
-		<groupId>org.jboss.tools.runtime</groupId>
+		<groupId>org.jboss.tools.as</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
+		<version>2.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>org.jboss.tools.runtime.plugins</groupId>
 	<artifactId>org.jboss.tools.runtime.as.detector</artifactId>
 	
 	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
+</project>

Modified: trunk/as/plugins/pom.xml
===================================================================
--- trunk/as/plugins/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/as/plugins/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -24,8 +24,9 @@
 		<module>org.jboss.ide.eclipse.as.rse.core</module>
 		<module>org.jboss.ide.eclipse.as.rse.ui</module>
 		<module>org.jboss.ide.eclipse.as.jmx.integration</module>
-        <module>org.jboss.ide.eclipse.as.management.core</module>
-        <module>org.jboss.ide.eclipse.as.management.as71</module>
+		<module>org.jboss.ide.eclipse.as.management.core</module>
+		<module>org.jboss.ide.eclipse.as.management.as71</module>
+		<module>org.jboss.tools.runtime.as.detector</module>
 	</modules>
 </project>
 	

Modified: trunk/as/site/category.xml
===================================================================
--- trunk/as/site/category.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/as/site/category.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -11,6 +11,14 @@
 	<feature url="features/org.jboss.ide.eclipse.as.feature.source_0.0.0.jar" id="org.jboss.ide.eclipse.as.feature.source" version="0.0.0">
 		<category name="JBoss Tools as Nightly Build Update Site" />
 	</feature>
+
+	<feature url="features/org.jboss.tools.runtime.as.detector.feature_0.0.0.jar" id="org.jboss.tools.runtime.as.detector.feature" version="0.0.0">
+		<category name="JBoss Tools as Nightly Build Update Site" />
+	</feature>
+	<feature url="features/org.jboss.tools.runtime.as.detector.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.as.detector.feature.source" version="0.0.0">
+		<category name="JBoss Tools as Nightly Build Update Site" />
+	</feature>
+
 	<feature url="features/org.jboss.ide.eclipse.as.test.feature_0.0.0.jar" id="org.jboss.ide.eclipse.as.test.feature" version="0.0.0">
 		<category name="JBoss Tools as Nightly Build Update Site" />
 	</feature>

Modified: trunk/build/pom.xml
===================================================================
--- trunk/build/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/build/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -109,6 +109,7 @@
 			<modules>
 				<module>../tests</module>
 				<module>../common</module>
+                                <module>../runtime</module>
 				<module>../archives</module>
 				<module>../jmx</module>
 				<module>../as</module>
@@ -417,6 +418,7 @@
 				<module>../as</module>
 				<module>../hibernatetools</module>
 				<module>../common</module>
+				<module>../runtime</module>
 				<module>../jst</module>
 				<module>../xulrunner</module>
 				<module>../vpe</module>
@@ -441,6 +443,7 @@
 			<modules>
 				<module>../tests</module>
 				<module>../common</module>
+                                <module>../runtime</module>
 				<module>../jmx</module>
 				<module>../archives</module>
 				<module>../portlet</module>
@@ -452,7 +455,6 @@
 				<module>../jst</module>
 				<module>../as</module>
 				<module>../usage</module>
-				<module>../runtime</module>
 				<module>../examples</module>
 			</modules>
 		</profile>
@@ -476,9 +478,9 @@
 				<module>../as</module>
 				<module>../hibernatetools</module>
 				<module>../common</module>
+                                <module>../runtime</module>
 				<module>../examples</module>
 				<module>../portlet</module>
-				<module>../runtime</module>
 				<module>../jst</module>
 				<module>../xulrunner</module>
 				<module>../vpe</module>
@@ -571,15 +573,6 @@
 			<modules>
 				<module>../tests</module>
 				<module>../common</module>
-				<module>../jmx</module>
-				<module>../archives</module>
-				<module>../as</module>
-				<module>../hibernatetools</module>
-				<module>../jst</module>
-				<module>../xulrunner</module>
-				<module>../vpe</module>
-				<module>../jsf</module>
-				<module>../seam</module>
 				<module>../usage</module>
 				<module>../runtime</module>
 			</modules>

Modified: trunk/runtime/features/org.jboss.tools.runtime.test.feature/feature.xml
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.test.feature/feature.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/features/org.jboss.tools.runtime.test.feature/feature.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -18,9 +18,6 @@
 
    <requires>
       <import feature="org.jboss.tools.runtime.core.feature" version="1.3.0" match="compatible"/>
-      <import feature="org.jboss.tools.runtime.as.detector.feature" version="1.3.0" match="compatible"/>
-      <import feature="org.jboss.ide.eclipse.as.serverAdapter.wtp.feature" version="2.3.0" match="compatible"/>
-      <import plugin="org.jboss.ide.eclipse.as.core"/>
    </requires>
 
    <plugin

Modified: trunk/runtime/features/pom.xml
===================================================================
--- trunk/runtime/features/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/features/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -14,8 +14,6 @@
 	<packaging>pom</packaging>
 	<modules>
 		<module>org.jboss.tools.runtime.core.feature</module>
-		<module>org.jboss.tools.runtime.as.detector.feature</module>
-		<module>org.jboss.tools.runtime.seam.detector.feature</module>
 		<module>org.jboss.tools.runtime.test.feature</module>
 	</modules>
 </project>

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/JBossRuntimeLocator.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/JBossRuntimeLocator.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/JBossRuntimeLocator.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -38,12 +38,12 @@
 	}
 
 	public List<RuntimeDefinition> searchForRuntimes(IPath path, IProgressMonitor monitor) {
-		List<RuntimeDefinition> serverDefinitions = new ArrayList<RuntimeDefinition>();
-		searchForRuntimes(serverDefinitions, path, monitor);
-		return serverDefinitions;
+		List<RuntimeDefinition> collector = new ArrayList<RuntimeDefinition>();
+		searchForRuntimes(collector, path, monitor);
+		return collector;
 	}
 	
-	private void searchForRuntimes(List<RuntimeDefinition> serverDefinitions, IPath path, 
+	private void searchForRuntimes(List<RuntimeDefinition> runtimeCollector, IPath path, 
 			IProgressMonitor monitor) {
 		File[] files = null;
 		if (path != null) {
@@ -63,7 +63,7 @@
 				if (monitor.isCanceled())
 					return;
 				if (files[i] != null && files[i].isDirectory())
-					searchDirectory(files[i], serverDefinitions, DEPTH, monitor);
+					searchDirectory(files[i], runtimeCollector, DEPTH, monitor);
 				monitor.worked(work);
 			}
 			monitor.worked(workLeft);
@@ -73,7 +73,7 @@
 		
 	}
 	
-	public void searchDirectory(File directory, List<RuntimeDefinition> serverDefinitions,
+	public void searchDirectory(File directory, List<RuntimeDefinition> runtimeCollector,
 			int depth, IProgressMonitor monitor) {
 		if (depth == 0 || monitor.isCanceled() || directory == null || !directory.isDirectory()) {
 			return;
@@ -89,9 +89,9 @@
 			if (!detector.isEnabled()) {
 				continue;
 			}
-			RuntimeDefinition serverDefinition = detector.getServerDefinition(directory, monitor);
-			if (serverDefinition != null) {
-				serverDefinitions.add(serverDefinition);
+			RuntimeDefinition runtimeDefinition = detector.getServerDefinition(directory, monitor);
+			if (runtimeDefinition != null) {
+				runtimeCollector.add(runtimeDefinition);
 				return;
 			}
 		}
@@ -106,7 +106,7 @@
 			for (int i = 0; i < size; i++) {
 				if (monitor.isCanceled())
 					return;
-				searchDirectory(files[i], serverDefinitions, depth - 1, monitor);
+				searchDirectory(files[i], runtimeCollector, depth - 1, monitor);
 			}
 		}
 	}

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/RuntimeCoreActivator.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/RuntimeCoreActivator.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/RuntimeCoreActivator.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -11,6 +11,8 @@
 package org.jboss.tools.runtime.core;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
 import java.util.StringTokenizer;
@@ -29,7 +31,9 @@
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.jboss.tools.runtime.core.model.IRuntimeDetector;
 import org.jboss.tools.runtime.core.model.InvalidRuntimeDetector;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
 import org.osgi.service.prefs.BackingStoreException;
 
 /**
@@ -41,34 +45,29 @@
 
 	// The plug-in ID
 	public static final String PLUGIN_ID = "org.jboss.tools.runtime.core"; //$NON-NLS-1$
-	
 	private static final String ESB_DETECTOR_ID = "org.jboss.tools.runtime.handlers.EsbHandler"; //$NON-NLS-1$
-
 	private static final String RUNTIME_DETECTOR_EXTENSION_ID = "org.jboss.tools.runtime.core.runtimeDetectors";
 	
+	// Extension point property keys
 	private static final String NAME = "name";
-
 	private static final String PREFERENCE_ID = "preferenceId";
-	
 	private static final String ID = "id";
-	
 	private static final String ENABLED = "enabled";
+	private static final String PRIORITY = "priority";
 
+	// Preference key
 	private static final String ENABLED_DETECTORS = "enabledDetectors";
 
-	private static final String PRIORITY = "priority";
-
-	private static Set<IRuntimeDetector> declaredRuntimeDetectors;
-	
-	private static Set<IRuntimeDetector> runtimeDetectors;
-	
-	private static IRuntimeDetector esbDetector;
-	
 	// The shared instance
 	private static RuntimeCoreActivator plugin;
 
-	private static IEclipsePreferences prefs;
+	// Member variables
+	private Set<IRuntimeDetector> declaredRuntimeDetectors;
+	private Set<IRuntimeDetector> runtimeDetectors;
+	private IRuntimeDetector esbDetector;
 	
+	private IEclipsePreferences prefs;
+	
 	/**
 	 * The constructor
 	 */
@@ -102,73 +101,102 @@
 		return plugin;
 	}
 
+	public static IRuntimeDetector getEsbDetector() {
+		return getOrLoadDefaultInstance().getEsbDetector2();
+	}
+
+	private static RuntimeCoreActivator getOrLoadDefaultInstance() {
+		if( getDefault() == null ) {
+			// load bundle
+			Bundle bundle = Platform.getBundle(PLUGIN_ID);
+			try {
+				bundle.start();
+			} catch(BundleException be) {
+				be.printStackTrace();
+			}
+		}
+		return getDefault();
+	}
+	// Convenience method
 	public static Set<IRuntimeDetector> getDeclaredRuntimeDetectors() {
-		if (declaredRuntimeDetectors == null) {
-			declaredRuntimeDetectors = new TreeSet<IRuntimeDetector>();
-			IExtensionRegistry registry = Platform.getExtensionRegistry();
-			IExtensionPoint extensionPoint = registry
-					.getExtensionPoint(RUNTIME_DETECTOR_EXTENSION_ID);
-			IExtension[] extensions = extensionPoint.getExtensions();
-			for (int i = 0; i < extensions.length; i++) {
-				IExtension extension = extensions[i];
-				IConfigurationElement[] configurationElements = extension
-						.getConfigurationElements();
-				for (int j = 0; j < configurationElements.length; j++) {
-					IConfigurationElement configurationElement = configurationElements[j];
-					IRuntimeDetector detector;
-					try {
-						detector = (IRuntimeDetector) configurationElement.createExecutableExtension("class");
-					} catch (CoreException e) {
-						log(e);
-						detector = new InvalidRuntimeDetector();
-						detector.setValid(false);
-					}
-					String name = configurationElement.getAttribute(NAME);
-					String preferenceId = configurationElement.getAttribute(PREFERENCE_ID);
-					String id = configurationElement.getAttribute(ID);
-					detector.setName(name);
-					detector.setPreferenceId(preferenceId);
-					detector.setId(id);
-					String enabled = configurationElement.getAttribute(ENABLED);
-					if (enabled == null || "true".equals(enabled)) {
-						detector.setEnabled(true);
-					} else {
-						detector.setEnabled(false);
-					}
-					String priorityString = configurationElement
-							.getAttribute(PRIORITY);
-					int priority;
-					try {
-						priority = Integer.parseInt(priorityString);
-					} catch (Exception ex) {
-						priority = Integer.MAX_VALUE;
-					}
-					detector.setPriority(priority);
-					declaredRuntimeDetectors.add(detector);
-				}
-			}	
+		return getOrLoadDefaultInstance().getDeclaredRuntimeDetectors2();
+	}
+	
+	// Load all declared runtime detectors
+	public Set<IRuntimeDetector> getDeclaredRuntimeDetectors2() {
+		if( declaredRuntimeDetectors == null) {
+			declaredRuntimeDetectors = loadDeclaredRuntimeDetectors();
 		}
 		return declaredRuntimeDetectors;
 	}
 	
-	public static void log(Throwable e) {
-		IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, e
-				.getLocalizedMessage(), e);
-		getDefault().getLog().log(status);
-	}
 	
-	public static void log(Throwable e, String message) {
-		IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, e);
-		getDefault().getLog().log(status);
+	// This method will do a full load and actually instantiate the classes
+	public Set<IRuntimeDetector> loadDeclaredRuntimeDetectors() {
+		Set<IRuntimeDetector> declared = new TreeSet<IRuntimeDetector>();
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IExtensionPoint extensionPoint = registry
+				.getExtensionPoint(RUNTIME_DETECTOR_EXTENSION_ID);
+		IExtension[] extensions = extensionPoint.getExtensions();
+		for (int i = 0; i < extensions.length; i++) {
+			IExtension extension = extensions[i];
+			IConfigurationElement[] configurationElements = extension
+					.getConfigurationElements();
+			for (int j = 0; j < configurationElements.length; j++) {
+				IRuntimeDetector dec = loadOneDeclaredRuntimeDetector(configurationElements[j]); 
+				if( !declared.contains(dec)) {
+					declared.add(dec);
+				}
+			}
+		}
+		return declared;
 	}
 
+	// This method will load one detector from a configuration element
+	private IRuntimeDetector loadOneDeclaredRuntimeDetector(IConfigurationElement configurationElement) {
+		IRuntimeDetector detector;
+		try {
+			detector = (IRuntimeDetector) configurationElement.createExecutableExtension("class");
+		} catch (CoreException e) {
+			log(e);
+			detector = new InvalidRuntimeDetector();
+			detector.setValid(false);
+		}
+		String name = configurationElement.getAttribute(NAME);
+		String preferenceId = configurationElement.getAttribute(PREFERENCE_ID);
+		String id = configurationElement.getAttribute(ID);
+		detector.setName(name);
+		detector.setPreferenceId(preferenceId);
+		detector.setId(id);
+		String enabled = configurationElement.getAttribute(ENABLED);
+		if (enabled == null || new Boolean(enabled).booleanValue()) {
+			detector.setEnabled(true);
+		} else {
+			detector.setEnabled(false);
+		}
+		String priorityString = configurationElement
+				.getAttribute(PRIORITY);
+		int priority;
+		try {
+			priority = Integer.parseInt(priorityString);
+		} catch (Exception ex) {
+			priority = Integer.MAX_VALUE;
+		}
+		detector.setPriority(priority);
+		return detector;
+	}
+	
 	public static Set<IRuntimeDetector> getRuntimeDetectors() {
+		return getOrLoadDefaultInstance().getRuntimeDetectors2();
+	}
+	
+	public Set<IRuntimeDetector> getRuntimeDetectors2() {
 		if (runtimeDetectors == null) {
-			runtimeDetectors = getDeclaredRuntimeDetectors();
+			Set<IRuntimeDetector> tmp = getDeclaredRuntimeDetectors();
 			String enabledDetectors = getPreferences().get(ENABLED_DETECTORS,
 					null);
 			if (enabledDetectors == null) {
-				saveEnabledDetectors(runtimeDetectors);
+				saveEnabledDetectors(tmp);
 			} else {
 				StringTokenizer tokenizer = new StringTokenizer(
 						enabledDetectors, ",");
@@ -179,17 +207,18 @@
 						enabled.add(token);
 					}
 				}
-				for (IRuntimeDetector detector : runtimeDetectors) {
+				for (IRuntimeDetector detector : tmp) {
 					detector.setEnabled(enabled.contains(detector.getId()));
 				}
 			}
+			runtimeDetectors = tmp;
 		}
 		return runtimeDetectors;
 	}
 
-	public static void saveEnabledDetectors(Set<IRuntimeDetector> detectors) {
+	public static void saveEnabledDetectors(Set<IRuntimeDetector> allDetectors) {
 		StringBuilder builder = new StringBuilder();
-		for (IRuntimeDetector detector:detectors) {
+		for (IRuntimeDetector detector:allDetectors) {
 			if (detector.isEnabled()) {
 				builder.append(detector.getId());
 				builder.append(",");
@@ -209,13 +238,17 @@
 	}
 	
 	private static IEclipsePreferences getPreferences() {
+		return getOrLoadDefaultInstance().getPreferences2();
+	}
+	
+	private IEclipsePreferences getPreferences2() {
 		if (prefs == null) {
 			prefs = ConfigurationScope.INSTANCE.getNode(PLUGIN_ID);
 		}
 		return prefs;
 	}
-
-	public static IRuntimeDetector getEsbDetector() {
+	
+	public IRuntimeDetector getEsbDetector2() {
 		if (esbDetector == null) {
 			for (IRuntimeDetector detector:getDeclaredRuntimeDetectors()) {
 				if (ESB_DETECTOR_ID.equals(detector.getId())) {
@@ -225,5 +258,15 @@
 		}
 		return esbDetector;
 	}
+	public static void log(Throwable e) {
+		IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, e
+				.getLocalizedMessage(), e);
+		getDefault().getLog().log(status);
+	}
 	
+	public static void log(Throwable e, String message) {
+		IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, e);
+		getDefault().getLog().log(status);
+	}
+	
 }

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/AbstractRuntimeDetector.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/AbstractRuntimeDetector.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/AbstractRuntimeDetector.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -116,17 +116,19 @@
 
 	@Override
 	public int compareTo(IRuntimeDetector o) {
-		if (o == null) {
-			return 1;
-		}
+		if( this.equals(o))
+			return 0;
 		int p1 = this.getPriority();
 		int p2 = o.getPriority();
-		return p1 - p2;
+		int dif = p1 - p2; 
+		if( dif != 0 )
+			return dif;
+		return getId().compareTo(o.getId());
 	}
 
 	@Override
 	public void computeIncludedServerDefinition(
-			RuntimeDefinition serverDefinition) {
+			RuntimeDefinition runtimeDefinition) {
 		
 	}
 	
@@ -139,9 +141,9 @@
 	}
 	
 	@Override
-	public String getVersion(RuntimeDefinition serverDefinition) {
-		if (serverDefinition != null) {
-			return serverDefinition.getVersion();
+	public String getVersion(RuntimeDefinition runtimeDefinition) {
+		if (runtimeDefinition != null) {
+			return runtimeDefinition.getVersion();
 		}
 		return null;
 	}

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/IRuntimeDetector.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/IRuntimeDetector.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.core/src/org/jboss/tools/runtime/core/model/IRuntimeDetector.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -20,8 +20,33 @@
  *
  */
 public interface IRuntimeDetector extends Comparable<IRuntimeDetector> {
-	void initializeRuntimes(List<RuntimeDefinition> serverDefinitions);
+	/**
+	 * The framework is asking you to create or otherwise initialize 
+	 * the runtimes provided in this list. 
+	 * 
+	 * @param runtimeDefinitions
+	 */
+	void initializeRuntimes(List<RuntimeDefinition> runtimeDefinitions);
 
+	/**
+	 * The framework is asking this detector to search the given folder
+	 * and return a runtime definition, or null if this folder
+	 * is not a recognized runtime
+	 * 
+	 * @param root
+	 * @param monitor
+	 * @return
+	 */
+	RuntimeDefinition getServerDefinition(File root, IProgressMonitor monitor);
+	
+	/**
+	 * The framework is asking you to check nested folders for 
+	 * additional runtimes that may be provided.
+	 * 
+	 * @param runtimeDefinition
+	 */
+	void computeIncludedServerDefinition(RuntimeDefinition runtimeDefinition);
+
 	void setName(String name);
 
 	void setPreferenceId(String preferenceId);
@@ -38,19 +63,17 @@
 	
 	boolean isEnabled();
 	
-	RuntimeDefinition getServerDefinition(File root, IProgressMonitor monitor);
-	
+
 	boolean exists(RuntimeDefinition serverDefinition);
 	
 	int getPriority();
 	
 	void setPriority(int priority);
 	
-	void computeIncludedServerDefinition(RuntimeDefinition serverDefinition);
 	
 	boolean isValid();
 	
 	void setValid(boolean valid);
 	
-	String getVersion(RuntimeDefinition serverDefinition);
+	String getVersion(RuntimeDefinition runtimeDefinition);
 }

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/JBossRuntimeStartup.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/JBossRuntimeStartup.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/JBossRuntimeStartup.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -52,19 +52,18 @@
 			if (directory.isDirectory()) {
 				RuntimePath runtimePath = new RuntimePath(
 						directory.getAbsolutePath());
-				List<RuntimeDefinition> serverDefinitions = locator
+				List<RuntimeDefinition> runtimeDefinitions = locator
 						.searchForRuntimes(runtimePath.getPath(), monitor);
 				runtimePath.getServerDefinitions().clear();
-				for (RuntimeDefinition serverDefinition : serverDefinitions) {
+				for (RuntimeDefinition serverDefinition : runtimeDefinitions) {
 					serverDefinition.setRuntimePath(runtimePath);
 				}
-				initializeRuntimes(serverDefinitions);
+				initializeRuntimes(runtimeDefinitions);
 			}
 		} catch (IOException e) {
 			RuntimeUIActivator.log(e);
 		}
-		final Set<RuntimePath> runtimePaths = new HashSet<RuntimePath>();
-		parseRuntimeLocationsFile(runtimePaths);
+		final Set<RuntimePath> runtimePaths = parseRuntimeLocationsFile();
 		for (RuntimePath runtimePath : runtimePaths) {
 			List<RuntimeDefinition> serverDefinitions = locator
 					.searchForRuntimes(runtimePath.getPath(), monitor);
@@ -105,8 +104,8 @@
 		});
 	}
 	
-	private static void parseRuntimeLocationsFile(Set<RuntimePath> runtimePaths) {
-		
+	private static Set<RuntimePath> parseRuntimeLocationsFile() {
+		final Set<RuntimePath> runtimePaths = new HashSet<RuntimePath>();
 		try {
 			String pluginLocation = FileLocator.resolve(RuntimeUIActivator.getDefault().getBundle().getEntry("/")).getPath(); //$NON-NLS-1$
 			File serversFile = new File(pluginLocation, LOCATIONS_FILE);
@@ -151,6 +150,7 @@
 		} catch (IOException e) {
 			RuntimeUIActivator.log(e);
 		}
+		return runtimePaths;
 	}
 
 	private static String getConfiguration() throws IOException {

Modified: trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/preferences/RuntimePreferencePage.java
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/preferences/RuntimePreferencePage.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/org.jboss.tools.runtime.ui/src/org/jboss/tools/runtime/ui/preferences/RuntimePreferencePage.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -65,7 +65,6 @@
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;

Modified: trunk/runtime/plugins/pom.xml
===================================================================
--- trunk/runtime/plugins/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/plugins/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -15,7 +15,5 @@
 	<modules>
 		<module>org.jboss.tools.runtime.core</module>
 		<module>org.jboss.tools.runtime.ui</module>
-		<module>org.jboss.tools.runtime.as.detector</module>
-		<module>org.jboss.tools.runtime.seam.detector</module>
 	</modules>
 </project>

Modified: trunk/runtime/site/category.xml
===================================================================
--- trunk/runtime/site/category.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/site/category.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -11,12 +11,6 @@
    <feature url="features/org.jboss.tools.runtime.core.feature_0.0.0.jar" id="org.jboss.tools.runtime.core.feature" version="0.0.0">
       <category name="JBoss Tools runtime Nightly Build Update Site"/>
    </feature>
-   <feature url="features/org.jboss.tools.runtime.as.detector.feature_0.0.0.jar" id="org.jboss.tools.runtime.as.detector.feature" version="0.0.0">
-      <category name="JBoss Tools runtime Nightly Build Update Site"/>
-   </feature>
-   <feature url="features/org.jboss.tools.runtime.seam.detector.feature_0.0.0.jar" id="org.jboss.tools.runtime.seam.detector.feature" version="0.0.0">
-      <category name="JBoss Tools runtime Nightly Build Update Site"/>
-   </feature>
    <feature url="features/org.jboss.tools.runtime.test.feature_0.0.0.jar" id="org.jboss.tools.runtime.test.feature" version="0.0.0">
       <category name="JBoss Tools runtime Nightly Build Update Site"/>
    </feature>
@@ -25,12 +19,6 @@
    <feature url="features/org.jboss.tools.runtime.core.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.core.feature.source" version="0.0.0">
       <category name="JBoss Tools runtime Nightly Build Update Site"/>
    </feature>
-   <feature url="features/org.jboss.tools.runtime.as.detector.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.as.detector.feature.source" version="0.0.0">
-      <category name="JBoss Tools runtime Nightly Build Update Site"/>
-   </feature>
-   <feature url="features/org.jboss.tools.runtime.seam.detector.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.seam.detector.feature.source" version="0.0.0">
-      <category name="JBoss Tools runtime Nightly Build Update Site"/>
-   </feature>
    <feature url="features/org.jboss.tools.runtime.test.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.test.feature.source" version="0.0.0">
       <category name="JBoss Tools runtime Nightly Build Update Site"/>
    </feature>

Modified: trunk/runtime/tests/org.jboss.tools.runtime.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/META-INF/MANIFEST.MF	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/META-INF/MANIFEST.MF	2012-08-30 10:39:06 UTC (rev 43321)
@@ -2,37 +2,14 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %BundleName
 Bundle-SymbolicName: org.jboss.tools.runtime.test;singleton:=true
+Bundle-Activator: org.jboss.tools.runtime.test.RuntimeTestActivator
 Bundle-Version: 1.4.0.qualifier
 Require-Bundle: org.eclipse.core.runtime,
  org.junit;bundle-version="4.8.1",
  org.jboss.tools.runtime.ui,
  org.jboss.tools.runtime.core,
  org.jboss.tools.tests,
- org.jboss.tools.seam.core,
- org.eclipse.datatools.connectivity,
- org.eclipse.datatools.connectivity.db.generic,
- org.jboss.tools.common,
- org.jboss.tools.tests,
- org.jboss.ide.eclipse.as.core,
- org.eclipse.wst.server.core,
- org.eclipse.datatools.enablement.hsqldb,
- org.eclipse.datatools.enablement.hsqldb.dbdefinition,
- org.eclipse.datatools.enablement.hsqldb.ui,
- org.eclipse.jst.jee,
- org.eclipse.jst.jee.ejb,
- org.eclipse.jst.jee.ui,
- org.eclipse.jst.jee.web,
- org.eclipse.ui,
- org.eclipse.core.resources,
- org.jboss.tools.jsf.vpe.seam,
- org.jboss.tools.seam.pages.xml,
- org.jboss.tools.seam.ui,
- org.jboss.tools.seam.ui.pages,
- org.jboss.tools.seam.xml,
- org.jboss.tools.seam.xml.ui,
- org.jboss.tools.seam.text.ext,
- org.jboss.tools.runtime.as.detector,
- org.jboss.tools.runtime.seam.detector
+ org.jboss.tools.common
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: %BundleVendor

Modified: trunk/runtime/tests/org.jboss.tools.runtime.test/plugin.xml
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/plugin.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/plugin.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,6 +3,12 @@
 <plugin>
 	<extension
          point="org.jboss.tools.runtime.core.runtimeDetectors">
+    	<runtimeDetector 
+    	    id="org.jboss.tools.runtime.handlers.TestHandler1"
+    		name="Test Handler"
+       		class="org.jboss.tools.runtime.handlers.TestHandler1"
+       		preferenceId="org.eclipse.wst.server.ui.runtime.preferencePage"
+       		priority="100"/>
     	<runtimeDetector
     		id="org.jboss.tools.runtime.handlers.InvalidHandler"
     		name="Invalid"
@@ -11,4 +17,5 @@
        		priority="9999"/>
 	</extension>
 	
+	
 </plugin>

Modified: trunk/runtime/tests/org.jboss.tools.runtime.test/pom.xml
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -13,136 +13,11 @@
 	<packaging>eclipse-test-plugin</packaging>
 
 	<properties>
-		<systemProperties>-Djbosstools.test.jboss.home.4.2=${requirementsDirectory}/jboss-4.2.3.GA -Djbosstools.test.jboss.home.5.1=${requirementsDirectory}/jboss-5.1.0.GA -Djbosstools.test.seam.2.0.1.GA.home=${requirementsDirectory}/jboss-seam-2.0.1.GA -Djbosstools.test.seam.2.2.0.GA.home=${requirementsDirectory}/jboss-seam-2.2.0.GA -Djbosstools.test.eap.4.3.home=${requirementsDirectory}/jboss-eap-4.3 -Dskip.runtime.scanner=true -Djbosstools.test.jboss.home.7.0=${requirementsDirectory}/jboss-as-7.0.0.Final -Dorg.jboss.tools.tests.skipPrivateRequirements=${skipPrivateRequirements}</systemProperties>
+		<systemProperties/>
 	</properties>
 	<build>
 		<plugins>
 			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>install-as</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>unpack</goal>
-						</goals>
-						<configuration>
-							<artifactItems>
-								<artifactItem>
-									<groupId>org.jboss.jbossas</groupId>
-									<artifactId>jboss-as-dist</artifactId>
-									<version>4.2.3.GA</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.jboss.as</groupId>
-									<artifactId>jboss-as-dist</artifactId>
-									<version>7.0.0.Final</version>
-									<type>zip</type>
-								</artifactItem>
-							</artifactItems>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>com.googlecode.maven-download-plugin</groupId>
-				<artifactId>maven-download-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>install-as-5.1.0</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://repository.jboss.org/sourceforge/jboss-5.1.0.GA.zip</url>
-							<md5>78322c75ca0c13002a04418b4a8bc920</md5>
-							<unpack>true</unpack>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-seam-2.0.1</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://repository.jboss.org/sourceforge/jboss-seam-2.0.1.GA.zip</url>
-							<unpack>true</unpack>
-							<md5>0a1accf94fd37e40ab1091ee593b8b75</md5>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-seam-2.2.0</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://repository.jboss.org/sourceforge/jboss-seam-2.2.0.GA.zip</url>
-							<unpack>true</unpack>
-							<md5>febaf032f989240fe3828a8f0f7fe98a</md5>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-eap</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://download.devel.redhat.com/released/JBEAP-4.3.0/CP03/zip/jboss-eap-noauth-4.3.0.GA_CP03.zip</url>
-							<md5>18dc28785c8b156b36e2d92db699064a</md5>
-							<unpack>true</unpack>
-							<skip>${skipPrivateRequirements}</skip>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-eap-seam-gen</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://download.jboss.org/jbosstools/test-runtimes/rhds-seam-gen-patch.zip</url>
-							<md5>79b37541804f49844ea7322c0ff599c1</md5>
-							<unpack>true</unpack>
-							<outputDirectory>${requirementsDirectory}/jboss-eap-4.3/seam</outputDirectory>
-							<skip>${skipPrivateRequirements}</skip>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-eap-fp</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://download.devel.redhat.com/released/JBEAP-4.3.0/CP03_FP01/zip/jboss-eap-fp-4.3.0.CP03-FP01.zip</url>
-							<md5>38fe2a2a55edc5239ba680eff3b29533</md5>
-							<unpack>true</unpack>
-							<skip>${skipPrivateRequirements}</skip>
-						</configuration>
-					</execution>
-					<execution>
-						<id>install-seam-fp-patch</id>
-						<phase>pre-integration-test</phase>
-						<goals>
-							<goal>wget</goal>
-						</goals>
-						<configuration>
-							<url>http://download.jboss.org/jbosstools/test-runtimes/jbds-seamfp-patch.zip</url>
-							<md5>c3af3b56add0acccb72db88de477f3c7</md5>
-							<unpack>true</unpack>
-							<skip>${skipPrivateRequirements}</skip>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		
-			<plugin>
 				<groupId>org.eclipse.tycho</groupId>
 				<artifactId>tycho-surefire-plugin</artifactId>
 				<version>${tychoVersion}</version>
@@ -153,4 +28,4 @@
 			</plugin>
 		</plugins>
 	</build>
-</project>
\ No newline at end of file
+</project>

Added: trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/handlers/TestHandler1.java
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/handlers/TestHandler1.java	                        (rev 0)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/handlers/TestHandler1.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,60 @@
+package org.jboss.tools.runtime.handlers;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.jboss.tools.runtime.core.model.AbstractRuntimeDetector;
+import org.jboss.tools.runtime.core.model.RuntimeDefinition;
+
+public class TestHandler1 extends AbstractRuntimeDetector {
+
+	private static TestHandler1 ME;
+	
+	public static TestHandler1 getInstance() {
+		return ME;
+	}
+	
+	public TestHandler1() {
+		ME = this;
+	}
+
+	private ArrayList<String> initialized = new ArrayList<String>();
+	public void reset() {
+		initialized.clear();
+	}
+	private void addInit(String s) {
+		initialized.add(s);
+	}
+	public String[] getInited() {
+		return (String[]) initialized.toArray(new String[initialized.size()]);
+	}
+	
+	@Override
+	public RuntimeDefinition getServerDefinition(File root,
+			IProgressMonitor monitor) {
+		if( root.isDirectory() && root.list().length == 0 ) {
+			RuntimeDefinition def = new RuntimeDefinition(
+					"Handler1 Folder " + root.getName(), "1.0", 
+					"testHandler", root);
+			return def;
+		}
+		return null;
+	}
+
+	@Override
+	public void initializeRuntimes(List<RuntimeDefinition> serverDefinitions) {
+		for( int i = 0; i < serverDefinitions.size(); i++ ) {
+			String n = serverDefinitions.get(i).getName();
+			addInit(n);
+		}
+	}
+
+	@Override
+	public boolean exists(RuntimeDefinition serverDefinition) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+}

Modified: trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionAllTests.java
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionAllTests.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionAllTests.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -15,7 +15,7 @@
 
 
 @Suite.SuiteClasses({
-	RuntimeDetectionTest.class,
+	RuntimeDetectionFrameworkTest.class
 })
 
 @RunWith(Suite.class)

Added: trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionFrameworkTest.java
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionFrameworkTest.java	                        (rev 0)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionFrameworkTest.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,146 @@
+/*************************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.runtime.test;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.tools.runtime.core.JBossRuntimeLocator;
+import org.jboss.tools.runtime.core.RuntimeCoreActivator;
+import org.jboss.tools.runtime.core.model.AbstractRuntimeDetector;
+import org.jboss.tools.runtime.core.model.IRuntimeDetector;
+import org.jboss.tools.runtime.core.model.InvalidRuntimeDetector;
+import org.jboss.tools.runtime.core.model.RuntimeDefinition;
+import org.jboss.tools.runtime.core.model.RuntimePath;
+import org.jboss.tools.runtime.handlers.TestHandler1;
+import org.jboss.tools.runtime.ui.RuntimeUIActivator;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleException;
+
+/**
+ * 
+ * @author rob stryker
+ * 
+ */
+public class RuntimeDetectionFrameworkTest extends TestCase {
+	private final static String seamVersionAttributeName = "Seam-Version";
+
+	@BeforeClass
+	public static void create() {
+		RuntimeCoreActivator.getDefault();
+		RuntimeUIActivator.getDefault();
+	}
+
+	@Test
+	public void testInvalidDetectors() {
+		Set<IRuntimeDetector> detectors = RuntimeCoreActivator.getDeclaredRuntimeDetectors();
+		IRuntimeDetector invalidDetector = null;
+		for (IRuntimeDetector detector:detectors) {
+			if (detector instanceof InvalidRuntimeDetector) {
+				invalidDetector = detector;
+			}
+		}
+		assertFalse("Invalid detector is enabled.", invalidDetector.isEnabled());
+	}
+	
+	private String displayRuntimes(Set<RuntimePath> paths) {
+		String s = "";
+		for(RuntimePath path:paths) {
+			s += path.getPath() + "\n";
+		}
+		return s;
+	}
+	
+	@Test
+	public void testLoadSaveRuntimePaths() {
+		String path = "test/path/one";
+		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault().getRuntimePaths();
+		assertEquals(displayRuntimes(runtimePaths), 0, runtimePaths.size());
+		RuntimePath runtimePath = new RuntimePath(path);
+		runtimePath.setScanOnEveryStartup(false);
+		runtimePaths.add(runtimePath);
+		RuntimeUIActivator.getDefault().saveRuntimePaths();
+		restartBundle();
+		runtimePaths = RuntimeUIActivator.getDefault().getRuntimePaths();
+		assertEquals(1, runtimePaths.size());
+		runtimePaths.clear();
+		RuntimeUIActivator.getDefault().saveRuntimePaths();
+		restartBundle();
+		runtimePaths = RuntimeUIActivator.getDefault().getRuntimePaths();
+		assertEquals(0, runtimePaths.size());
+	}
+	
+	private void restartBundle() {
+		Bundle bundle = Platform.getBundle(RuntimeUIActivator.PLUGIN_ID);
+		try {
+			// reload prefs
+			bundle.stop();
+			bundle.start();
+		} catch(BundleException be) {
+			
+		}
+	}
+	
+	@Before
+	public void setUp() {
+		IPath stateLoc = RuntimeTestActivator.getDefault().getStateLocation();
+		stateLoc.append("a").toFile().mkdirs();
+		stateLoc.append("b").toFile().mkdirs();
+		stateLoc.append("c").toFile().mkdirs();
+	}
+	
+	@After
+	public void tearDown() {
+		IPath stateLoc = RuntimeTestActivator.getDefault().getStateLocation();
+		stateLoc.append("a").toFile().delete();
+		stateLoc.append("b").toFile().delete();
+		stateLoc.append("c").toFile().delete();
+	}
+	
+	@Test
+	public void testInitializationPaths() {
+		IPath p = RuntimeTestActivator.getDefault().getStateLocation();
+		String path = p.toFile().getAbsolutePath();
+		
+		// Create our path
+		RuntimePath runtimePath = new RuntimePath(path);
+		JBossRuntimeLocator locator = new JBossRuntimeLocator();
+		
+		// Use the locator to find our runtime defs.
+		List<RuntimeDefinition> runtimeDefinitions = locator
+				.searchForRuntimes(runtimePath.getPath(), new NullProgressMonitor());
+		assertEquals(3, runtimeDefinitions.size());
+		
+		
+		// initialize them
+		Set<IRuntimeDetector> detectors = RuntimeCoreActivator.getRuntimeDetectors();
+		for( IRuntimeDetector detector:detectors) {
+			if (detector.isEnabled()) {
+				detector.initializeRuntimes(runtimeDefinitions);
+			}
+		}
+		
+		String[] initialized = TestHandler1.getInstance().getInited();
+		assertEquals(3, initialized.length);
+		
+	}
+}

Modified: trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionTest.java
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionTest.java	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeDetectionTest.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -10,404 +10,12 @@
  ************************************************************************************/
 package org.jboss.tools.runtime.test;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.jar.Attributes;
-import java.util.jar.JarFile;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.ConfigurationScope;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.ServerCore;
-import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
-import org.jboss.tools.runtime.as.detector.IJBossRuntimePluginConstants;
-import org.jboss.tools.runtime.core.JBossRuntimeLocator;
-import org.jboss.tools.runtime.core.RuntimeCoreActivator;
-import org.jboss.tools.runtime.core.model.IRuntimeDetector;
-import org.jboss.tools.runtime.core.model.InvalidRuntimeDetector;
-import org.jboss.tools.runtime.core.model.RuntimePath;
-import org.jboss.tools.runtime.core.model.RuntimeDefinition;
-import org.jboss.tools.runtime.ui.RuntimeUIActivator;
-import org.jboss.tools.seam.core.project.facet.SeamRuntime;
-import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager;
-import org.jboss.tools.seam.core.project.facet.SeamVersion;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-
 /**
  * 
  * @author snjeza
  * 
  */
-public class RuntimeDetectionTest implements IJBossRuntimePluginConstants {
-	private final static String seamVersionAttributeName = "Seam-Version";
-
-	@BeforeClass
-	public static void create() {
-		RuntimeCoreActivator.getDefault();
-		RuntimeUIActivator.getDefault();
-		addRuntimePaths();
-		createRuntimes();
-	}
-
-	private static void addRuntimePaths() {
-		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault()
-				.getRuntimePaths();
-		String[] paths = { IRuntimeDetectionConstants.JBOSS_42_HOME,
-				IRuntimeDetectionConstants.JBOSS_51_HOME,
-				IRuntimeDetectionConstants.JBOSS_70_HOME,
-				IRuntimeDetectionConstants.SEAM_20_HOME,
-				IRuntimeDetectionConstants.SEAM_22_HOME,
-				IRuntimeDetectionConstants.EAP_43_HOME };
-
-		for (String path : paths) {
-			RuntimePath runtimePath = new RuntimePath(path);
-			runtimePath.setScanOnEveryStartup(false);
-			runtimePaths.add(runtimePath);
-		}
-		RuntimeUIActivator.getDefault().saveRuntimePaths();
-		List<RuntimeDefinition> serverDefinitions = new ArrayList<RuntimeDefinition>();
-		Set<IRuntimeDetector> detectors = RuntimeCoreActivator
-				.getRuntimeDetectors();
-		for (IRuntimeDetector detector : detectors) {
-			if (detector.isEnabled()) {
-				detector.initializeRuntimes(serverDefinitions);
-			}
-		}
-	}
-
-	private static void createRuntimes() {
-		JBossRuntimeLocator locator = new JBossRuntimeLocator();
-		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault()
-				.getRuntimePaths();
-		for (RuntimePath runtimePath : runtimePaths) {
-			List<RuntimeDefinition> serverDefinitions = locator
-					.searchForRuntimes(runtimePath.getPath(),
-							new NullProgressMonitor());
-			runtimePath.getServerDefinitions().clear();
-			for (RuntimeDefinition serverDefinition : serverDefinitions) {
-				serverDefinition.setRuntimePath(runtimePath);
-			}
-			runtimePath.getServerDefinitions().addAll(serverDefinitions);
-		}
-		List<RuntimeDefinition> serverDefinitions = RuntimeUIActivator
-				.getDefault().getServerDefinitions();
-		Set<IRuntimeDetector> detectors = RuntimeCoreActivator
-				.getRuntimeDetectors();
-		for (IRuntimeDetector detector : detectors) {
-			if (detector.isEnabled()) {
-				detector.initializeRuntimes(serverDefinitions);
-			}
-		}
-	}
-
-	@Test
-	public void testRuntimeDetectors() {
-		Set<IRuntimeDetector> detectors = RuntimeCoreActivator
-				.getRuntimeDetectors();
-		assertTrue("Runtime detectors don't exist.", detectors.size() > 0);
-	}
-
-	@Test
-	public void testRuntimePaths() {
-		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault()
-				.getRuntimePaths();
-		assertTrue(
-				"runtimePaths.size()\nExpected: 6\nWas: " + runtimePaths.size(),
-				runtimePaths.size() == 6);
-	}
-	
-	@Test
-	public void testRuntimePathsExists() {
-		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault()
-				.getRuntimePaths();
-		for (RuntimePath runtimePath:runtimePaths) {
-			String path = runtimePath.getPath();
-			File file = new File(path);
-			assertTrue("The '" + file.getAbsolutePath()
-					+ "' path isn't valid.", file.isDirectory());
-		}
-	}
-
-	@Test
-	public void testLocations() {
-		List<RuntimeDefinition> serverDefinitions = RuntimeUIActivator
-				.getDefault().getServerDefinitions();
-		for (RuntimeDefinition serverDefinition : serverDefinitions) {
-			File location = serverDefinition.getLocation();
-			assertTrue("The '" + location.getAbsolutePath()
-					+ "' path isn't valid.", location.isDirectory());
-		}
-	}
-	
-	@Test
-	public void testSeam22Location() throws Exception {
-		String seamHome = IRuntimeDetectionConstants.SEAM_22_HOME;
-		testSeamHome(seamHome, "2.2");
-	}
-	
-	@Test
-	public void testSeam20Location() throws Exception {
-		String seamHome = IRuntimeDetectionConstants.SEAM_20_HOME;
-		testSeamHome(seamHome, "2.0");
-	}
-
-	private void testSeamHome(String seamHome, String seamVersion) throws IOException {
-		File file = new File(seamHome);
-		assertTrue("The '" + file.getAbsolutePath()
-				+ "' path isn't valid.", file.isDirectory());
-		String[] seamFiles = file.list(new FilenameFilter() {
-			
-			public boolean accept(File dir, String name) {
-				if ("seam-gen".equals(name)) {
-					return true;
-				}
-				if ("lib".equals(name)) {
-					return true;
-				}
-				return false;
-			}
-		});
-		assertTrue("seamFiles : " + seamFiles, seamFiles != null
-				&& seamFiles.length == 2);
-		File jarFile = new File(seamHome, "lib/jboss-seam.jar");
-		assertTrue("The '" + jarFile.getAbsolutePath() + "' path isn't valid.",
-				jarFile.isFile());
-		JarFile jar = new JarFile(jarFile);
-		Attributes attributes = jar.getManifest().getMainAttributes();
-		String version = attributes.getValue(seamVersionAttributeName);
-		assertTrue("seamVersion: " + version, version != null && version.startsWith(seamVersion));
-	}
-	
-	@Test
-	public void testServerDefinitions() {
-		List<RuntimeDefinition> serverDefinitions = RuntimeUIActivator
-				.getDefault().getServerDefinitions();
-		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault()
-			.getRuntimePaths();
-		assertTrue("serverDefinitions.size()\nExpected: 6\nWas: "
-				+ serverDefinitions.size() + 
-				"\nserverDefinitions: " + serverDefinitions +
-				"\nruntimePaths=" + runtimePaths, serverDefinitions.size() == 6);
-	}
-
-	@Test
-	public void testSeam22() {
-		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance()
-				.getRuntimes();
-		int count = 0;
-		for (SeamRuntime seamRuntime : seamRuntimes) {
-			SeamVersion version = seamRuntime.getVersion();
-			if (SeamVersion.SEAM_2_2.equals(version)) {
-				count++;
-			}
-		}
-		assertTrue("Seam 2.2\nExpected: 1\nWas: " + count, count == 1);
-	}
-
-	@Test
-	public void testSeam20() {
-		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance()
-				.getRuntimes();
-		int count = 0;
-		for (SeamRuntime seamRuntime : seamRuntimes) {
-			SeamVersion version = seamRuntime.getVersion();
-			if (SeamVersion.SEAM_2_0.equals(version)) {
-				count++;
-			}
-		}
-		assertTrue("Seam 2.0\nExpected: 2\nWas: " + count, count == 2);
-	}
-
-	@Test
-	public void testSeam12() {
-		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance()
-				.getRuntimes();
-		int count = 0;
-		for (SeamRuntime seamRuntime : seamRuntimes) {
-			SeamVersion version = seamRuntime.getVersion();
-			if (SeamVersion.SEAM_1_2.equals(version)) {
-				count++;
-			}
-		}
-		assertTrue("Seam 1.2\nExpected: 1\nWas: " + count, count == 1);
-	}
-
-	@Test
-	public void testSeamRuntimes() {
-		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance()
-				.getRuntimes();
-		assertTrue("seamRuntimes.length\nExpected: 4\nWas: "
-				+ seamRuntimes.length, seamRuntimes.length == 4);
-	}
-
-	@Test
-	public void testJBossAs42() {
-		IRuntime[] runtimes = ServerCore.getRuntimes();
-		int count = 0;
-		for (IRuntime runtime : runtimes) {
-			IRuntimeType runtimeType = runtime.getRuntimeType();
-			if (IJBossToolingConstants.AS_42.equals(runtimeType.getId())) {
-				count++;
-			}
-		}
-		assertTrue("JBoss AS 4.2\nExpected: 1\nWas: " + count, count == 1);
-	}
-
-	@Test
-	public void testJBossAs51() {
-		IRuntime[] runtimes = ServerCore.getRuntimes();
-		int count = 0;
-		for (IRuntime runtime : runtimes) {
-			IRuntimeType runtimeType = runtime.getRuntimeType();
-			if (IJBossToolingConstants.AS_51.equals(runtimeType.getId())) {
-				count++;
-			}
-		}
-		assertTrue("JBoss AS 5.1\nExpected: 1\nWas: " + count, count == 1);
-	}
-	
-	@Test
-	public void testJBossAs70() {
-		IRuntime[] runtimes = ServerCore.getRuntimes();
-		int count = 0;
-		for (IRuntime runtime : runtimes) {
-			IRuntimeType runtimeType = runtime.getRuntimeType();
-			if (IJBossToolingConstants.AS_70.equals(runtimeType.getId())) {
-				count++;
-			}
-		}
-		assertTrue("JBoss AS 7.0\nExpected: 1\nWas: " + count, count == 1);
-	}
-
-	@Test
-	public void testJBossEap43() {
-		IRuntime[] runtimes = ServerCore.getRuntimes();
-		int count = 0;
-		for (IRuntime runtime : runtimes) {
-			IRuntimeType runtimeType = runtime.getRuntimeType();
-			if (IJBossToolingConstants.EAP_43.equals(runtimeType.getId())) {
-				count++;
-			}
-		}
-		assertTrue("JBoss EAP 4.3\nExpected: 1\nWas: " + count, count == 1);
-	}
-
-	@Test
-	public void testWtpRuntimes() {
-		IRuntime[] runtimes = ServerCore.getRuntimes();
-		assertTrue("runtimes.length\nExpected: 4\nWas: " + runtimes.length,
-				runtimes.length == 4);
-	}
-	
-	@Test
-	public void testIncludedDefinitions() {
-		for (RuntimeDefinition serverDefinition:RuntimeUIActivator.getDefault().getServerDefinitions()){
-			String type = serverDefinition.getType();
-			if (EAP.equals(type)) {
-				assertTrue("EAP has to include server definitions", serverDefinition.getIncludedServerDefinitions().size() > 0);
-				for(RuntimeDefinition included:serverDefinition.getIncludedServerDefinitions()) {
-					assertTrue("Invalid parent definition", included.getParent() == serverDefinition);
-				}
-			}
-		}
-	}
-	
-	@Test
-	public void testSavePreferences() throws Exception {
-		// saves preferences
-		Bundle bundle = Platform.getBundle(RuntimeUIActivator.PLUGIN_ID);
-		bundle.stop();
-		// loads preferences
-		bundle.start();
-		// calls tests again
-		testServerDefinitions();
-		testIncludedDefinitions();
-		testRuntimePaths();
-		testRuntimeDetectors();
-		testLocations();
-		testSeamRuntimes();
-		testWtpRuntimes();
-		testSeam22();
-		testSeam22Location();
-	}
-	
-	@Test
-	public void testOldWorkspace() throws Exception {
-		String runtimes = ConfigurationScope.INSTANCE.getNode(
-				RuntimeUIActivator.PLUGIN_ID).get(
-				RuntimeUIActivator.RUNTIME_PATHS, null);
-		// removes version and included definitions
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-	    Document doc = factory.newDocumentBuilder().parse(new InputSource(new StringReader(runtimes)));
-		Element runtimePaths = (Element) doc.getElementsByTagName(RuntimeUIActivator.RUNTIME_PATHS).item(0);
-		runtimePaths.removeAttribute(RuntimeUIActivator.PREFERENCES_VERSION);
-		removeIncluded(doc);
-		runtimes = serialize(doc);
-	    // restarts the bundle
-		Bundle bundle = Platform.getBundle(RuntimeUIActivator.PLUGIN_ID);
-		bundle.stop();
-		bundle.start();
-		// saves preferences
-		ConfigurationScope.INSTANCE.getNode(RuntimeUIActivator.PLUGIN_ID).put(
-				RuntimeUIActivator.RUNTIME_PATHS, runtimes);
-		// calls tests again 
-		testIncludedDefinitions();
-		testServerDefinitions();
-	}
-	
-	private void removeIncluded(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE
-				&& node.getNodeName().equals("included")) {
-			node.getParentNode().removeChild(node);
-		} else {
-			NodeList list = node.getChildNodes();
-			for (int i = 0; i < list.getLength(); i++) {
-				removeIncluded(list.item(i));
-			}
-		}
-	}
-	
-	@Test
-	public void testInvalidDetectors() {
-		Set<IRuntimeDetector> detectors = RuntimeCoreActivator.getDeclaredRuntimeDetectors();
-		IRuntimeDetector invalidDetector = null;
-		for (IRuntimeDetector detector:detectors) {
-			if (detector instanceof InvalidRuntimeDetector) {
-				invalidDetector = detector;
-			}
-		}
-		assertFalse("Invalid detector is enabled.", invalidDetector.isEnabled());
-	}
-	
-	private String serialize(Document doc) throws TransformerException {
-		StringWriter stringWriter = new StringWriter(); 
-		Transformer serializer = TransformerFactory.newInstance().newTransformer();
-        serializer.transform(new DOMSource(doc), new StreamResult(stringWriter));
-        return stringWriter.toString(); 
-	}
+public class RuntimeDetectionTest {
+	// Logic moved to seam tests
 }

Added: trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeTestActivator.java
===================================================================
--- trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeTestActivator.java	                        (rev 0)
+++ trunk/runtime/tests/org.jboss.tools.runtime.test/src/org/jboss/tools/runtime/test/RuntimeTestActivator.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,45 @@
+package org.jboss.tools.runtime.test;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+public class RuntimeTestActivator extends Plugin {
+
+	// The shared instance
+	private static RuntimeTestActivator plugin;
+	
+	
+	/**
+	 * The constructor
+	 */
+	public RuntimeTestActivator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static RuntimeTestActivator getDefault() {
+		return plugin;
+	}
+
+}

Modified: trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/feature.xml
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/feature.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/feature.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -2,7 +2,7 @@
 <feature
       id="org.jboss.tools.runtime.seam.detector.feature"
       label="%featureName"
-      version="1.4.0.qualifier"
+      version="3.4.0.qualifier"
       provider-name="%providerName"
       plugin="org.jboss.tools.runtime.seam.detector">
 

Modified: trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/pom.xml
===================================================================
--- trunk/runtime/features/org.jboss.tools.runtime.seam.detector.feature/pom.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/seam/features/org.jboss.tools.runtime.seam.detector.feature/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,11 +3,11 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
-		<groupId>org.jboss.tools.runtime</groupId>
+		<groupId>org.jboss.tools.seam</groupId>
 		<artifactId>features</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
+		<version>3.4.0-SNAPSHOT</version>
 	</parent>
-	<groupId>org.jboss.tools.runtime.features</groupId>
+	<groupId>org.jboss.tools.seam.features</groupId>
 	<artifactId>org.jboss.tools.runtime.seam.detector.feature</artifactId>
 	
 	<packaging>eclipse-feature</packaging>
@@ -44,4 +44,4 @@
 			</plugin>
 		</plugins>
 	</build>
-</project>
\ No newline at end of file
+</project>

Modified: trunk/seam/features/pom.xml
===================================================================
--- trunk/seam/features/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/seam/features/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -14,6 +14,7 @@
 	<modules>
 		<module>org.jboss.tools.seam.feature</module>
 		<module>org.jboss.tools.seam.test.feature</module>
+		<module>org.jboss.tools.runtime.seam.detector.feature</module>
 	</modules>
 </project>
 	

Modified: trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/META-INF/MANIFEST.MF
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.seam.detector/META-INF/MANIFEST.MF	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/META-INF/MANIFEST.MF	2012-08-30 10:39:06 UTC (rev 43321)
@@ -1,18 +1,39 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %BundleName
-Bundle-SymbolicName: org.jboss.tools.runtime.seam.detector;singleton:=true
-Bundle-Version: 1.4.0.qualifier
-Bundle-Activator: org.jboss.tools.runtime.seam.detector.RuntimeSeamActivator
-Require-Bundle: org.eclipse.ui;bundle-version="3.7.0",
- org.eclipse.core.runtime;bundle-version="3.7.0",
- org.eclipse.core.resources;bundle-version="3.7.0",
- org.jboss.tools.seam.core,
- org.eclipse.ui.navigator;bundle-version="3.5.100",
- org.eclipse.ui.workbench;bundle-version="3.7.0",
- org.jboss.tools.common,
- org.jboss.tools.runtime.core
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Bundle-Localization: plugin
-Bundle-Vendor: %BundleVendor
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %BundleName
+Bundle-SymbolicName: org.jboss.tools.runtime.seam.detector;singleton:=true
+Bundle-Version: 3.4.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.junit;bundle-version="4.8.1",
+ org.jboss.tools.runtime.ui,
+ org.jboss.tools.runtime.core,
+ org.jboss.tools.tests,
+ org.jboss.tools.seam.core,
+ org.eclipse.datatools.connectivity,
+ org.eclipse.datatools.connectivity.db.generic,
+ org.jboss.tools.common,
+ org.jboss.tools.tests,
+ org.jboss.ide.eclipse.as.core,
+ org.eclipse.wst.server.core,
+ org.eclipse.datatools.enablement.hsqldb,
+ org.eclipse.datatools.enablement.hsqldb.dbdefinition,
+ org.eclipse.datatools.enablement.hsqldb.ui,
+ org.eclipse.jst.jee,
+ org.eclipse.jst.jee.ejb,
+ org.eclipse.jst.jee.ui,
+ org.eclipse.jst.jee.web,
+ org.eclipse.ui,
+ org.eclipse.core.resources,
+ org.jboss.tools.jsf.vpe.seam,
+ org.jboss.tools.seam.pages.xml,
+ org.jboss.tools.seam.ui,
+ org.jboss.tools.seam.ui.pages,
+ org.jboss.tools.seam.xml,
+ org.jboss.tools.seam.xml.ui,
+ org.jboss.tools.seam.text.ext,
+ org.jboss.tools.runtime.as.detector
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: %BundleVendor
+Bundle-Localization: plugin
+

Modified: trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/pom.xml
===================================================================
--- trunk/runtime/plugins/org.jboss.tools.runtime.seam.detector/pom.xml	2012-08-24 01:04:29 UTC (rev 43203)
+++ trunk/seam/plugins/org.jboss.tools.runtime.seam.detector/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -3,12 +3,12 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
-		<groupId>org.jboss.tools.runtime</groupId>
+		<groupId>org.jboss.tools.seam</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
+		<version>3.4.0-SNAPSHOT</version>
 	</parent>
 	<groupId>org.jboss.tools.runtime.plugins</groupId>
 	<artifactId>org.jboss.tools.runtime.seam.detector</artifactId>
 	
 	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
+</project>

Modified: trunk/seam/plugins/pom.xml
===================================================================
--- trunk/seam/plugins/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/seam/plugins/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -19,6 +19,7 @@
 		<module>org.jboss.tools.seam.ui.pages</module>
 		<module>org.jboss.tools.seam.xml</module>
 		<module>org.jboss.tools.seam.xml.ui</module>
+		<module>org.jboss.tools.runtime.seam.detector</module>
 	</modules>
 </project>
 	

Modified: trunk/seam/site/category.xml
===================================================================
--- trunk/seam/site/category.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/seam/site/category.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -11,6 +11,10 @@
 	<feature url="features/org.jboss.tools.seam.test.feature_0.0.0.jar" id="org.jboss.tools.seam.test.feature" version="0.0.0">
 		<category name="JBoss Tools seam Nightly Build Update Site"/>
 	</feature>
+        <feature url="features/org.jboss.tools.runtime.seam.detector.feature_0.0.0.jar" id="org.jboss.tools.runtime.seam.detector.feature" version="0.0.0">
+                <category name="JBoss Tools seam Nightly Build Update Site"/>
+        </feature>
+
 	<!-- Sources -->
 	<feature url="features/org.jboss.tools.seam.feature.source_0.0.0.jar" id="org.jboss.tools.seam.feature.source" version="0.0.0">
 		<category name="JBoss Tools seam Nightly Build Update Site"/>
@@ -18,4 +22,8 @@
 	<feature url="features/org.jboss.tools.seam.test.feature.source_0.0.0.jar" id="org.jboss.tools.seam.test.feature.source" version="0.0.0">
 		<category name="JBoss Tools seam Nightly Build Update Site"/>
 	</feature>
+        <feature url="features/org.jboss.tools.runtime.seam.detector.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.seam.detector.feature.source" version="0.0.0">
+                <category name="JBoss Tools seam Nightly Build Update Site"/>
+        </feature>
+
 </site>

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.classpath
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.classpath	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.classpath	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>


Property changes on: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.classpath
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.project
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.project	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.project	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.jboss.tools.runtime.seam.detector.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>


Property changes on: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.project
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/.settings/org.eclipse.jdt.core.prefs	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,8 @@
+#Thu Mar 24 21:12:52 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/META-INF/MANIFEST.MF	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/META-INF/MANIFEST.MF	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,41 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %BundleName
+Bundle-SymbolicName: org.jboss.tools.runtime.seam.detector.test;singleton:=true
+Bundle-Activator: org.jboss.tools.runtime.seam.detector.test.SeamRuntimeDetectorTestActivator
+Bundle-Version: 3.4.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.junit;bundle-version="4.8.1",
+ org.jboss.tools.runtime.ui,
+ org.jboss.tools.runtime.core,
+ org.jboss.tools.tests,
+ org.jboss.tools.seam.core,
+ org.eclipse.datatools.connectivity,
+ org.eclipse.datatools.connectivity.db.generic,
+ org.jboss.tools.common,
+ org.jboss.tools.tests,
+ org.jboss.ide.eclipse.as.core,
+ org.eclipse.wst.server.core,
+ org.eclipse.datatools.enablement.hsqldb,
+ org.eclipse.datatools.enablement.hsqldb.dbdefinition,
+ org.eclipse.datatools.enablement.hsqldb.ui,
+ org.eclipse.jst.jee,
+ org.eclipse.jst.jee.ejb,
+ org.eclipse.jst.jee.ui,
+ org.eclipse.jst.jee.web,
+ org.eclipse.ui,
+ org.eclipse.core.resources,
+ org.jboss.tools.jsf.vpe.seam,
+ org.jboss.tools.seam.pages.xml,
+ org.jboss.tools.seam.ui,
+ org.jboss.tools.seam.ui.pages,
+ org.jboss.tools.seam.xml,
+ org.jboss.tools.seam.xml.ui,
+ org.jboss.tools.seam.text.ext,
+ org.jboss.tools.runtime.as.detector;bundle-version="2.4.0",
+ org.jboss.tools.runtime.seam.detector;bundle-version="3.4.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: %BundleVendor
+Bundle-Localization: plugin
+Export-Package: org.jboss.tools.runtime.seam.detector.test

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/build.properties
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/build.properties	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/build.properties	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.properties,\
+               plugin.xml
+src.includes = *

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.properties
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.properties	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.properties	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,3 @@
+#Properties file for org.jboss.tools.project.examples
+BundleVendor = JBoss by Red Hat
+BundleName = JBoss Runtime Detection Tests
\ No newline at end of file

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.xml
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.xml	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+</plugin>


Property changes on: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/plugin.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Copied: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/pom.xml (from rev 43260, trunk/runtime/tests/org.jboss.tools.runtime.test/pom.xml)
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/pom.xml	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.jboss.tools.seam</groupId>
+		<artifactId>tests</artifactId>
+		<version>3.4.0-SNAPSHOT</version>
+	</parent>
+	<groupId>org.jboss.tools.seam.tests</groupId>
+	<artifactId>org.jboss.tools.runtime.seam.detector.test</artifactId>
+	
+	<packaging>eclipse-test-plugin</packaging>
+
+	<properties>
+		<systemProperties>-Djbosstools.test.jboss.home.4.2=${requirementsDirectory}/jboss-4.2.3.GA -Djbosstools.test.jboss.home.5.1=${requirementsDirectory}/jboss-5.1.0.GA -Djbosstools.test.seam.2.0.1.GA.home=${requirementsDirectory}/jboss-seam-2.0.1.GA -Djbosstools.test.seam.2.2.0.GA.home=${requirementsDirectory}/jboss-seam-2.2.0.GA -Djbosstools.test.eap.4.3.home=${requirementsDirectory}/jboss-eap-4.3 -Dskip.runtime.scanner=true -Djbosstools.test.jboss.home.7.0=${requirementsDirectory}/jboss-as-7.0.0.Final -Dorg.jboss.tools.tests.skipPrivateRequirements=${skipPrivateRequirements}</systemProperties>
+	</properties>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>install-as</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>unpack</goal>
+						</goals>
+						<configuration>
+							<artifactItems>
+								<artifactItem>
+									<groupId>org.jboss.jbossas</groupId>
+									<artifactId>jboss-as-dist</artifactId>
+									<version>4.2.3.GA</version>
+									<type>zip</type>
+								</artifactItem>
+								<artifactItem>
+									<groupId>org.jboss.as</groupId>
+									<artifactId>jboss-as-dist</artifactId>
+									<version>7.0.0.Final</version>
+									<type>zip</type>
+								</artifactItem>
+							</artifactItems>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>com.googlecode.maven-download-plugin</groupId>
+				<artifactId>maven-download-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>install-as-5.1.0</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://repository.jboss.org/sourceforge/jboss-5.1.0.GA.zip</url>
+							<md5>78322c75ca0c13002a04418b4a8bc920</md5>
+							<unpack>true</unpack>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-seam-2.0.1</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://repository.jboss.org/sourceforge/jboss-seam-2.0.1.GA.zip</url>
+							<unpack>true</unpack>
+							<md5>0a1accf94fd37e40ab1091ee593b8b75</md5>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-seam-2.2.0</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://repository.jboss.org/sourceforge/jboss-seam-2.2.0.GA.zip</url>
+							<unpack>true</unpack>
+							<md5>febaf032f989240fe3828a8f0f7fe98a</md5>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-eap</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://download.devel.redhat.com/released/JBEAP-4.3.0/CP03/zip/jboss-eap-noauth-4.3.0.GA_CP03.zip</url>
+							<md5>18dc28785c8b156b36e2d92db699064a</md5>
+							<unpack>true</unpack>
+							<skip>${skipPrivateRequirements}</skip>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-eap-seam-gen</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://download.jboss.org/jbosstools/test-runtimes/rhds-seam-gen-patch.zip</url>
+							<md5>79b37541804f49844ea7322c0ff599c1</md5>
+							<unpack>true</unpack>
+							<outputDirectory>${requirementsDirectory}/jboss-eap-4.3/seam</outputDirectory>
+							<skip>${skipPrivateRequirements}</skip>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-eap-fp</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://download.devel.redhat.com/released/JBEAP-4.3.0/CP03_FP01/zip/jboss-eap-fp-4.3.0.CP03-FP01.zip</url>
+							<md5>38fe2a2a55edc5239ba680eff3b29533</md5>
+							<unpack>true</unpack>
+							<skip>${skipPrivateRequirements}</skip>
+						</configuration>
+					</execution>
+					<execution>
+						<id>install-seam-fp-patch</id>
+						<phase>pre-integration-test</phase>
+						<goals>
+							<goal>wget</goal>
+						</goals>
+						<configuration>
+							<url>http://download.jboss.org/jbosstools/test-runtimes/jbds-seamfp-patch.zip</url>
+							<md5>c3af3b56add0acccb72db88de477f3c7</md5>
+							<unpack>true</unpack>
+							<skip>${skipPrivateRequirements}</skip>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tychoVersion}</version>
+				<configuration>
+					<testSuite>org.jboss.tools.runtime.seam.detector.test</testSuite>
+					<testClass>org.jboss.tools.runtime.seam.detector.test.SeamRuntimeDetectionAllTests</testClass>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
\ No newline at end of file

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/IRuntimeDetectionConstants.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/IRuntimeDetectionConstants.java	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/IRuntimeDetectionConstants.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,32 @@
+/*************************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.runtime.seam.detector.test;
+
+/**
+ * 
+ * @author snjeza
+ *
+ */
+public interface IRuntimeDetectionConstants {
+	
+	final static String JBOSS_42_HOME = System.getProperty("jbosstools.test.jboss.home.4.2", "E:\\JBossRuntimes\\jboss-4.2.3.GA");
+
+	final static String JBOSS_51_HOME = System.getProperty("jbosstools.test.jboss.home.5.1", "E:\\JBossRuntime2\\jboss-5.1.0.GA");
+
+	final static String JBOSS_70_HOME = System.getProperty("jbosstools.test.jboss.home.7.0", "E:\\jboss-as-7.0.1.Final");
+
+	final static String SEAM_20_HOME = System.getProperty("jbosstools.test.seam.2.0.1.GA.home", "E:\\JBossRuntimes\\jboss-seam-2.0.1.GA");
+
+	final static String SEAM_22_HOME = System.getProperty("jbosstools.test.seam.2.2.0.GA.home", "E:\\JBossRuntime2\\jboss-seam-2.2.1.Final");
+
+	final static String EAP_43_HOME = System.getProperty("jbosstools.test.eap.4.3.home", "E:\\jboss-eap43_cp03");
+
+}

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionAllTests.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionAllTests.java	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionAllTests.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,23 @@
+/*************************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.runtime.seam.detector.test;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+ at RunWith(Suite.class)
+ at SuiteClasses({
+	SeamRuntimeDetectionTest.class
+})
+public class SeamRuntimeDetectionAllTests {
+
+}
\ No newline at end of file

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionTest.java	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectionTest.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,424 @@
+/*************************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc. and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     JBoss by Red Hat - Initial implementation.
+ ************************************************************************************/
+package org.jboss.tools.runtime.seam.detector.test;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.jar.Attributes;
+import java.util.jar.JarFile;
+
+import junit.framework.Assert;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.IRuntimeType;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
+import org.jboss.tools.runtime.as.detector.IJBossRuntimePluginConstants;
+import org.jboss.tools.runtime.core.JBossRuntimeLocator;
+import org.jboss.tools.runtime.core.RuntimeCoreActivator;
+import org.jboss.tools.runtime.core.model.IRuntimeDetector;
+import org.jboss.tools.runtime.core.model.RuntimeDefinition;
+import org.jboss.tools.runtime.core.model.RuntimePath;
+import org.jboss.tools.runtime.ui.RuntimeUIActivator;
+import org.jboss.tools.seam.core.project.facet.SeamRuntime;
+import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager;
+import org.jboss.tools.seam.core.project.facet.SeamVersion;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * 
+ * @author snjeza
+ * @author rob stryker
+ */
+public class SeamRuntimeDetectionTest extends Assert implements IJBossRuntimePluginConstants {
+	private final static String seamVersionAttributeName = "Seam-Version";
+	private final static String SKIP_PRIVATE = "org.jboss.tools.tests.skipPrivateRequirements";
+	
+	@BeforeClass
+	public static void create() {
+		RuntimeCoreActivator.getDefault();
+		RuntimeUIActivator.getDefault();
+	}
+
+	@Before
+	public void setUp() {
+		clearAll();
+	}
+	@After
+	public void tearDown() {
+		clearAll();
+	}
+	
+	public void clearAll() {
+		// remove all wtp servers
+		IServer[] s = ServerCore.getServers();
+		for( int i = 0; i < s.length; i++ ) {
+			try {
+				s[i].delete();
+			} catch(CoreException ce ) {
+				ce.printStackTrace();
+				fail();
+			}
+		}
+
+		// Remove all wtp runtimes
+		IRuntime[] r = ServerCore.getRuntimes();
+		for( int i = 0; i < r.length; i++ ) {
+			try {
+				r[i].delete();
+			} catch(CoreException ce ) {
+				ce.printStackTrace();
+				fail();
+			}
+		}
+		// Remove all seam runtimes
+		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance().getRuntimes();
+		for( int i = 0; i < seamRuntimes.length; i++ ) {
+			SeamRuntimeManager.getInstance().removeRuntime(seamRuntimes[i]);
+		}
+		SeamRuntimeManager.getInstance().save();
+	}
+	
+	
+	@Test
+	public void testRuntimeDetectors() {
+		Set<IRuntimeDetector> detectors = RuntimeCoreActivator.getRuntimeDetectors();
+		assertTrue("Runtime detectors don't exist.", detectors.size() > 0);
+		assertTrue(handlerExists("org.jboss.tools.runtime.handlers.SeamHandler"));
+	}
+	
+	private boolean handlerExists(String id) {
+		Set<IRuntimeDetector> detectors = RuntimeCoreActivator.getRuntimeDetectors();
+		boolean found = false;
+		Iterator<IRuntimeDetector> i = detectors.iterator();
+		while(i.hasNext()) {
+			IRuntimeDetector next = i.next();
+			String nid = next.getId();
+			if( id.equals(nid))
+				found = true;
+		}
+		return found;
+	}
+
+	@Test
+	public void testJBossAs42() {
+		testOneApplicationServer(IRuntimeDetectionConstants.JBOSS_42_HOME, IJBossToolingConstants.AS_42);
+	}
+	
+	@Test
+	public void testJBossAs51() {
+		testOneApplicationServer(IRuntimeDetectionConstants.JBOSS_51_HOME, IJBossToolingConstants.AS_51);
+	}
+	
+	@Test
+	public void testJBossAs70() {
+		testOneApplicationServer(IRuntimeDetectionConstants.JBOSS_70_HOME, IJBossToolingConstants.AS_70);
+	}
+
+	public void testOneApplicationServer(String homeDir, String typeId) {
+		List<RuntimeDefinition> runtimeDefinitions = initializeOnePath(homeDir);
+		RuntimeDefinition def1 = runtimeDefinitions.get(0);
+		
+		def1.setEnabled(false);
+		initializeDefinitions(runtimeDefinitions);
+		int count = countRuntimesOfType(typeId);
+		assertEquals(0, count);
+
+		def1.setEnabled(true);
+		initializeDefinitions(runtimeDefinitions);
+		count = countRuntimesOfType(typeId);
+		assertEquals(1, count);
+	}
+
+	private List<RuntimeDefinition> initializeOnePath(String homeDir) {
+		RuntimePath path = createRuntimePath(homeDir, false);
+		setRuntimePaths(path, true);
+		File file = new File(path.getPath());
+		assertTrue("The '" + file.getAbsolutePath() + "' path isn't valid.", file.isDirectory());
+
+		List<RuntimeDefinition> runtimeDefinitions = createDefinitionsForPath(path);
+		assertEquals(1, runtimeDefinitions.size());
+		RuntimeDefinition def1 = runtimeDefinitions.get(0);
+
+		File location = def1.getLocation();
+		assertTrue("The '" + location.getAbsolutePath() + "' path isn't valid.", location.isDirectory());
+		return runtimeDefinitions;
+	}
+	
+	
+	// 1.2 is bundled in eap ?
+	//	public void testSeam12() {
+//		testOneSeamLocation(IRuntimeDetectionConstants., SeamVersion.SEAM_1_2, "1.2");
+//		int count = countSeamRuntimesForVersion(SeamVersion.SEAM_1_2);
+//		assertEquals(1, count);
+//	}
+	
+
+	@Test
+	public void testJBossEap43() {
+		if( Boolean.getBoolean(SKIP_PRIVATE))
+			return;
+		
+		List<RuntimeDefinition> runtimeDefinitions = initializeOnePath(IRuntimeDetectionConstants.EAP_43_HOME);
+		RuntimeDefinition def1 = runtimeDefinitions.get(0);
+		
+		// Should setting this to false cascade to the nested definitions?
+		//def1.setEnabled(false);
+		setServerDefinitionsEnabledRecurse(def1, false);
+		initializeDefinitions(runtimeDefinitions);
+		int count = countRuntimesOfType(IJBossToolingConstants.EAP_43);
+		assertEquals(0, count);
+		count = countSeamRuntimesForVersion(SeamVersion.SEAM_1_2);
+		assertEquals(0, count);
+		
+		setServerDefinitionsEnabledRecurse(def1, true);
+		initializeDefinitions(runtimeDefinitions);
+		count = countRuntimesOfType(IJBossToolingConstants.EAP_43);
+		assertEquals(1, count);
+		count = countSeamRuntimesForVersion(SeamVersion.SEAM_1_2);
+		assertEquals(1, count);
+	}
+	private void setServerDefinitionsEnabledRecurse(RuntimeDefinition def, boolean enabled) {
+		def.setEnabled(enabled);
+		List<RuntimeDefinition> nested = def.getIncludedServerDefinitions();
+		Iterator<RuntimeDefinition> i = nested.iterator();
+		while(i.hasNext()) {
+			setServerDefinitionsEnabledRecurse(i.next(), enabled);
+		}
+	}
+	@Test
+	public void testSeam20() throws Exception {
+		testOneSeamLocation(IRuntimeDetectionConstants.SEAM_20_HOME, SeamVersion.SEAM_2_0, "2.0");
+	}
+	
+	@Test
+	public void testSeam22() throws Exception  {
+		testOneSeamLocation(IRuntimeDetectionConstants.SEAM_22_HOME, SeamVersion.SEAM_2_2, "2.2");
+	}
+
+
+	public void testOneSeamLocation(String homeDir, SeamVersion version, String versionString) throws Exception {
+		testSeamHome(homeDir, versionString);
+
+		List<RuntimeDefinition> runtimeDefinitions = initializeOnePath(homeDir);
+		RuntimeDefinition def1 = runtimeDefinitions.get(0);
+		
+		def1.setEnabled(false);
+		initializeDefinitions(runtimeDefinitions);
+		int count = countSeamRuntimesForVersion(version); 
+		assertEquals(0, count);
+
+		def1.setEnabled(true);
+		initializeDefinitions(runtimeDefinitions);
+		count = countSeamRuntimesForVersion(version);
+		assertEquals(1, count);
+		
+		List<RuntimeDefinition> nested = def1.getIncludedServerDefinitions();
+		System.out.println(nested.size());
+	}
+	
+	
+	private void testSeamHome(String seamHome, String seamVersion) throws IOException {
+		File file = new File(seamHome);
+		assertTrue("The '" + file.getAbsolutePath()
+				+ "' path isn't valid.", file.isDirectory());
+		String[] seamFiles = file.list(new FilenameFilter() {
+			
+			public boolean accept(File dir, String name) {
+				if ("seam-gen".equals(name)) {
+					return true;
+				}
+				if ("lib".equals(name)) {
+					return true;
+				}
+				return false;
+			}
+		});
+		assertTrue("seamFiles : " + seamFiles, seamFiles != null
+				&& seamFiles.length == 2);
+		File jarFile = new File(seamHome, "lib/jboss-seam.jar");
+		assertTrue("The '" + jarFile.getAbsolutePath() + "' path isn't valid.",
+				jarFile.isFile());
+		JarFile jar = new JarFile(jarFile);
+		Attributes attributes = jar.getManifest().getMainAttributes();
+		String version = attributes.getValue(seamVersionAttributeName);
+		assertTrue("seamVersion: " + version, version != null && version.startsWith(seamVersion));
+	}
+	
+	
+
+	/* 
+	 *  Utility methods for counting things 
+	 */
+	
+	/* Pass to all handlers the list of runtime definitions and let them initialize them */
+	private void initializeDefinitions(List<RuntimeDefinition> runtimeDefinitions) {
+		Set<IRuntimeDetector> detectors = RuntimeCoreActivator
+				.getRuntimeDetectors();
+		for (IRuntimeDetector detector : detectors) {
+			if (detector.isEnabled()) {
+				detector.initializeRuntimes(runtimeDefinitions);
+			}
+		}
+	}
+	private List<RuntimeDefinition> createDefinitionsForPath(RuntimePath runtimePath) {
+		JBossRuntimeLocator locator = new JBossRuntimeLocator();
+		List<RuntimeDefinition> serverDefinitions = locator
+				.searchForRuntimes(runtimePath.getPath(),
+						new NullProgressMonitor());
+		
+		// Shouldn't this be done by the framework somehow??
+		runtimePath.getServerDefinitions().clear();
+		for (RuntimeDefinition serverDefinition : serverDefinitions) {
+			serverDefinition.setRuntimePath(runtimePath);
+		}
+		runtimePath.getServerDefinitions().addAll(serverDefinitions);
+		return serverDefinitions;
+	}
+	
+	private RuntimePath createRuntimePath(String path, boolean enableForStartup) {
+		RuntimePath runtimePath = new RuntimePath(path);
+		runtimePath.setScanOnEveryStartup(enableForStartup);
+		return runtimePath;
+	}
+	private void setRuntimePaths(RuntimePath runtimePath, boolean save) {
+		Set<RuntimePath> runtimePaths = RuntimeUIActivator.getDefault().getRuntimePaths();
+		runtimePaths.clear();
+		runtimePaths.add(runtimePath);
+		if( save )
+			RuntimeUIActivator.getDefault().saveRuntimePaths();
+	}
+
+
+	private int countSeamRuntimes() {
+		return SeamRuntimeManager.getInstance().getRuntimes().length;
+	}
+	private int countSeamRuntimesForVersion(SeamVersion version) {
+		SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance().getRuntimes();
+		int count = 0;
+		for (SeamRuntime seamRuntime : seamRuntimes) {
+			SeamVersion version2 = seamRuntime.getVersion();
+			if (version.equals(version2)) {
+				count++;
+			}
+		}
+		return count;
+	}
+
+
+	private int countRuntimesOfType(String typeId) {
+		IRuntime[] runtimes = ServerCore.getRuntimes();
+		int count = 0;
+		for (IRuntime runtime : runtimes) {
+			IRuntimeType runtimeType = runtime.getRuntimeType();
+			if (typeId.equals(runtimeType.getId())) {
+				count++;
+			}
+		}
+		return count;
+	}
+
+	public void testWtpRuntimes() {
+		IRuntime[] runtimes = ServerCore.getRuntimes();
+		assertTrue("runtimes.length\nExpected: 4\nWas: " + runtimes.length,
+				runtimes.length == 4);
+	}
+	
+	public void testIncludedDefinitions() {
+		for (RuntimeDefinition serverDefinition:RuntimeUIActivator.getDefault().getServerDefinitions()){
+			String type = serverDefinition.getType();
+			if (EAP.equals(type)) {
+				assertTrue("EAP has to include server definitions", serverDefinition.getIncludedServerDefinitions().size() > 0);
+				for(RuntimeDefinition included:serverDefinition.getIncludedServerDefinitions()) {
+					assertTrue("Invalid parent definition", included.getParent() == serverDefinition);
+				}
+			}
+		}
+	}
+	
+	
+	
+	// Things to test in runtime core test suite, not here
+	
+//	
+//	@Test
+//	public void testSavePreferences() throws Exception {
+//		// saves preferences
+//		Bundle bundle = Platform.getBundle(RuntimeUIActivator.PLUGIN_ID);
+//		bundle.stop();
+//		// loads preferences
+//		bundle.start();
+//		// calls tests again
+//		testServerDefinitions();
+//		testIncludedDefinitions();
+//		testRuntimePaths();
+//		testRuntimeDetectors();
+//		testLocations();
+//		testSeamRuntimes();
+//		testWtpRuntimes();
+//		testSeam22();
+//		testSeam22Location();
+//	}
+//	
+//	@Test
+//	public void testOldWorkspace() throws Exception {
+//		String runtimes = ConfigurationScope.INSTANCE.getNode(
+//				RuntimeUIActivator.PLUGIN_ID).get(
+//				RuntimeUIActivator.RUNTIME_PATHS, null);
+//		// removes version and included definitions
+//		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+//	    Document doc = factory.newDocumentBuilder().parse(new InputSource(new StringReader(runtimes)));
+//		Element runtimePaths = (Element) doc.getElementsByTagName(RuntimeUIActivator.RUNTIME_PATHS).item(0);
+//		runtimePaths.removeAttribute(RuntimeUIActivator.PREFERENCES_VERSION);
+//		removeIncluded(doc);
+//		runtimes = serialize(doc);
+//	    // restarts the bundle
+//		Bundle bundle = Platform.getBundle(RuntimeUIActivator.PLUGIN_ID);
+//		bundle.stop();
+//		bundle.start();
+//		// saves preferences
+//		ConfigurationScope.INSTANCE.getNode(RuntimeUIActivator.PLUGIN_ID).put(
+//				RuntimeUIActivator.RUNTIME_PATHS, runtimes);
+//		// calls tests again 
+//		testIncludedDefinitions();
+//		testServerDefinitions();
+//	}
+//	
+//	private void removeIncluded(Node node) {
+//		if (node.getNodeType() == Node.ELEMENT_NODE
+//				&& node.getNodeName().equals("included")) {
+//			node.getParentNode().removeChild(node);
+//		} else {
+//			NodeList list = node.getChildNodes();
+//			for (int i = 0; i < list.getLength(); i++) {
+//				removeIncluded(list.item(i));
+//			}
+//		}
+//	}
+//	
+//	private String serialize(Document doc) throws TransformerException {
+//		StringWriter stringWriter = new StringWriter(); 
+//		Transformer serializer = TransformerFactory.newInstance().newTransformer();
+//        serializer.transform(new DOMSource(doc), new StreamResult(stringWriter));
+//        return stringWriter.toString(); 
+//	}
+}

Added: trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectorTestActivator.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectorTestActivator.java	                        (rev 0)
+++ trunk/seam/tests/org.jboss.tools.runtime.seam.detector.test/src/org/jboss/tools/runtime/seam/detector/test/SeamRuntimeDetectorTestActivator.java	2012-08-30 10:39:06 UTC (rev 43321)
@@ -0,0 +1,45 @@
+package org.jboss.tools.runtime.seam.detector.test;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+public class SeamRuntimeDetectorTestActivator extends Plugin {
+
+	// The shared instance
+	private static SeamRuntimeDetectorTestActivator plugin;
+	
+	
+	/**
+	 * The constructor
+	 */
+	public SeamRuntimeDetectorTestActivator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static SeamRuntimeDetectorTestActivator getDefault() {
+		return plugin;
+	}
+
+}

Modified: trunk/seam/tests/pom.xml
===================================================================
--- trunk/seam/tests/pom.xml	2012-08-30 10:19:33 UTC (rev 43320)
+++ trunk/seam/tests/pom.xml	2012-08-30 10:39:06 UTC (rev 43321)
@@ -45,6 +45,7 @@
 
 		<module>org.jboss.tools.seamfp.core.test</module>
 		<module>org.jboss.tools.seamfp.ui.test</module>
+		<module>org.jboss.tools.runtime.seam.detector.test</module>
 	</modules>
 	
 	<properties>



More information about the jbosstools-commits mailing list