diff --git a/testbundle-to-eclipse-test/alltest.xml b/testbundle-to-eclipse-test/alltest.xml
new file mode 100644
index 0000000..b5dd783
--- /dev/null
+++ b/testbundle-to-eclipse-test/alltest.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+<property name="test-classname" value="" />
+<property name="test-plugin-name" value="" />
+
+<property name="library-file" value="${eclipse-home}/dropins/${subProjectName2}/plugins/org.eclipse.test/library.xml" />
+
+<property name="swtbot-library-file" value="${basedir}/../../swtbot-library.xml" />
+
+<!-- The property ${eclipse-home} should be passed into this script -->
+<!-- Set a meaningful default value for when it is not. -->
+<property name="eclipse-home" value="${basedir}/../.." />
+
+<!-- This target holds all initialization code that needs to be done for -->
+<!-- all tests that are to be run. Initialization for individual tests -->
+<!-- should be done within the body of the suite target. -->
+<target name="init">
+<tstamp />
+<delete>
+<fileset dir="${eclipse-home}" includes="org*.xml" />
+</delete>
+</target>
+
+<!-- This target defines the tests that need to be run. -->
+<target name="suite">
+<property name="test-folder" value="${eclipse-home}/test_folder" />
+<delete dir="${test-folder}" quiet="true" />
+<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+<property name="data-dir" value="${test-folder}" />
+<property name="plugin-name" value="${test-plugin-name}" />
+<property name="classname" value="${test-classname}" />
+</ant>
+</target>
+
+<!-- This target holds code to cleanup the testing environment after -->
+<!-- after all of the tests have been run. You can use this target to -->
+<!-- delete temporary files that have been created. -->
+<target name="cleanup">
+<mkdir dir="${results}/consolelogs" />
+<copy failonerror="false" file="${eclipse-home}/results/${test-classname}.txt" tofile="${results}/consolelogs/${test-classname}_${platform}.metadata.log.txt" />
+</target>
+
+<!-- This target runs the test suite. Any actions that need to happen -->
+<!-- after all the tests have been run should go here. -->
+<target name="run" depends="init,suite,cleanup">
+<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+<property name="includes" value="org*.xml" />
+<property name="output-file" value="${test-plugin-name}-${test-classname}.xml" />
+</ant>
+</target>
+
+<target name="all" depends="run" description="Dummy target to run all tests">
+</target>
+
+</project>
diff --git a/testbundle-to-eclipse-test/eclipse-runTestBundles b/testbundle-to-eclipse-test/eclipse-runTestBundles
new file mode 100755
index 0000000..fddc833
--- /dev/null
+++ b/testbundle-to-eclipse-test/eclipse-runTestBundles
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+if [ ! $# -eq 1 ]; then
+  echo "USAGE : $0 PATH/TO/BUNDLES/DIRECTORY"
+  exit 1
+fi
+
+./prepRuntimeLocation.sh || exit 1
+./prepAllTestBundles.sh $1 || exit 1
+
+pushd target
+
+./runtests.sh -os linux -ws gtk -arch `arch`
diff --git a/testbundle-to-eclipse-test/gatherBundles.sh b/testbundle-to-eclipse-test/gatherBundles.sh
new file mode 100755
index 0000000..94909eb
--- /dev/null
+++ b/testbundle-to-eclipse-test/gatherBundles.sh
@@ -0,0 +1,109 @@
+#! /bin/sh
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+prefix=$ROOT_PREFIX
+sdk=$1'-sdk'
+repo=$1
+
+eclipse=$prefix$(rpm --eval '%{_libdir}')/eclipse
+
+datadir=$prefix/usr/share/eclipse
+javadir=$prefix/usr/share/java
+jnidir=$prefix/usr/lib/java
+
+mkdir -p $sdk/plugins $sdk/features
+pushd $sdk
+
+      (cd $eclipse;
+	ls -d plugins/* features/* 2>/dev/null) |
+      while read f; do
+         [ ! -e $f ] && ln -s $eclipse/$f $f
+      done
+      (cd $eclipse/dropins; ls -d * 2>/dev/null) |
+      while read f; do
+	  if [ -e $eclipse/dropins/$f/eclipse ]; then
+	      (cd $eclipse/dropins/$f/eclipse;
+				ls -d plugins/* features/* 2>/dev/null) |
+	      while read g; do
+		  [ ! -e $g ] && \
+		    ln -s $eclipse/dropins/$f/eclipse/$g $g
+	      done
+          else
+	      (cd $eclipse/dropins/$f;
+				ls -d plugins/* features/* 2>/dev/null) |
+	      while read g; do
+	          [ ! -e $g ] && \
+		    ln -s $eclipse/dropins/$f/$g $g
+	      done
+          fi
+      done
+      (cd $datadir/dropins; ls -d * 2>/dev/null) |
+      while read f; do
+	  if [ -e $datadir/dropins/$f/eclipse ]; then
+	      (cd $datadir/dropins/$f/eclipse;
+				ls -d plugins/* features/* 2>/dev/null) |
+	      while read g; do
+		  [ ! -e $g ] && \
+		    ln -s $datadir/dropins/$f/eclipse/$g $g
+	      done
+          else
+	      (cd $datadir/dropins/$f;
+				ls -d plugins/* features/* 2>/dev/null) |
+	      while read g; do
+	          [ ! -e $g ] && \
+		    ln -s $datadir/dropins/$f/$g $g
+	      done
+          fi
+      done
+
+for p in $(ls -d $eclipse/dropins/jdt/plugins/*); do
+    plugin=$(basename $p)
+    [ ! -e plugins/$plugin ] && ln -s $eclipse/dropins/jdt/plugins/$plugin plugins/$plugin
+done
+for f in $(ls -d $eclipse/dropins/jdt/features/*); do
+    feature=$(basename $f)
+    [ ! -e features/$feature ] && ln -s $eclipse/dropins/jdt/features/$feature features/$feature
+done
+for p in $(ls -d $eclipse/dropins/sdk/plugins/*); do
+    plugin=$(basename $p)
+    [ ! -e plugins/$plugin ] && ln -s $eclipse/dropins/sdk/plugins/$plugin plugins/$plugin
+done
+for f in $(ls -d $eclipse/dropins/sdk/features/*); do
+    feature=$(basename $f)
+    [ ! -e features/$feature ] && ln -s $eclipse/dropins/sdk/features/$feature features/$feature
+done
+for p in $(ls -d $eclipse/plugins/*); do
+    plugin=$(basename $p)
+    [ ! -e plugins/$plugin ] && ln -s $eclipse/plugins/$plugin plugins/$plugin
+done
+for f in $(ls -d $eclipse/features/*); do
+    feature=$(basename $f)
+    [ ! -e features/$feature ] && ln -s $eclipse/features/$feature features/$feature
+done
+
+# jars in %%{_javadir} may not be uniquely named
+id=1
+for p in $(find $javadir -name "*.jar"); do
+    unzip -p $p 'META-INF/MANIFEST.MF' | grep -q 'Bundle-SymbolicName'
+    if [ $? = 0 ]; then
+        plugin=${id}-$(basename $p)
+        [ ! -e plugins/$plugin ] && ln -s $p plugins/$plugin
+        id=$((${id} + 1))
+    fi
+done
+id=1
+for p in $(find $jnidir -name "*.jar"); do
+    unzip -p $p 'META-INF/MANIFEST.MF' | grep -q 'Bundle-SymbolicName'
+    if [ $? = 0 ]; then
+        plugin=${id}-$(basename $p)
+        [ ! -e plugins/$plugin ] && ln -s $p plugins/$plugin
+        id=$((${id} + 1))
+    fi
+done
+
+popd
diff --git a/testbundle-to-eclipse-test/genRepo.sh b/testbundle-to-eclipse-test/genRepo.sh
new file mode 100755
index 0000000..bce9813
--- /dev/null
+++ b/testbundle-to-eclipse-test/genRepo.sh
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+prefix=$ROOT_PREFIX
+sdk=$1'-sdk'
+repo=$1
+
+java -jar $prefix/usr/lib*/eclipse/plugins/org.eclipse.equinox.launcher_*.jar -nosplash -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \
+-metadataRepository file:$repo \
+-artifactRepository file:$repo \
+-source $sdk \
+-compress -append -publishArtifacts
+
+rm -rf $sdk
diff --git a/testbundle-to-eclipse-test/prepAllTestBundles.sh b/testbundle-to-eclipse-test/prepAllTestBundles.sh
new file mode 100755
index 0000000..37a5666
--- /dev/null
+++ b/testbundle-to-eclipse-test/prepAllTestBundles.sh
@@ -0,0 +1,117 @@
+#! /bin/bash
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+# Prepare Eclipse Test Bundles
+
+# The definiton of an Eclipse Test Bundle for our purposes is any packaged
+# OSGi bundle containing a pom.xml with a packaging type of
+# 'eclipse-test-plugin'
+
+# Takes a single argument (absolute path of folder containing test bundles)
+
+if [ ! $# -eq 1 ]; then
+  echo "USAGE : $0 PATH/TO/BUNDLES/DIRECTORY"
+  exit 1
+fi
+
+testBundleFolder=$1
+echo 'Eclipse-BundleShape: dir' > MANIFEST.MF
+
+extraIUs=
+
+for jar in `find ${testBundleFolder} -name "*.jar"`; do
+  jarPomPath=`jar -tf ${jar} | grep 'pom.xml'`
+  unzip -p ${jar} ${jarPomPath} | grep -q '<packaging>eclipse-test-plugin</packaging>'
+  if [ $? -eq 0 ]; then
+    jarPomPath=`jar -tf ${jar} | grep 'pom.xml'`
+    bsname=`unzip -p ${jar} ${jarPomPath} | sed '/<parent>/,/<\/parent>/ d' | sed '/<build>/,/<\/build>/ d' | grep '<artifactId>' | sed 's/.*<artifactId>\(.*\)<\/artifactId>.*/\1/'`
+
+    # Detect SWTBot Tests
+    useSWTBot='false'
+    unzip -p ${jar} META-INF/MANIFEST.MF | grep -q 'swtbot'
+    if [ $? -eq 0 ]; then
+       useSWTBot='true'
+    fi
+
+    # Find Test class(es)
+    includepatterns=
+    testclasses=
+    testclass=`unzip -p ${jar} ${jarPomPath} | grep '<testClass>' | sed 's/.*<testClass>\(.*\)<\/testClass>.*/\1/'`
+    if [ "${testclass}" = '' ]; then
+      # Check for custom includes
+      includepatterns=`unzip -p ${jar} ${jarPomPath} | sed -n '/<includes>/,/<\/includes>/p' | sed -n 's/.*<include>\(.*\)<\/include>.*/\1/p' | sed 's/\*\*/\.\*/'`
+      for pat in ${includepatterns}; do
+        testclasses="${testclasses} `jar -tf ${jar} | grep -E "${pat}" | grep '.class' | grep -v '\\$' | tr '/' '.' | sed 's/\.class//'`"
+      done
+      if [ "${includepatterns}" = '' ]; then
+        testclass=`jar -tf ${jar} | grep '/AllTests.class' | tr '/' '.' | sed 's/\.class//'`
+      fi
+    fi
+    if [ "${testclass}" = '' ]; then
+      if [ "${includepatterns}" = '' ]; then
+        # Use default includes
+        testclasses=`jar -tf ${jar} | grep -E '/(Test.*\.class|.*Test\.class)' | grep -vE '/(Abstract.*\.class|.*Abstract\.class)' | grep -v '\\$' | tr '/' '.' | sed 's/\.class//'`
+      fi
+    else
+      testclasses="${testclass}"
+    fi
+
+    for testclass in ${testclasses} ; do
+      sed -i "/<target name=\"linuxtoolsTests\">/ a \\
+      <exec executable=\"\${basedir}/updateTestBundleXML.sh\"> \\
+      <arg value=\"${bsname}\" /> \\
+      <arg value=\"${testclass}\" /> \\
+      <arg value=\"${useSWTBot}\" /> \\
+      </exec> \\
+      <runTests testPlugin=\"${bsname}\" testClass=\"${testclass}\" />" \
+      target/test.xml
+    done
+
+    # Collect any extra IUs from each test bundle's tycho-surefire-plugin
+    unzip -p ${jar} ${jarPomPath} | grep -q '<artifactId>tycho-surefire-plugin<\/artifactId>'
+    if [ $? -eq 0 ]; then
+      IUList=`unzip -p ${jar} ${jarPomPath} | sed -n '/<dependency>/,/<\/dependency>/ p' | grep -B 1 '<artifactId>'`
+      isFeature=0
+      for elem in ${IUList}; do
+        echo ${elem} | grep -q '<type>eclipse-feature<\/type>'
+        if [ $? -eq 0 ]; then
+          isFeature=1
+        fi
+        echo ${elem} | grep -q '<artifactId>'
+        if [ $? -eq 0 ]; then
+          extraIU=`echo ${elem} | sed 's/.*<artifactId>\(.*\)<\/artifactId>.*/\1/'`
+          if [ ${isFeature} -eq 1 ]; then
+            extraIU=${extraIU}'.feature.group'
+          fi
+          extraIUs="${extraIUs} ${extraIU}"
+          isFeature=0
+        fi
+      done
+    fi
+    
+    # Make 'Eclipse-BundleShape: dir'
+    jarName=`basename ${jar}`
+    symJarName=`ls target-sdk/plugins/ | grep ${jarName}`
+    # Might be multiple symlinked jars providing same bundle (rare)
+    for file in ${symJarName}; do
+      rm target-sdk/plugins/${file}
+    done
+    cp ${jar} target-sdk/plugins/
+    jar -umf ./MANIFEST.MF target-sdk/plugins/${jarName}
+
+  fi
+done
+
+# Always install the extra IUs
+# Not by choice but because this is easier to do
+extraIUs=`echo -n ${extraIUs} | tr ' ' '\n' | sort | uniq | tr '\n' ','`
+sed -i "s/\"-installIUs \(.*\)\"/\"-installIUs \1,${extraIUs}\"/" target/test.xml
+
+rm ./MANIFEST.MF
+pushd target
+../genRepo.sh $(pwd)
diff --git a/testbundle-to-eclipse-test/prepRuntimeLocation.sh b/testbundle-to-eclipse-test/prepRuntimeLocation.sh
new file mode 100755
index 0000000..d9eac09
--- /dev/null
+++ b/testbundle-to-eclipse-test/prepRuntimeLocation.sh
@@ -0,0 +1,84 @@
+#! /bin/bash
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+mkdir target
+pushd target
+
+# Prepare testing environment
+if [ ! -e /usr/share/java/eclipse-testing ]; then
+  echo "/usr/share/java/eclipse-testing/ does not exist. Please install the package providing this location."
+  exit 1
+fi
+cp -rp /usr/share/java/eclipse-testing/* ./
+
+# Remove eclipse-tests p2 repo and generate for system
+rm -rf features plugins content.jar artifacts.jar binary
+
+# Create directory of all system OSGi bundles
+# Do not create into p2 repo yet (we must make test bundles have dir shape)
+../gatherBundles.sh $(pwd)
+
+popd
+
+# Prepare the test.xml file
+
+sed -i 's/\${eclipse-home}\/plugins\/\${testPluginX}/\${testPluginX}/' target/test.xml
+sed -i '/<fileset/,/<\/fileset>/ s/dir="\${eclipse-home}\/plugins"/dir="\${basedir}"/' target/test.xml
+sed -i 's/refid="test.plugin.file" \/>/value="\${basedir}\/alltest.xml" \/>/' target/test.xml
+sed -i 's/\${report}/\${testPlugin}/' target/test.xml
+
+# Support multiple XML reports from same bundle but different test classes
+sed -i '/<attribute name="testPlugin"/ a <attribute name="testClass" \/>'  target/test.xml
+sed -i 's/@{testPlugin}\.xml/@{testPlugin}-@{testClass}\.xml/' target/test.xml
+sed -i 's/\${testPlugin}\.xml/\${output-file}/' target/test.xml
+sed -i 's/\${testPlugin}_\${platform}\.xml/\${output-file}/' target/test.xml
+
+# Insert our test task
+sed -i '/<antcall target="quickTests" \/>/ d' target/test.xml
+sed -i '/<antcall target="longRunningTests" \/>/ d' target/test.xml
+sed -i '/<target name="all">/ a <antcall target="linuxtoolsTests" \/>' target/test.xml
+
+# A VERY dirty hack to mimic Tycho's improper usage of test bundle resources
+sed -i '/<antcall target="configureTeamTest" \/>/ i \
+<path id="testbundle.paths"> \
+  <dirset \
+  dir="\${eclipse-home}" \
+  includes="plugins/\${testPlugin}_*" \/> \
+<\/path> \
+<property \
+  name="testBundlePath" \
+  refid="testbundle.paths" \/> \
+<copy todir="\${eclipse-home}"> \
+  <fileset dir="\${testBundlePath}" includes="**" \/> \
+</copy>' target/test.xml
+
+
+# Define our test task
+sed -i '/<target name="quickTests">/ i \
+<target name="linuxtoolsTests"> \
+<!-- Copy over the XML to generate a top-level report for all of the tests --> \
+    	    	<mkdir dir="\${results}\/origXml" \/> \
+    			<xslt style="\${repoLocation}\/splitter.xsl" basedir="\${results}\/xml" includes="*.xml" destdir="\${results}\/origXml"\/> \
+    	    	<!-- Aggregate XML report files --> \
+    	    	<junitreport todir="\${results}\/xml" tofile="org.eclipse.sdk.tests.xml"> \
+    	    		<fileset dir="\${results}/origXml" includes="*.xml" \/> \
+    	    	<\/junitreport> \
+    	    	<!-- Generate top-level HTML report --> \
+    	    	<xslt style="\${repoLocation}\/JUNIT.XSL" basedir="\${results}\/xml" includes="org.eclipse.sdk.tests.xml" destdir="\${results}\/html" \/> \
+<\/target>' target/test.xml
+
+sed -i 's/"-installIUs \(.*\)"/"-installIUs \1,org.eclipse.swtbot.eclipse.junit.headless"/' target/test.xml
+
+# Prepare the runtests.sh file
+sed -i '/cp \${testslocation}\/\*\.properties/ a cp \${testslocation}\/{JUNIT.XSL,alltest.xml,updateTestBundleXML.sh,swtbot-library.xml} \.' target/runtests.sh
+sed -i '/^properties=/ a testslocation=\$(pwd)' target/runtests.sh
+
+# Do not print test properties (output is annoying)
+sed -i '/echoproperties/d' target/library.xml
+
+cp swtbot-library.xml alltest.xml updateTestBundleXML.sh target/
diff --git a/testbundle-to-eclipse-test/swtbot-library.xml b/testbundle-to-eclipse-test/swtbot-library.xml
new file mode 100644
index 0000000..e43c96c
--- /dev/null
+++ b/testbundle-to-eclipse-test/swtbot-library.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0"?>
+<!--
+
+
+======================================================================
+this has been copied from o.e.test plugin with some targets for SWTBot
+======================================================================
+
+
+-->
+
+<project name="swtbot-library-headless-junit4" default="usage" basedir=".">
+
+	<target name="usage">
+		<echo message="Please refer to the testframework.html in org.eclipse.test for instructions on usage." />
+	</target>
+
+	<target name="init">
+		<!--
+			Parameters:
+				(Mandatory)
+				data-dir		- the directory for Eclipse to write its data
+				plugin-name		- the name of the plugin to test
+				classname		- the name of the test class
+
+				(Optional - overrides defaults set in script)
+				testProduct		- a string containing the product id to test.
+				testApplication	- a string containing the application id to test.
+				vmargs			- a string containing arguments to pass to the VM.
+				extraVMargs		- allows separate setting of VM args from separate caller.
+				timeout			- overrides default test timeout value (in milliseconds).
+				test-output		- overrides default output file produced from test run.
+				plugin-path		- path to root of plug-in
+				useEclipseExe	- property setting forces test to launch via eclipse executable.
+				junit-report-output - output directory for junit reports produced for specified classname.
+		-->
+
+		<tstamp>
+			<format property="TIMENOW" pattern="HHmmssSSSS" />
+		</tstamp>
+		<!--property setting useEclipseExe launches tests using the eclipse executable-->
+		<condition property="launchTarget" value="eclipse-test">
+			<isset property="useEclipseExe" />
+		</condition>
+		<!--default launch target for launching tests-->
+		<property name="launchTarget" value="java-test" />
+
+		<!-- default product/application to launch -->
+		<condition property="testproduct.if.available" value="-product ${testProduct}">
+			<isset property="testProduct" />
+		</condition>
+		<property name="testproduct.if.available" value="" />
+
+		<condition property="testapplication.if.available" value="-testApplication ${testApplication}">
+			<isset property="testApplication" />
+		</condition>
+
+		<property name="testapplication.if.available" value="" />
+
+		<!--default heap sizes when running performance tests-->
+		<condition property="vmargs" value=" -Xms256M -Xmx256M">
+			<equals arg1="${test.target}" arg2="performance" />
+		</condition>
+		<property name="extraVMargs" value="" />
+		<property name="plugin-path" value="" />
+		<property name="timeout" value="7200000" />
+		<property name="test-output" value="${eclipse-home}/${classname}.xml" />
+		<property name="junit-report-output" value="${eclipse-home}/results" />
+		<mkdir dir="${junit-report-output}" />
+	</target>
+
+	<target name="swtbot-test" description="Eclipse application used to launch UI plugin tests." depends="init">
+		<antcall target="${launchTarget}">
+			<!--param name="application" value="org.eclipse.test.uitestapplication"/-->
+			<param name="application" value="org.eclipse.swtbot.eclipse.junit.headless.swtbottestapplication" />
+		</antcall>
+	</target>
+
+	<target name="java-test">
+		<!--default vm args-->
+		<property name="vmargs" value="-Xms256m -Xmx512m" />
+
+		<!-- this argument is needed for macosx -->
+		<condition property="jvmOption" value="-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts">
+			<os family="mac" />
+		</condition>
+
+		<property name="jvmOption" value="" />
+
+		<!--set default jvm to use for testing-->
+		<property name="jvm" value="${java.home}/bin/java" />
+
+		<property name="launcher-arg-line" value="
+			-application ${application}
+			${testproduct.if.available}
+			${testapplication.if.available}
+			-data ${data-dir}
+			formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test-output} formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter
+			-testPluginName ${plugin-name}
+			-className ${classname}
+			-os ${os}
+			-ws ${ws}
+			-arch ${arch}
+			-consoleLog
+			-debug" />
+		<property name="jvm-arg-line" value="${vmargs} ${extraVMargs} ${jvmOption}" />
+
+		<echo>======================================</echo>
+		<echo>Running swtbot junit tests in ${classname}</echo>
+		<echo>Command line args are ${launcher-arg-line}</echo>
+		<echo>JVM args are ${jvm-arg-line}</echo>
+		<echo>JUnit Result File: ${junit-report-output}/${classname}.xml.</echo>
+		<echo>Console output File: ${junit-report-output}/${classname}.txt.</echo>
+		<echo>======================================</echo>
+
+		<fail unless="application" message="variable 'application' not defined." />
+		<fail unless="data-dir" message="variable 'data-dir' not defined." />
+		<fail unless="test-output" message="variable 'test-output' not defined" />
+		<fail unless="plugin-name" message="variable 'plugin-name' not defined" />
+		<fail unless="classname" message="variable 'classname' not defined" />
+		<fail unless="os" message="variable 'os' not defined. os can be one of win32, linux, macosx" />
+		<fail unless="ws" message="variable 'ws' not defined. ws can be one of win32, wpf, gtk, carbon, cocoa" />
+		<fail unless="arch" message="variable 'arch' not defined. arch can be one of x86, x86_64, ppc" />
+
+		<pathconvert property="foundJunit3" setonempty="false" pathsep=" ">
+			<path>
+				<fileset dir="${eclipse-home}/plugins" includes="org.eclipse.swtbot.eclipse.junit3.headless*/META-INF/MANIFEST.MF" />
+				<fileset dir="${eclipse-home}/plugins" includes="org.eclipse.swtbot.ant.optional.junit3*" />
+			</path>
+		</pathconvert>
+
+		<fail if="foundJunit3">
+			.
+			Found org.eclipse.swtbot.eclipse.junit3.headless or org.eclipse.swtbot.ant.optional.junit3 in the plugins directory.
+			JUnit 3.x and 4.x don't play well together.
+			Please remove org.eclipse.swtbot.eclipse.junit3.headless and org.eclipse.swtbot.ant.optional.junit3 from the plugins dir.
+		</fail>
+
+		<java fork="true" dir="." timeout="${timeout}" jvm="${jvm}" logError="true" classname="org.eclipse.core.launcher.Main" output="${junit-report-output}/${classname}.txt">
+			<classpath>
+				<fileset dir="${eclipse-home}/plugins">
+					<include name="org.eclipse.equinox.launcher_*.jar" />
+				</fileset>
+			</classpath>
+			<arg line="${launcher-arg-line}" />
+			<jvmarg line="${jvm-arg-line}" />
+			<sysproperty key="PLUGIN_PATH" value="${plugin-path}" />
+		</java>
+
+		<echo>======================================</echo>
+		<echo>If you see errors above please see the file ${junit-report-output}/${classname}.txt for more information.</echo>
+		<echo>Errors are generally caused by missing or incorrect dependencies.</echo>
+		<echo>======================================</echo>
+
+		<antcall target="collect-results" />
+	</target>
+
+	<target name="collect-results">
+		<dirname property="output-dir" file="${test-output}" />
+		<basename property="output-file-name" file="${test-output}" />
+		<junitreport todir="${junit-report-output}" tofile="${classname}.xml">
+			<fileset dir="${output-dir}">
+				<include name="${output-file-name}" />
+			</fileset>
+		</junitreport>
+
+	    <dirname property="swtbot.junit4.headless.dir" file="${ant.file.swtbot-library-headless-junit4}"/>
+
+		<mkdir dir="${junit-report-output}/screenshots" />
+		<move todir="${junit-report-output}/screenshots" failonerror="false">
+			<fileset dir="${eclipse-home}/screenshots" includes="*.*" />
+		</move>
+
+		<xslt style="${swtbot.junit4.headless.dir}/JUNIT.XSL" basedir="${junit-report-output}" includes="${classname}.xml" destdir="${junit-report-output}">
+			<param name="screenshot_dir" expression="screenshots"/>
+			<!--
+			Only use this if you've set SWTBotPreferences#SCREENSHOT_FORMAT preference
+			Optional: possible values are bmp, gif, ico, jpeg, jpg, png or tiff
+			<param name="screenshot_format" expression="jpeg"/>
+			-->
+		</xslt>
+
+		<!--save .log content and *.log content from configuration directory-->
+		<concat destfile="${junit-report-output}/${classname}.log">
+			<fileset dir="${eclipse-home}" includes="${data-dir}/.metadata/*.log" />
+			<fileset dir="${eclipse-home}" includes="configuration/*.log" />
+		</concat>
+	</target>
+
+	<target name="collect">
+		<!--
+			This target can be used to aggragate test runs from multiple test suites into a single report.
+
+			Parameters to this target:
+			includes		- the names of the files to include
+			output-file		- the name of the output file to produce
+		-->
+		<junitreport todir="." tofile="${output-file}">
+			<fileset dir=".">
+				<include name="${includes}" />
+			</fileset>
+		</junitreport>
+	</target>
+
+</project>
+
diff --git a/testbundle-to-eclipse-test/updateTestBundleXML.sh b/testbundle-to-eclipse-test/updateTestBundleXML.sh
new file mode 100755
index 0000000..e1fa1de
--- /dev/null
+++ b/testbundle-to-eclipse-test/updateTestBundleXML.sh
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+# Copyright (C) 2013, Red Hat, Inc.
+# 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
+
+bsname=$1
+classname=$2
+useSWTBot=$3
+
+sed -i "s/<property name=\"test-classname\" value=\".*\" \/>/<property name=\"test-classname\" value=\"${classname}\" \/>/" alltest.xml
+sed -i "s/<property name=\"test-plugin-name\" value=\".*\" \/>/<property name=\"test-plugin-name\" value=\"${bsname}\" \/>/" alltest.xml
+sed -i 's/<ant target=".*-test" antfile=".*"/<ant target="ui-test" antfile="\${library-file}"/' alltest.xml
+
+if [ "${useSWTBot}" = 'true' ]; then
+  sed -i 's/<ant target=".*-test" antfile=".*"/<ant target="swtbot-test" antfile="\${swtbot-library-file}"/' alltest.xml
+fi
