diff --git a/org.eclipse.gmf.notation.releng/build.xml b/org.eclipse.gmf.notation.releng/build.xml
deleted file mode 100755
index 596e659..0000000
--- a/org.eclipse.gmf.notation.releng/build.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<project default="main">
-	<!-- [229916] as of 3.4M7, use new variable -->
-	<property name="pde.build.scripts" value="${eclipse.pdebuild.scripts}"/>
-
-	<target name="init">
-		<tstamp/>
-		<touch file="${user.home}/.cvspass" />
-		<property name="timestamp" value="${DSTAMP}${TSTAMP}" />
-		<property name="buildDirectory" value="${basedir}/src/eclipse" />
-
-		<property name="buildType" value="I" />
-		<property name="buildId" value="${buildType}${timestamp}" />
-		
-		<!-- Verify buildDirectory ends in eclipse. -->
-		<property name="fullBuild" location="${buildDirectory}"/>
-		<basename file="${fullBuild}" property="lastSeg"/>
-		<condition property="endsInEclipse">
-			<equals arg1="${lastSeg}" arg2="eclipse"/>
-		</condition>
-		<fail message="buildDirectory's last segment is not eclipse." unless="endsInEclipse"/>
-	</target>
-
-	<target name="main" depends="init">
-		<ant antfile="build.xml" dir="${pde.build.scripts}">
-			<property name="builder" value="${basedir}/${component}" />
-		</ant>
-	</target>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/buildAll.xml b/org.eclipse.gmf.notation.releng/buildAll.xml
deleted file mode 100755
index 4402935..0000000
--- a/org.eclipse.gmf.notation.releng/buildAll.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-<project default="run">
-	<target name="init">
-	    
-		<!-- common releng helper scripts -->
-		<property name="helper" value="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/buildAllHelper.xml" />
-		
-		<property name="warningsToCheck" value="assertIdentifier,charConcat,constructorName,deprecation,discouraged,finally,forbidden,intfAnnotation,intfNonInherited,maskedCatchBlocks,noEffectAssign,pkgDefaultMethod,staticReceiver,suppress,typeHiding,unusedLabel,unusedLocal,unusedPrivate,uselessTypeCheck,varargsCast,warningToken" />
-		<echo  message="Set compilerArgs = '-enableJavadoc -encoding ISO-8859-1 -warn:${warningsToCheck}'"/>
-		<property name="compilerArg" value="-enableJavadoc -encoding ISO-8859-1 -warn:${warningsToCheck}" />
-		<property name="commonScriptsDir" value="${basedir}/../org.eclipse.modeling.common.releng/scripts" />
-		
-		<!-- TODO: set correct source and target levels here -->
-		<echo message="Set javacSource and javacTarget = 1.5"/>
-		<property name="javacSource" value="1.5" />
-		<property name="javacTarget" value="1.5" />
-		
-		<path id="bc">
-			<fileset dir="${java.home}/lib">
-				<include name="*.jar" />
-			</fileset>
-		</path>
-		<property name="bootclasspath" refid="bc" />
-
-		<!-- TODO: if using JDK1.4, comment out these lines -->
-		<echo message="Set J2SE-1.5 = ${bootclasspath}"/>
-		<property name="J2SE-1.5" value="${bootclasspath}"/>
-		<condition property="bundleBootClasspath" value="${J2SE-1.5}"><isset property="J2SE-1.5"/></condition>
-		<condition property="bundleJavacSource" value="1.5"><isset property="J2SE-1.5"/></condition>
-		<condition property="bundleJavacTarget" value="1.5"><isset property="J2SE-1.5"/></condition>
-		
-		<property name="buildingOSGi" value="true" />
-		<property name="collectingFolder" value="eclipse" />
-		<property name="archivePrefix" value="eclipse" />
-
-		<!-- Reduce the amount of info in the build log -->
-		<property name="javacVerbose" value="false" />
-
-		<property name="buildDirectory" location="${basedir}/../src/eclipse" />
-		<property file="${basedir}/repoInfo.properties" />
-		<property name="testBase" location="${buildDirectory}/../testing" />
-		<available file="${buildDirectory}/label.properties" property="label.properties.exists" />
-		<ant target="create.label.properties" antfile="${helper}" />
-		<property file="${buildDirectory}/label.properties" />
-		
-		<echo message="buildAll.xml properties:"/>
-		<echo message="basedir = ${basedir}"/>
-
-		<!-- load a value for ${subprojectName} -->
-		<property name="buildConfigFile" value="${basedir}/../build.cfg"/>
-		<available file="${buildConfigFile}" type="file" property="buildConfigIsAvailable" />
-		<fail message="Can't load build properties from ${buildConfigFile}" unless="buildConfigIsAvailable"/>
-		<property file="${buildConfigFile}" />
-
-		<echo message="buildVer = ${buildVer}"/>
-		<echo message="subprojectName = ${subprojectName}"/>
-
-		<!-- <echo message="Base OS: ${baseos}; Base Window System: ${basews}"/> -->
-		<condition property="isWindows">
-			<equals arg1="${baseos}.${basews}" arg2="win32.win32" />
-		</condition>
-		<condition property="isLinuxGTK">
-			<equals arg1="${baseos}.${basews}" arg2="linux.gtk" />
-		</condition>
-		<condition property="isLinuxMotif">
-			<equals arg1="${baseos}.${basews}" arg2="linux.motif" />
-		</condition>
-		
-		<property name="lib" value="${basedir}/lib"/>
-		<!-- required for signing & repackaging master zip into smaller zips -->
-		<property name="java15-home" value="/opt/sun-java2-5.0" />
-		<property name="stagingHome" value="/home/data/httpd/download-staging.priv" />
-		<property name="projectPath" value="modeling/gmf" />
-		<!-- user with write perms in staging dir & permission to run /usr/bin/sign -->
-		<property name="buildServerUser" value="nickb@build.eclipse.org" />
-		<property name="masterZip" value="${subprojectName}-Master-${buildAlias}.zip" />
-		<condition property="sign">
-			<or>
-				<!-- want to enable/disable signing for a given build type? add/remove types here -->
-				<equals arg1="${buildType}" arg2="I"/>
-				<equals arg1="${buildType}" arg2="M"/>
-				<equals arg1="${buildType}" arg2="S"/>
-				<equals arg1="${buildType}" arg2="R"/>
-			</or>
-		</condition>
-	</target>
-
-	<target name="run" depends="init">
-		<antcall target="runAll" />
-		<ant target="cleanUp" antfile="${helper}"/>
-	</target>
-
-	<target name="runTestsOnly" depends="init">
-		<antcall target="runTestsOnlySetup" />
-		<ant target="test" antfile="${helper}"/>
-		<ant target="publish" antfile="${helper}"/>
-	</target>
-
-	<!-- make sure everything's in the right place(s) -->
-	<target name="runTestsOnlySetup">
-		<delete dir="${buildDirectory}" />
-		<mkdir dir="${buildDirectory}/${buildLabel}" />
-		<copy todir="${buildDirectory}/${buildLabel}">
-			<fileset dir="${buildDirectory}/..">
-				<include name="**/*.zip" />
-			</fileset>
-		</copy>
-	</target>
-
-	<target name="runWithoutTest" depends="init">
-		<antcall target="buildAll" />
-		<ant target="publish" antfile="${helper}"/>
-		<ant target="cleanUp" antfile="${helper}"/>
-	</target>
-
-	<target name="runAll" depends="init">
-		<antcall target="buildAll" />
-		<ant target="test" antfile="${helper}"/>
-		<ant target="publish" antfile="${helper}"/>
-	</target>
-
-	<target name="build" depends="init">
-		<antcall target="buildAll" />
-		<ant target="cleanUp" antfile="${helper}"/>
-	</target>
-
-	<target name="buildAll" depends="init">
-		<macrodef name="build">
-			<attribute name="component"/>
-			<attribute name="zip"/>
-		   	<sequential>
-		   		<!-- building component. creating component zip with jar -->
-				<ant antfile="build.xml" target="main">
-					<property name="component" value="@{component}" />
-				</ant>
-			</sequential>
-		</macrodef>
-		
-		<build component="builder/notation" zip="gmf-notation-${buildAlias}.zip"/>
-		<build component="builder/notation-sdk" zip="gmf-sdk-notation-${buildAlias}.zip"/>
-		<build component="builder/tests" zip="gmf-tests-notation-${buildAlias}.zip"/>
-   		<ant target="signMasterZip" antfile="${helper}">
-			<property name="mailStatus" value="nomail" />
-		</ant>	
-		<ant target="packMasterZip" antfile="${helper}"/>
-		
-		<antcall target="updateZips"/>
-		
-		<!-- TODO: if necessary, you can copy files from the SDK into the runtime or examples zips here  -->
-		<!-- for example, see validation/buildAll.xml or cdo/buildAll.xml -->
-			
-		<!-- TODO: if necessary, you can remove 3rd party jars used at build time from the zips here -->
-		<!-- for example, see cdo/buildAll.xml -->
-
-		<!-- md5 files generation -->
-
-		<exec executable="bash" dir="${buildDirectory}/${buildLabel}">
-			<arg line="${basedir}/../org.eclipse.modeling.common.releng/scripts/createZipCheckSum.sh" />
-		</exec>
-	</target>
-	
-	<target name="updateZips" if="sign">
-		<!-- [233486] Update zip content with signed jars (note: temporary, as there must be a better way) -->
-		<zip destfile="${buildDirectory}/${buildLabel}/gmf-sdk-notation-${buildAlias}.zip" update="true" duplicate="preserve">
-			<zipfileset 
-				src="${buildDirectory}/${buildLabel}/${masterZip}" 
-				dirmode="775" filemode="664" 
-				id="NotationZipFiles" 
-				excludes="**/*.pack.gz, 
-						  **/pack.properties, 
-						  **/features/*.jar" />
-		</zip>
-		<zip destfile="${buildDirectory}/${buildLabel}/gmf-notation-${buildAlias}.zip" update="true" duplicate="preserve">
-			<zipfileset 
-				src="${buildDirectory}/${buildLabel}/${masterZip}" 
-				dirmode="775" filemode="664" 
-				id="NotationZipFiles" 
-				excludes="**/*.pack.gz, 
-						  **/pack.properties, 
-						  **/features/*.jar,
-						  **/features/*sdk*,
-						  **/plugins/*sdk*.jar,
-						  **/plugins/*.source_*.jar" />
-		</zip>
-	</target>
-	
-</project>
diff --git a/org.eclipse.gmf.notation.releng/builder/notation-sdk/build.properties b/org.eclipse.gmf.notation.releng/builder/notation-sdk/build.properties
deleted file mode 100755
index c251edd..0000000
--- a/org.eclipse.gmf.notation.releng/builder/notation-sdk/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-buildDirectory=${builder}/../eclipse
-buildType=I
-buildId=${buildId}
-buildLabel=${buildLabel}
-timestamp=0000
-collPlace=.
-collBase=.
-baseLocation=
-configs=*,*,*
-baseos=linux
-basews=gtk
-basearch=x86
-bootclasspath=${java.home}/lib/*.jar
-javacFailOnError=true
-javacVerbose=true
-javacDebugInfo=on
-zipargs=
-archivesFormat = *,*,*-antZip
-collectingFolder=eclipse
-archivePrefix=eclipse
-generateFeatureVersionSuffix=true
-runPackager=true
-individualSourceBundles=true
-outputUpdateJars=true
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/builder/notation-sdk/customTargets.xml b/org.eclipse.gmf.notation.releng/builder/notation-sdk/customTargets.xml
deleted file mode 100755
index a397f29..0000000
--- a/org.eclipse.gmf.notation.releng/builder/notation-sdk/customTargets.xml
+++ /dev/null
@@ -1,195 +0,0 @@
-<project name="Build specific targets and properties" default="noDefault" basedir=".">
-
-	<property name="archiveName" value="gmf-sdk-notation-${buildAlias}.zip" />
-
-	<!-- ===================================================================== -->
-	<!-- Run a given ${target} on all elements being built -->
-	<!-- ===================================================================== -->
-	<target name="allElements">
-		<ant antfile="${genericTargets}" target="${target}">
-			<property name="type" value="feature" />
-			<property name="id" value="org.eclipse.gmf.runtime.notation.sdk" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Targets to assemble the built elements for particular configurations  -->
-	<!-- These generally call the generated assemble scripts (named in -->
-	<!-- ${assembleScriptName}) but may also add pre and post processing -->
-	<!-- Add one target for each root element and each configuration -->
-	<!-- ===================================================================== -->
-
-	<target name="assemble.org.eclipse.gmf.runtime.notation.sdk">
-		<ant antfile="${assembleScriptName}" />
-		<!-- ADD POST STEPS -->
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Check out map files from correct repository -->
-	<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
-	<!-- ===================================================================== -->
-	<target name="checkLocal">
-		<available property="mapsLocal" file="${buildDirectory}/maps" />
-	</target>
-
-	<target name="getMapFiles" depends="checkLocal" unless="mapsLocal">
-
-		<!-- ***  change the repo info -->
-		<property name="mapCvsRoot" value=":${cvsReadProtocol}:${cvsReadUser}@${cvsHost}:${cvsRep}" />
-		<property name="mapVersionTag" value="HEAD" />
-		<property name="packagePath" value="org.eclipse.${projectName}/org.eclipse.${subprojectName2}.releng/maps"/>
-
-		<cvs cvsRsh="ssh" cvsRoot="${mapCvsRoot}" tag="${mapVersionTag}" 
-			package="${packagePath}" dest="${buildDirectory}/maps" />
-		<copy todir="${buildDirectory}/maps/CVS" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}/CVS" />
-		</copy>
-		<copy todir="${buildDirectory}/maps" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}" />
-		</copy>
-		<delete dir="${buildDirectory}/maps/org.eclipse.${projectName}" />
-		<!--tag the map files project-->
-		<antcall target="tagMapFiles" />
-	</target>
-
-	<target name="tagMapFiles" if="tagMaps">
-		<cvs cvsRsh="ssh" dest="${buildDirectory}/maps" command="tag v${timestamp}" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before setup -->
-	<!-- ===================================================================== -->
-	<target name="preSetup">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after setup but before starting the build proper -->
-	<!-- ===================================================================== -->
-	<target name="postSetup">
-		<!-- TODO: if your project requires more dependencies, add them here; if it does not require all of these, remove those not required -->
-		<echo message="Download, then unpack: Eclipse, EMF, ..." />
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${eclipseURL}" />
-			<property name="file" value="${eclipseFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.platform.doc.isv/plugin.xml" />
-		</ant>
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${emfURL}" />
-			<property name="file" value="${emfFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.emf.ecore/plugin.xml" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before fetching the build elements -->
-	<!-- ===================================================================== -->
-	<target name="preFetch">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the fetch -->
-	<!-- ===================================================================== -->
-	<target name="postFetch">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@buildId@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before generating build scripts -->
-	<!-- ===================================================================== -->
-	<target name="preGenerate">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after generating the build scripts -->
-	<!-- ===================================================================== -->
-	<target name="postGenerate">
-		<antcall target="clean" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before assembling -->
-	<!-- ===================================================================== -->
-	<target name="preAssemble">
-
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after assembling-->
-	<!-- ===================================================================== -->
-	<target name="postAssemble">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running package. -->
-	<!-- ===================================================================== -->
-	<target name="prePackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after  running package. -->
-	<!-- ===================================================================== -->
-	<target name="postPackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="preProcess">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="postProcess">
-
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after everything is built and assembled -->
-	<!-- (e.g., testing, posting, emailing, ...) -->
-	<!-- ===================================================================== -->
-	<target name="postBuild">
-		<echo message="archiveName: ${archiveName}"/>
-   		<!-- contributing jars for the update site -->
-   		<zip destfile="${buildDirectory}/${buildLabel}/${masterZip}" update="true">
-   			<zipfileset src="${buildDirectory}/${buildLabel}/${archiveName}" dirmode="775" filemode="664" 
-   				includes="**/plugins/*.jar, **/plugins/*.jar.pack.gz, **/features/*.jar, **/features/*.jar.pack.gz" />
-   		</zip>
-		<!-- Unpacking jars to produce downloadable zips -->
-		<ant target="unpackUpdateJarsAndRepack" antfile="${helper}"/>
-		<antcall target="gatherLogs" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Helper targets -->
-	<!-- ===================================================================== -->
-	<target name="gatherLogs">
-		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
-		<antcall target="allElements">
-			<param name="target" value="gatherLogs" />
-		</antcall>
-
-		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
-			<fileset dir="${buildDirectory}/features/org.eclipse.gmf.runtime.notation">
-				<include name="*.log.zip" />
-			</fileset>
-		</unzip>
-	</target>
-	<target name="clean" unless="noclean">
-		<antcall target="allElements">
-			<param name="target" value="cleanElement" />
-		</antcall>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="You must specify a target when invoking this file" />
-	</target>
-</project>
diff --git a/org.eclipse.gmf.notation.releng/builder/notation/build.properties b/org.eclipse.gmf.notation.releng/builder/notation/build.properties
deleted file mode 100755
index c251edd..0000000
--- a/org.eclipse.gmf.notation.releng/builder/notation/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-buildDirectory=${builder}/../eclipse
-buildType=I
-buildId=${buildId}
-buildLabel=${buildLabel}
-timestamp=0000
-collPlace=.
-collBase=.
-baseLocation=
-configs=*,*,*
-baseos=linux
-basews=gtk
-basearch=x86
-bootclasspath=${java.home}/lib/*.jar
-javacFailOnError=true
-javacVerbose=true
-javacDebugInfo=on
-zipargs=
-archivesFormat = *,*,*-antZip
-collectingFolder=eclipse
-archivePrefix=eclipse
-generateFeatureVersionSuffix=true
-runPackager=true
-individualSourceBundles=true
-outputUpdateJars=true
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/builder/notation/customTargets.xml b/org.eclipse.gmf.notation.releng/builder/notation/customTargets.xml
deleted file mode 100755
index 2802888..0000000
--- a/org.eclipse.gmf.notation.releng/builder/notation/customTargets.xml
+++ /dev/null
@@ -1,195 +0,0 @@
-<project name="Build specific targets and properties" default="noDefault" basedir=".">
-
-	<property name="archiveName" value="${subprojectName}-${buildAlias}.zip" />
-
-	<!-- ===================================================================== -->
-	<!-- Run a given ${target} on all elements being built -->
-	<!-- ===================================================================== -->
-	<target name="allElements">
-		<ant antfile="${genericTargets}" target="${target}">
-			<property name="type" value="feature" />
-			<property name="id" value="org.eclipse.gmf.runtime.notation" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Targets to assemble the built elements for particular configurations  -->
-	<!-- These generally call the generated assemble scripts (named in -->
-	<!-- ${assembleScriptName}) but may also add pre and post processing -->
-	<!-- Add one target for each root element and each configuration -->
-	<!-- ===================================================================== -->
-
-	<target name="assemble.org.eclipse.gmf.runtime.notation">
-		<ant antfile="${assembleScriptName}" />
-		<!-- ADD POST STEPS -->
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Check out map files from correct repository -->
-	<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
-	<!-- ===================================================================== -->
-	<target name="checkLocal">
-		<available property="mapsLocal" file="${buildDirectory}/maps" />
-	</target>
-
-	<target name="getMapFiles" depends="checkLocal" unless="mapsLocal">
-
-		<!-- ***  change the repo info -->
-		<property name="mapCvsRoot" value=":${cvsReadProtocol}:${cvsReadUser}@${cvsHost}:${cvsRep}" />
-		<property name="mapVersionTag" value="HEAD" />
-		<property name="packagePath" value="org.eclipse.${projectName}/org.eclipse.${subprojectName2}.releng/maps"/>
-
-		<cvs cvsRsh="ssh" cvsRoot="${mapCvsRoot}" tag="${mapVersionTag}" 
-			package="${packagePath}" dest="${buildDirectory}/maps" />
-		<copy todir="${buildDirectory}/maps/CVS" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}/CVS" />
-		</copy>
-		<copy todir="${buildDirectory}/maps" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}" />
-		</copy>
-		<delete dir="${buildDirectory}/maps/org.eclipse.${projectName}" />
-		<!--tag the map files project-->
-		<antcall target="tagMapFiles" />
-	</target>
-
-	<target name="tagMapFiles" if="tagMaps">
-		<cvs cvsRsh="ssh" dest="${buildDirectory}/maps" command="tag v${timestamp}" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before setup -->
-	<!-- ===================================================================== -->
-	<target name="preSetup">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after setup but before starting the build proper -->
-	<!-- ===================================================================== -->
-	<target name="postSetup">
-		<!-- TODO: if your project requires more dependencies, add them here; if it does not require all of these, remove those not required -->
-		<echo message="Download, then unpack: Eclipse, EMF, ..." />
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${eclipseURL}" />
-			<property name="file" value="${eclipseFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.platform.doc.isv/plugin.xml" />
-		</ant>
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${emfURL}" />
-			<property name="file" value="${emfFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.emf.ecore/plugin.xml" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before fetching the build elements -->
-	<!-- ===================================================================== -->
-	<target name="preFetch">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the fetch -->
-	<!-- ===================================================================== -->
-	<target name="postFetch">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@buildId@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before generating build scripts -->
-	<!-- ===================================================================== -->
-	<target name="preGenerate">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after generating the build scripts -->
-	<!-- ===================================================================== -->
-	<target name="postGenerate">
-		<antcall target="clean" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before assembling -->
-	<!-- ===================================================================== -->
-	<target name="preAssemble">
-
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after assembling-->
-	<!-- ===================================================================== -->
-	<target name="postAssemble">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running package. -->
-	<!-- ===================================================================== -->
-	<target name="prePackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after  running package. -->
-	<!-- ===================================================================== -->
-	<target name="postPackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="preProcess">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="postProcess">
-
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after everything is built and assembled -->
-	<!-- (e.g., testing, posting, emailing, ...) -->
-	<!-- ===================================================================== -->
-	<target name="postBuild">
-		<echo message="archiveName: ${archiveName}"/>
-   		<!-- contributing jars for the update site -->
-   		<zip destfile="${buildDirectory}/${buildLabel}/${masterZip}" update="true">
-   			<zipfileset src="${buildDirectory}/${buildLabel}/${archiveName}" dirmode="775" filemode="664" 
-   				includes="**/plugins/*.jar, **/plugins/*.jar.pack.gz, **/features/*.jar, **/features/*.jar.pack.gz" />
-   		</zip>
-		<!-- Unpacking jars to produce downloadable zips -->
-		<ant target="unpackUpdateJarsAndRepack" antfile="${helper}"/>
-		<antcall target="gatherLogs" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Helper targets -->
-	<!-- ===================================================================== -->
-	<target name="gatherLogs">
-		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
-		<antcall target="allElements">
-			<param name="target" value="gatherLogs" />
-		</antcall>
-
-		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
-			<fileset dir="${buildDirectory}/features/org.eclipse.gmf.runtime.notation">
-				<include name="*.log.zip" />
-			</fileset>
-		</unzip>
-	</target>
-	<target name="clean" unless="noclean">
-		<antcall target="allElements">
-			<param name="target" value="cleanElement" />
-		</antcall>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="You must specify a target when invoking this file" />
-	</target>
-</project>
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/build.properties b/org.eclipse.gmf.notation.releng/builder/tests/build.properties
deleted file mode 100755
index 8a3ea72..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-buildDirectory=${builder}/../eclipse
-buildType=I
-buildId=${buildId}
-buildLabel=${buildLabel}
-timestamp=0000
-collPlace=.
-collBase=.
-baseLocation=
-configs=*,*,*
-baseos=linux
-basews=gtk
-basearch=x86_64
-bootclasspath=${java.home}/lib/*.jar
-javacFailOnError=true
-javacVerbose=true
-javacDebugInfo=on
-zipargs=
-archivesFormat = *,*,*-antZip
-collectingFolder=eclipse
-archivePrefix=eclipse
-generateFeatureVersionSuffix=true
-runPackager=true
-outputUpdateJars=true
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/chkpii_ignore_list.txt b/org.eclipse.gmf.notation.releng/builder/tests/configs/local/chkpii_ignore_list.txt
deleted file mode 100755
index b64641b..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/chkpii_ignore_list.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-references/javadoc/*.html
-reference/api/*.html
-**/epl-v10.html
-**/test.xml
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/customTest.xml b/org.eclipse.gmf.notation.releng/builder/tests/configs/local/customTest.xml
deleted file mode 100755
index 387e0b0..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/customTest.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<project name="Customized testing instructions" default="customSetup">
-
-	<property name="buildConfigFile" value="${testDir}/../../build.cfg" />
-	<available file="${buildConfigFile}" type="file" property="buildConfigIsAvailable" />
-
-	<target name="loadbuildConfig" if="buildConfigIsAvailable">
-		<property file="${buildConfigFile}" />
-	</target>
-
-	<target name="customSetup">
-		<fail unless="buildConfigIsAvailable" message="ERROR! Can't find ${buildConfigFile}"/>
-		<antcall target="loadbuildConfig"/>
-			
-		<echo message="Unpack Eclipse SDK to ${testDir}..."/>
-		<echo message="customTest.xml: basedir = ${basedir}"/>
-		<property name="getTestDependencies.xml" value="${testDir}/../../org.eclipse.modeling.common.releng/scripts/getTestDependencies.xml"/>
-		<ant target="getTestDependency" antfile="${getTestDependencies.xml}">
-			<property name="basedir" value="${basedir}"/>
-			<property name="url" value="${eclipseURL}"/>
-			<property name="file" value="${eclipseFile}"/>
-			<property name="unpackDest" value="${testDir}"/>
-		</ant>
-		
-		<!-- TODO: if your project requires more dependencies for testing, add them here -->
-		<echo message="Copy Eclipse and EMF to ${executionDir}..."/>
-		<copy todir="${executionDir}">
-			<fileset dir="${downloadsDir}" includes="${eclipseFile},${emfFile}"/>
-		</copy>
-		<property name="shell" value="relengbuildgtk.sh"/>
-		
-		<!--copy in the examples to test-->
-		<!--copy todir="${executionDir}" file="${dropLocation}/${buildLabel}/${examples}" -->
-	
-		<!--copy the script which invokes the tests -->
-		<copy file="${tester}/${shell}" todir="${executionDir}"/>
-		<chmod file="${executionDir}/${shell}" perm="ugo+rx"/>		
-
-		<!--copy the testing.property files  -->
-		<copy file="${tester}/testing.properties" todir="${executionDir}"/>
-
-		<!-- at this point, we exit from this script and back into the parent script (presumably in pde or eclipse.releng?) -->
-		<echo message="Running ${shell} ..."/>
-	</target>
-</project>
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/relengbuildgtk.sh b/org.eclipse.gmf.notation.releng/builder/tests/configs/local/relengbuildgtk.sh
deleted file mode 100755
index 4746bf9..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/relengbuildgtk.sh
+++ /dev/null
@@ -1,276 +0,0 @@
-#*******************************************************************************
-# Copyright (c) 2005, 2011 IBM Corporation and others.
-# This program and the accompanying materials are made
-# available under the terms of the Eclipse Public License 2.0
-# which is available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#*******************************************************************************
-#!/bin/bash
-
-echo -n "[relengbuild] $0 started on: `date +%Y%m%d\ %H\:%M\:%S`";
-
-# environment variables
-export PATH=/usr/local/bin:/usr/bin:/usr/bin/X11:/usr/X11R6/bin:/bin:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.:`pwd`/../linux:/tmp
-export USERNAME=`whoami`
-echo " running as $USERNAME";
-echo " with PATH = $PATH";
-echo " in dir `pwd`";
-
-# fix for org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
-# fix for Failed to invoke suite():org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
-export CVS_RSH=ssh
-ulimit -c unlimited; # set corefile size to unlimited
-
-echo "Set JAVA_HIGH_ZIPFDS=500 & LANG=C";
-export JAVA_HIGH_ZIPFDS=500
-export LANG=C
-
-# configure X server thread for tests; see http://wiki.eclipse.org/Modeling_Project_Releng/Building_Zips_And_Jars#UI_Testing
-xport=15; # should be a unique port number to avoid collisions
-echo "Start Xvfb on :${xport}"
-Xvfb :${xport} -ac & # -screen 0 1024x768x16 -ac &
-export DISPLAY=localhost:${xport}.0
-xhost +
-
-#startkde &
-#sleep 40
-# xwd -silent -display :${xport} -root -out /tmp/snap.xwd; # save a snapshot
-
-readPropertyOut="";
-readProperty ()
-{
-	readPropertyOut="";
-	file=$1
-	property=$2
-	readPropertyOut=$(grep $property $file | egrep -v "^#" | tail -1 | sed -e "s/$property=//");
-}
-
-if [[ ! $JAVA_HOME ]]; then
-	echo -n "[relengbuild] Get JAVA_HOME from build.cfg ... ";
-	buildcfg=$PWD/../../../build.cfg;
-	readProperty $buildcfg JAVA_HOME
-	JAVA_HOME="$readPropertyOut";
-	javaHome="$readPropertyOut";
-	echo $JAVA_HOME
-fi
-
-Xflags="";
-Dflags="";
-
-# default target to run in org.eclipse.$subprojectName.releng/builder/tests/scripts/test.xml
-antTestTarget=all
-
-# process command line arguments
-while [ $# -gt 0 ]
-do
-	case "$1" in
-		-vmExecutable) vmExecutable="$2"; shift;;
-		-consolelog)   consolelog="$2";   shift;;
-		-X*) Xflags=$Xflags\ $1;;
-		-D*) Dflags=$Dflags\ $1;;
-	esac
-	shift
-done
-
-checkIfj9 ()
-{
-# given a series of -X flags, see if the string -Xj9 can be found
-  j9=$Xflags;
-  #echo "Xflags=$Xflags"
-  j9=${j9/\-Xj9/} # substring replacement
-  #echo "remaining: $j9"
-  if [ "$j9" != "$Xflags" ]; then # found it
-    j9="j9";
-  else
-    j9="";
-  fi
-}
-checkIfj9;
-
-defined=0;
-checkIfDefined ()
-{
-	if [ -f $1 ] ; then
-		defined=1;
-	else
-		defined=0;
-	fi
-}
-
-execCmd ()
-{
-	echo ""; echo "[relengbuild] [`date +%H\:%M\:%S`]"; 
-	echo "  $1" | perl -pe "s/ -/\n  -/g";
-	if [ "x$2" != "x" ]; then
-		$1 | tee $2;
-	else
-		$1;
-	fi
-}
-
-getBuildID()
-{	# given $PWD: /home/www-data/build/modeling/$projectName/$subprojectName/downloads/drops/1.1.0/N200702112049/testing/N200702112049/testing
-	# return N200702110400
-	buildID=$1; #echo "buildID=$buildID";
-	buildID=${buildID##*drops\/}; # trim up to drops/ (from start) (substring notation)
-	buildID=${buildID%%\/test*}; # trim off /test (to end) (substring notation)
-	buildID=${buildID##*\/}; # trim up to / (from start) (substring notation)
-}
-buildID=""; getBuildID $PWD; #echo buildID=$buildID;
-
-getBranch()
-{	# given $PWD: /home/www-data/build/modeling/$projectName/$subprojectName/downloads/drops/1.1.0/N200702112049/testing/N200702112049/testing
-	# return 1.1.0
-	branch=$1; #echo "branch=$branch";
-	branch=${branch##*drops\/}; # trim up to drops/ (from start) (substring notation)
-	branch=${branch%%\/*}; # trim off / (to end) (substring notation)
-}
-branch=""; getBranch $PWD; #echo branch=$branch;
-
-############################# BEGIN RUN TESTS #############################  
-
-# operating system, windowing system and architecture variables
-# for *nix systems, os, ws and arch values must be specified
-Dflags=$Dflags" "-Dplatform=linux.gtk
-os=linux
-ws=gtk
-arch=x86
-if uname -m > /dev/null 2>&1; then
-	arch=`uname -m`
-else
-	arch=`uname -p`
-fi
-# Massage arch for Eclipse-uname differences
-case $arch in
-	i[0-9]*86)
-		arch=x86 ;;
-	ia64)
-		arch=ia64 ;;
-	ppc)
-		arch=ppc ;;
-	ppc64)
-		arch=ppc ;;
-	x86_64)
-		# Always use x86 for x86_64 machines.
-		arch=x86 ;;
-	*)
-	echo "ERROR: Unrecognized architecture:  $arch"
-	exit 1 ;;
-esac
-
-# default value to determine if eclipse should be reinstalled between running of tests
-installmode="clean"
-
-#this value must be set when using rsh to execute this script, otherwise the script will execute from the user's home directory
-dir=.
-cd $dir
-workspaceDir="$dir/eclipse/workspace"
-
-# Replace the boot eclipse (The eclipse used to run the main test.xml, this will start another eclipse later)
-if [ -d $dir/eclipse ] ; then
-	rm -rf $dir/eclipse
-fi
-if [ -d $workspaceDir ] ; then
-	rm -rf $dir/workspace
-fi
-
-echo "[runtests] Currently in `pwd`:"
-# need conditional processing here: M3.0.2 = zip, I3.1.0 = tar.gz
-sdks=`find $dir -name "eclipse-SDK-*"`
-# get extension from file(s)
-for sdk in $sdks; do
-	sdk="eclipse"${sdk##*eclipse}; # trim up to eclipse (substring notation)
-	#echo -n "[runtests] Eclipse SDK $sdk is a";
-	ext=${sdk%%\.zip}; # trim off .zip (substring notation)
-	if [ "$ext" != "$sdk" ]; then # it's a zip
-		#echo " zip. Unpacking...";
-		unzip -qq -o $sdk
-	else
-		ext=${sdk%%\.tar\.gz}; # trim off .tar.gz (substring notation)
-		if [ "$ext" != "$sdk" ]; then # it's a tar.gz
-			#echo " tar.gz. Unpacking...";
-			tar -xzf $sdk
-		else
-			ext=${sdk%%\.tar\.Z}; # trim off .tar.Z (substring notation)
-			if [ "$ext" != "$sdk" ]; then # it's a tar.Z
-				#echo " tar.Z. Unpacking...";
-				tar -xZf $sdk
-			else
-				echo "[runtests] ERROR: Eclipse SDK $sdk is an UNKNOWN file type. Failure.";
-				exit 2
-			fi
-		fi
-	fi
-done
-
-J2SE16flags="";
-# TODO: if a 1.6 JDK and want source/target = 1.6, leave these in
-# TODO: if source/target = 1.6, remove these!
-#if [ ${JAVA_HOME##*1.6*}"" = "" -o ${JAVA_HOME##*16*}"" = "" -o ${JAVA_HOME##*6.0*}"" = "" -o ${JAVA_HOME##*60*}"" = "" ]; then
-#	# set JavaSE-1.6 properties (-Dflags)
-#	bootclasspath="."`find $JAVA_HOME/jre/lib -name "*.jar" -printf ":%p"`;
-#	J2SE16flags=$J2SE16flags" -DJavaSE-1.6=$bootclasspath"
-#	J2SE16flags=$J2SE16flags" -DbundleBootClasspath=$bootclasspath"
-#	J2SE16flags=$J2SE16flags" -DjavacSource=1.6"
-#	J2SE16flags=$J2SE16flags" -DjavacTarget=1.6"
-#	J2SE16flags=$J2SE16flags" -DbundleJavacSource=1.6"
-#	J2SE16flags=$J2SE16flags" -DbundleJavacTarget=1.6"
-#fi
-
-# different ways to get the launcher and Main class
-if [[ -f eclipse/startup.jar ]]; then 
-  cpAndMain="eclipse/startup.jar org.eclipse.core.launcher.Main"; # up to M4_33
-elif [[ -f eclipse/plugins/org.eclipse.equinox.launcher.jar ]]; then
-  cpAndMain="eclipse/plugins/org.eclipse.equinox.launcher.jar org.eclipse.equinox.launcher.Main"; # M5_33
-else
-  cpAndMain=`find eclipse/ -name "org.eclipse.equinox.launcher_*.jar" | sort | head -1`" org.eclipse.equinox.launcher.Main"; 
-fi
-
-# add swt jars
-#cpAndMain=`find eclipse/ -name "org.eclipse.swt_*.jar" | sort | head -1`":"$cpAndMain; 
-#cpAndMain=`find eclipse/ -name "org.eclipse.swt.gtk.linux.${arch}_*.jar" | sort | head -1`":"$cpAndMain; 
-
-# run tests
-echo "[runtests] [`date +%H\:%M\:%S`] Launching Eclipse (installmode = $installmode with -enableassertions turned on) ..."
-execCmd "$JAVA_HOME/bin/java $Xflags -enableassertions -cp $cpAndMain -ws $ws -os $os -arch $arch \
--application org.eclipse.ant.core.antRunner -data $workspaceDir -file test.xml $antTestTarget \
-$Dflags -Dws=$ws -Dos=$os -Darch=$arch -D$installmode=true $J2SE16flags \
-$properties -logger org.apache.tools.ant.DefaultLogger" $consolelog;
-echo "[runtests] [`date +%H\:%M\:%S`] Eclipse test run completed. "
-
-# xwd -silent -display :${xport} -root -out /tmp/snap.xwd; # save a snapshot
-
-############################# END RUN TESTS #############################  
-
-# drop X server process threads used by tests
-if [[ -r /tmp/.X${xport}-lock ]]; then kill `cat /tmp/.X${xport}-lock`; fi
-if [[ -f /tmp/.X${xport}-lock ]]; then rm -fr /tmp/.X${xport}-lock; fi
-
-if [[ ! -d $PWD/results ]]; then
-	echo "[relengbuild] No test results found in $PWD/results!";
-	echo "[relengbuild] Creating 'noclean' file to prevent cleanup after build completes."
-	echo "1" > $PWD/../../../noclean;
-else
-# if the build failed for some reason, don't clean up!
-xmls=`find $PWD/results/xml -name "*.xml"`;
-testsPassed="maybe";
-for xml in $xmls; do
-	if [[ $testsPassed ]]; then
-		testsPassed=$(cat $xml | grep "<testsuite " | grep " errors=\"0\"" | grep " failures=\"0\"");
-		if [[ ! $testsPassed ]]; then
-			echo "[relengbuild] Found test failure(s) in $xml: "
-			echo "  "$(cat $xml | grep "<testsuite ");
-			echo "[relengbuild] Creating 'noclean' file to prevent cleanup after build completes."
-			echo "1" > $PWD/../../../noclean;
-			break;
-		fi
-	fi
-done
-fi;
-
-echo "[relengbuild] relengbuildgtk.sh completed on: `date +%Y%m%d\ %H\:%M\:%S`"
-
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/testing.properties b/org.eclipse.gmf.notation.releng/builder/tests/configs/local/testing.properties
deleted file mode 100755
index ebeaf79..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/configs/local/testing.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-#which (sub)project?
-project=gmf
-
-#target to call in test.xml:  runtests-local | runtests-remote
-testTarget=runtests-local
-
-#directory on test machine where automated testing framework will be installed
-testDir=${testBase}/${buildLabel}
-
-#name of zip file containing automated testing framework and JUnit test plug-ins
-testFramework=gmf-tests-notation-${buildAlias}.zip
-
-#directory where test scripts are launched
-executionDir=${testDir}/testing
-
-#name of runtime to install and test
-runtime=gmf-notation-${buildAlias}.zip
-#name of examples to install and test -- see customTest.xml#customSetup:31
-examples=gmf-examples-${buildAlias}.zip
-
-# leave this blank and it will be generated by genBuildDetails.sh 
-javaHome=%%JAVA_HOME%%
-vmExecutable=${javaHome}/bin/java
-
-#hack to override unneeded function in releng.basebuilder/plugins/org.eclipse.build.tools/scripts/test.xml
-vmUrl=
-vmDest=/dev/null
-vmInstallExecutable=${vmExecutable}
-vmInstallCommand=-version
-
-#eclipse platforms:  win32 | linux.motif | linux.gtk | aix.motif | hpux.motif |solaris.motif
-platform=${baseos}.${basews}
-
-#name of file that captures console output from running JUnit plug-in tests
-consolelog=${baseos}.${basews}_consolelog.txt
-
-#Works with IBM and Sun JDKs, 1.4+
-#name of script to execute
-testExecutable=bash
-
-#TODO: set vm-specific flags
-Xflags=-Xms256M -Xmx256M
-#see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=106396 for rationale for "-Dosgi.bundlefile.limit=100"
-Dflags=-Dosgi.bundlefile.limit=100
-
-#arguments to $(testExecutable) - .sh script + args
-args=${executionDir}/${shell} -vmExecutable ${vmExecutable} -consolelog ${consolelog} ${Xflags} ${Dflags} 
-
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/customTargets.xml b/org.eclipse.gmf.notation.releng/builder/tests/customTargets.xml
deleted file mode 100755
index e86c9ff..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/customTargets.xml
+++ /dev/null
@@ -1,281 +0,0 @@
-<!--
-    Copyright (c) 2010, 2011 IBM Corporation and others.
-    This program and the accompanying materials are made
-    available under the terms of the Eclipse Public License 2.0
-    which is available at https://www.eclipse.org/legal/epl-2.0/
-    
-    SPDX-License-Identifier: EPL-2.0
-   
-    Contributors:
-        IBM Corporation - initial API and implementation
- -->
-<project name="Build specific targets and properties" default="noDefault" basedir=".">
-
-	<property name="archiveName" value="gmf-notation-junit-tests-${buildAlias}.zip" />
-	
-	<!-- ===================================================================== -->
-	<!-- Run a given ${target} on all elements being built -->
-	<!-- ===================================================================== -->
-	<target name="allElements">
-		<ant antfile="${genericTargets}" target="${target}">
-			<property name="type" value="feature" />
-			<property name="id" value="org.eclipse.gmf.tests.runtime.notation" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Targets to assemble the built elements for particular configurations  -->
-	<!-- These generally call the generated assemble scripts (named in -->
-	<!-- ${assembleScriptName}) but may also add pre and post processing -->
-	<!-- Add one target for each root element and each configuration -->
-	<!-- ===================================================================== -->
-
-	<target name="assemble.org.eclipse.gmf.tests.runtime.notation">
-		<ant antfile="${assembleScriptName}" />
-		<!-- ADD POST STEPS -->
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Check out map files from correct repository -->
-	<!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
-	<!-- ===================================================================== -->
-	<target name="checkLocal">
-		<available property="mapsLocal" file="${buildDirectory}/maps" />
-	</target>
-
-	<target name="getMapFiles" depends="checkLocal" unless="mapsLocal">
-
-		<!-- ***  change the repo info -->
-		<property name="mapCvsRoot" value=":${cvsReadProtocol}:${cvsReadUser}@${cvsHost}:${cvsRep}" />
-		<property name="mapVersionTag" value="HEAD" />
-		<property name="packagePath" value="org.eclipse.${projectName}/org.eclipse.${subprojectName2}.releng/maps"/>
-
-		<cvs cvsRsh="ssh" cvsRoot="${mapCvsRoot}" tag="${mapVersionTag}" package="${packagePath}" dest="${buildDirectory}/maps" />
-		<copy todir="${buildDirectory}/maps/CVS" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}/CVS" />
-		</copy>
-		<copy todir="${buildDirectory}/maps" overwrite="true">
-			<fileset dir="${buildDirectory}/maps/${packagePath}" />
-		</copy>
-		<delete dir="${buildDirectory}/maps/org.eclipse.${projectName}" />
-
-		<!--tag the map files project-->
-		<antcall target="tagMapFiles" />
-	</target>
-
-	<target name="tagMapFiles" if="tagMaps">
-		<cvs cvsRsh="ssh" dest="${buildDirectory}/maps" command="tag v${timestamp}" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before setup -->
-	<!-- ===================================================================== -->
-	<target name="preSetup">
-		<mkdir dir="${buildDirectory}/${buildLabel}" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after setup but before starting the build proper -->
-	<!-- ===================================================================== -->
-	<target name="postSetup">
-		<!-- TODO: if your project requires more dependencies, add them here; if it does not require all of these, remove those not required -->
-		<echo message="Download, then unpack: Eclipse and EMF" />
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${eclipseURL}" />
-			<property name="file" value="${eclipseFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.platform.doc.isv/plugin.xml" />
-		</ant>
-		<ant target="getDependency" antfile="${buildDirectory}/../org.eclipse.modeling.common.releng/scripts/getDependencies.xml">
-			<property name="url" value="${emfURL}" />
-			<property name="file" value="${emfFile}" />
-			<property name="isUnpackedFile" value="${buildDirectory}/plugins/org.eclipse.emf.ecore/plugin.xml" />
-		</ant>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before fetching the build elements -->
-	<!-- ===================================================================== -->
-	<target name="preFetch">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the fetch -->
-	<!-- ===================================================================== -->
-	<target name="postFetch">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@buildId@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before generating build scripts -->
-	<!-- ===================================================================== -->
-	<target name="preGenerate">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after generating the build scripts -->
-	<!-- ===================================================================== -->
-	<target name="postGenerate">
-		<antcall target="clean" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before assembling -->
-	<!-- ===================================================================== -->
-	<target name="preAssemble">
-
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after assembling-->
-	<!-- ===================================================================== -->
-	<target name="postAssemble">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running package. -->
-	<!-- ===================================================================== -->
-	<target name="prePackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after  running package. -->
-	<!-- ===================================================================== -->
-	<target name="postPackage">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="preProcess">
-		<replace dir="${buildDirectory}/plugins" value="${timestamp}" token="@build@">
-			<include name="**/about.mappings" />
-		</replace>
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after running the build.xmls for the elements being built. -->
-	<!-- ===================================================================== -->
-	<target name="postProcess">
-		<condition property="logsAvailable">
-			<istrue value="${javacVerbose}"/> 
-		</condition>
-		<antcall target="gatherLogs" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after everything is built and assembled -->
-	<!-- (e.g., testing, posting, emailing, ...) -->
-	<!-- ===================================================================== -->
-	<target name="postBuild">
-   		<!-- contributing jars for the update site -->
-   		<zip destfile="${buildDirectory}/${buildLabel}/${masterZip}" update="true">
-   			<zipfileset src="${buildDirectory}/${buildLabel}/${archiveName}" dirmode="775" filemode="664" 
-   				includes="**/plugins/*.jar, **/plugins/*.jar.pack.gz, **/features/*.jar, **/features/*.jar.pack.gz" />
-   		</zip>
-		<!-- Unpacking jars to produce downloadable zips -->
-		<ant target="unpackUpdateJarsAndRepack" antfile="${helper}"/>
-		<antcall target="packageTestFramework" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Helper targets -->
-	<!-- ===================================================================== -->
-	<target name="gatherLogs">
-		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
-		<antcall target="allElements">
-			<param name="target" value="gatherLogs" />
-		</antcall>
-
-		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
-			<fileset dir="${buildDirectory}/features">
-				<include name="**/org.eclipse.gmf.tests.runtime.notation*/*.log.zip" />
-			</fileset>
-			<patternset>
-				<exclude name="**/org.eclipse.test*/**"/>
-			</patternset>
-		</unzip>
-	</target>
-	<target name="clean" unless="noclean">
-		<antcall target="allElements">
-			<param name="target" value="cleanElement" />
-		</antcall>
-	</target>
-
-	<target name="packageTestFramework">
-		<!--package automated test framework used in gmf builds-->
-
-		<property name="workingDirectory" value="${buildDirectory}/test.assembly" />
-		<echo message="workingDirectory:  ${workingDirectory}"/>
-
-		<!--unzip the junit tests-->
-		<mkdir dir="${workingDirectory}/eclipse/dropins/eclipse" />
-		<unzip dest="${workingDirectory}/eclipse/dropins/" overwrite="true">
-			<fileset dir="${buildDirectory}/${buildLabel}">
-				<include name="**/gmf-notation-junit-tests*.zip"/>
-			</fileset>
-		</unzip>
-		
-		<!-- create top level testing directory-->    
-		<delete dir="${workingDirectory}/testing"/>
-	    <mkdir dir="${workingDirectory}/testing" />
-		
-		<!--compile the tool used to generate the test.properties file, then run it.-->
-		<!--test.properties maps test plugin id's to the name of the plugin directory-->
-	    
-	    <!--eclipse.home is relative to the scripts directory in the org.eclipse.pde.build plugin.  Assume the plugins used in the classpath are in the same directory as org.eclipse.pde.build-->
-	    <property name="eclipse.home" value="../../.." />
-
-	    <generateTestProperties 
-	            buildDirectory="${buildDirectory}" 
-	            featureId="org.eclipse.gmf.tests.runtime.notation" 
-	            outputFile="${workingDirectory}/testing/test.properties" 
-	    /> 
-
-		<!--load the property file created with the directory names for all test plugins-->
-		<property file="${workingDirectory}/testing/test.properties" />
-
-		<!-- Remove the plugin version number appended to the org.eclipse.test plugin directory.
-	   	     This is so that contributors of test.xml's do not have to update their paths to 
-	   	     library.xml in org.eclipse.test whenever its version is updated.
-	   	 -->
-		<move todir="${workingDirectory}/eclipse/dropins/eclipse/plugins/org.eclipse.test">
-			<fileset dir="${workingDirectory}/eclipse/dropins/eclipse/plugins/${org.eclipse.test}" />
-		</move>
-	  	
-	  	<!--the Ant move task leaves behind an empty directory-->
-		<delete dir="${workingDirectory}/eclipse/dropins/eclipse/plugins/${org.eclipse.test}" includeEmptyDirs="true" />
-		
-	 	<!-- rezip the JUnit plugin tests -->
-		<zip destfile="${workingDirectory}/testing/gmf-notation-junit-tests-${buildAlias}.zip">
-			<zipfileset dir="${workingDirectory}/eclipse/dropins/eclipse" prefix="eclipse" />
-		</zip>
-	 	
-	 	<!--Copy scripts and doc used in the automated testing to the testing directory-->
-	    <copy todir="${workingDirectory}/testing">
-	     	<fileset dir="${buildDirectory}/plugins/org.eclipse.test" includes="testframework.html,JUNIT.XSL" />
-	    </copy>
-	    <copy todir="${workingDirectory}/testing">
-	     	<fileset dir="${builderDirectory}/scripts" />
-	    </copy>
-
-		<!--copy in the file containing the URL of the Eclipse build used for testing-->
-	    <copy todir="${workingDirectory}/testing" file="${buildDirectory}/../build.cfg" />
-
-		<!--create zip file of the automated testing framework-->	
-		<zip destfile="${buildDirectory}/${buildLabel}/gmf-tests-notation-${buildAlias}.zip">
-			 <zipfileset dir="${workingDirectory}/testing" prefix="testing"/>
-		</zip>
-
-		<delete file="${buildDirectory}/${buildLabel}/gmf-notation-junit-tests-${buildAlias}.zip"  />
-	</target>
-	
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="You must specify a target when invoking this file" />
-	</target>	
-		
-</project>
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/scripts/readme.html b/org.eclipse.gmf.notation.releng/builder/tests/scripts/readme.html
deleted file mode 100755
index cbf8a2e..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/scripts/readme.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<html>
-<head>
-<title>Instructions</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<font size="+2"> Automated Testing of Modeling Project Builds</font> 
-<p>last updated: November 9, 2005</p>
-<p><font size="+1">Description</font></p>
-<p>This document describes how to run the GMF JUnit test plugins from the command 
-  line. This is the same mechanism used in the builds.</p>
-<p>Click <a href="testframework.html">here</a> for a description of the testing 
-  framework, and how it can be used outside of the setup described here.</p>
-<p>If you simply wish to write and run JUnit tests interactively from an Eclipse 
-  workbench, try one of the links below:</p>
-<p><a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-ui-home/plugins/org.eclipse.jdt.junit/index.html">JUnit 
-  Support in Eclipse</a><br>
-<a href="http://dev.eclipse.org:8080/help/content/help:/org.eclipse.jdt.doc.user/tasks/tasks-207.htm?resultof=%6a%75%6e%69%74%20&toc=%2Forg.eclipse.jdt.doc.user%2Ftoc.xml">Using 
-  JUnit</a></p>
-
-<p><font size="+1">Requirements</font></p>
-<p>1. All test machines must have a java runtime environment (version 1.3.1) installed and added to the path environment variable (see 
-  <a href="#vm">-vm</a> parameter below).<br>
-  2. <a href="http://www.info-zip.org/pub/infozip/UnZip.html">Info-ZIP UnZip</a> 
-  version 5.41 or later installed and added to the path.<br>
-  3. The Automated Test feature from a
-  <a href="http://www.eclipse.org/modeling/mdt/downloads/"> MDT downloads</a>. 
-  This contains the test framework plugins and the JUnit test plugins to run.<br>
-  4. The GMF zip file from the same build as the Automated Test feature.  You can use the gmf-sdk zip file instead of the individual files.<br>
-  5. An Eclipse SDK zip file. The URL and build name of the required builds 
-  are specified in the build.cfg file included in the Automated Test zip file.</p>
-<p><font size="+1">Setup</font></p>
-<p>1. Extract the gmf-*-automated-tests-&lt;buildId&gt;.zip. On Window, extract 
-  this file close to the root of the drive to prevent some path names from exceeding 
-  the 255 character limit. This will create a top-level directory &quot;<i>testing</i>&quot;.<br>
-  2. Place the Eclipse SDK zip file and the GMF runtime in the <i>testing</i> directory. 
-  Do not unzip these files. (The test scripts will take care of this)<br>
-</p>
-<p><font size="+1">Running Tests</font></p>
-<p>1. cd to the <i>testing</i> directory<br>
-  2. Run the following script:</p>
-<p><b>runtests [-os &lt;operating system&gt;] [-ws &lt;windowing system&gt;] [-arch 
-  &lt;architecture&gt;] [-noclean] [&lt;testTarget&gt;][-properties &lt;path&gt;][-vm 
-  &lt;path to java executable&gt;]</b></p>
-All parameters and targets are optional on windows systems. Just running &quot;runtests&quot; 
-will run <b>ALL</b> tests on Windows, installing a clean Eclipse and GMF SDK between 
-each test target. On *nix systems, the os, ws and arch parameters must be specified. 
-<br>
-<br>
-Test results are placed in the <i>testing</i>/<i>results</i> directory in xml and html format.<br>
-<p><font size="+1"><a name="vm"></a>Parameters</font></p>
-<table width="90%" border="1">
-  <tr> 
-    <td>Parameter</td>
-    <td>Description</td>
-  </tr>
-  <tr> 
-    <td>-os &lt;operating system&gt;</td>
-    <td>The OS the tests are being run on. One of: aix, hpux, linux, qnx, solaris, 
-      win32. <b>Default win32</b></td>
-  </tr>
-  <tr> 
-    <td>-ws &lt;windowing system&gt;</td>
-    <td>The windowing system the tests are being run on. One of: motif, gtk, photon, 
-      win32. <b>Default win32</b></td>
-  </tr>
-  <tr> 
-    <td>-arch &lt;architecture&gt;</td>
-    <td>The architecture the tests are being run on. One of: ppc, PA_RISC, x86, 
-      sparc. <b>Default x86</b></td>
-  </tr>
-  <tr> 
-    <td>-noclean</td>
-    <td>Run tests without installing an Eclipse and GEF SDK and tests between 
-      test targets. Default is to re-install these between test targets.</td>
-  </tr>
-  <tr> 
-    <td>-properties</td>
-    <td>Used to reference a properties file containing additional Ant properties 
-      used in running tests.Can be used to pass additional vm arguments to the 
-      Java virtual machine running the tests by adding the entry &quot;extraVMargs=&lt;the 
-      args to pass to the vm&gt;&quot; to the specified properties file.</td>
-  </tr>
-  <tr>
-    <td>-vm</td>
-    <td>The full path to the java executable with which to run the tests. Use 
-      this to specify a specific virtual machine with which to run the tests. 
-      For example, &quot;-vm c:\sun131\jre\bin\java&quot;. Default set to &quot;java&quot; 
-      (i.e. java executable on system path). </td>
-  </tr>
-</table>
-  
-<p><font size="+1">Test Targets</font></p>
-<p>Specifies which ant target to run in the main test.xml. Typically this corresponds 
-  to a test project's tests. If you do not specify a test target then the <b>all</b> 
-  test target is run.</p>
-
-<table width="90%" border="1">
-  <tr> 
-    <td>all</td>
-    <td>Runs all the targets below.</td>
-  </tr>
-  <tr> 
-    <td>gmf</td>
-    <td>Runs the JUnit tests located in the test plug-ins</td>
-  </tr>
-  <tr> 
-    <td>genHtml</td>
-    <td>Converts xml test results in the &quot;<i>testing</i>/<i>results</i>&quot; directory 
-      to html.</td>
-  </tr>
-</table>
-<p>&nbsp;</p>
-<p><font size="+1"><a name="appendixb"></a>Appendix A- Supported os, ws, and arch 
-  value combinations</font></p>
-<p>The following table contains the values that can be used with the -os, -ws, 
-  and -arch switches.</p>
-<table width="75%" border="1">
-  <tr> 
-    <td>Operating System (os)</td>
-    <td>Windowing System (ws)</td>
-    <td>Architecture (arch)</td>
-  </tr>
-  <tr> 
-    <td>aix</td>
-    <td>motif</td>
-    <td>ppc</td>
-  </tr>
-  <tr> 
-    <td>hpux</td>
-    <td>motif</td>
-    <td>PA_RISC</td>
-  </tr>
-  <tr> 
-    <td>linux</td>
-    <td>gtk</td>
-    <td>x86</td>
-  </tr>
-  <tr> 
-    <td>linux</td>
-    <td>motif</td>
-    <td>x86</td>
-  </tr>
-  <tr> 
-    <td height="24">qnx</td>
-    <td height="24">photon</td>
-    <td height="24">x86</td>
-  </tr>
-  <tr> 
-    <td>solaris</td>
-    <td>motif</td>
-    <td>sparc</td>
-  </tr>
-  <tr> 
-    <td>win32</td>
-    <td>win32</td>
-    <td>x86</td>
-  </tr>
-</table>
-</body>
-</html>
diff --git a/org.eclipse.gmf.notation.releng/builder/tests/scripts/test.xml b/org.eclipse.gmf.notation.releng/builder/tests/scripts/test.xml
deleted file mode 100755
index 2cf5d85..0000000
--- a/org.eclipse.gmf.notation.releng/builder/tests/scripts/test.xml
+++ /dev/null
@@ -1,103 +0,0 @@
-<!--
-    Copyright (c) 2010, 2011 IBM Corporation and others.
-    This program and the accompanying materials are made
-    available under the terms of the Eclipse Public License 2.0
-    which is available at https://www.eclipse.org/legal/epl-2.0/
-    
-    SPDX-License-Identifier: EPL-2.0
-   
-    Contributors:
-        IBM Corporation - initial API and implementation
- -->
-<project name="Automated Testing" default="all"  basedir="." >
-
-	<!--properties file containing the plugin directory name including version number-->
-	<property file="test.properties" />
-	
-	<!-- urls and such from the build -->
-	<property file="${basedir}/../../../build.cfg" />
-
-	<!--default directory where test-eclipse will be installed-->
-	<property name="install" value="${basedir}/target" />
-	
-	<!--name that can be added to report name to identify which platform tests results come from-->
-	<property name="platform" value="" />
-
-	<!-- The root of the eclipse installation -->
-	<property name="eclipse-home" value="${install}/eclipse" />
-
-	<!-- The directory that will contain the xml and html results from the tests that are run -->
- 	<property name="results" value="${basedir}/results" />
-
-	<target name="setup" if="clean" description="Reinstall the test Eclipse installation if specified by user">
-		<property name="test.target" value="junits" />
-		<delete dir="${install}" /><mkdir dir="${install}" />
-		
-		<!-- TODO: if your project requires more dependencies, add them here; if it does not require all of these, remove those not required -->
-		<echo message="Download, then unpack dependencies ..." />
-		<property name="common.releng.dir" value="${basedir}/../../../org.eclipse.modeling.common.releng"/>
-		<property name="getTestDependencies.xml" value="${common.releng.dir}/scripts/getTestDependencies.xml"/>
-		<ant target="getTestDependency" antfile="${getTestDependencies.xml}" dir="${common.releng.dir}">
-			<property name="url" value="${eclipseURL}" />
-			<property name="file" value="${eclipseFile}" />
-			<property name="unpackDest" value="${install}"/>
-		</ant>
-		<ant target="getTestDependency" antfile="${getTestDependencies.xml}" dir="${common.releng.dir}">
-			<property name="url" value="${emfURL}" />
-			<property name="file" value="${emfFile}" />
-			<property name="unpackDest" value="${install}"/>
-		</ant>
-		<property name="dir" location="."/>
-		<echo message="Unpack SDK + examples + JUnit Tests (${dir}/gmf-*.zip) ..."/>		
-		<unzip dest="${install}/eclipse/dropins" overwrite="true">
-		    <fileset dir="${dir}"><include name="**/gmf-*.zip"/></fileset>
-		</unzip>
-		
-		<echo message="install: ${install}, dropins: ${install}/eclipse/dropins"/>
-		<echo message="eclipse-home: ${eclipse-home}, dropins-eclipse-home: ${eclipse-home}/dropins/eclipse"/>		
-	</target>
-
-	<target name="runtests" description="Runs ant on the test.xml for a specified plugin.  Requires a property value setting for testPlugin only if test.properties is not available.  The property testPlugin represents a directory name made up of the plugin id and plugin version.  This directory must contain a valid test.xml.">
-		<!-- TODO: if your test plugin is jarred, comment the next line and uncomment the 4 lines after that.
-		     TODO: if your test plugin is NOT a jarred plugin, do nothing here -->
-		<echo message="${eclipse-home}/plugins/${testPlugin} is not a jarred plugin. No unpack required!"/> 
-<!--		<echo message="Unpack ${eclipse-home}/plugins/${testPlugin}.jar to ${eclipse-home}/plugins/${testPlugin} ... "/>
-		<move file="${eclipse-home}/plugins/${testPlugin}.jar" tofile="${eclipse-home}/plugins/${testPlugin}_.jar"/>
-		<unjar src="${eclipse-home}/plugins/${testPlugin}_.jar" dest="${eclipse-home}/plugins/${testPlugin}"/>
-		<delete file="${eclipse-home}/plugins/${testPlugin}_.jar"/> -->
-		
-		<echo message="Running test.xml from jarfile ${eclipse-home}/dropins/eclipse/plugins/${testPlugin} ... "/>
-		<ant antfile="${eclipse-home}/dropins/eclipse/plugins/${testPlugin}/test.xml" dir="${eclipse-home}" target="${test.target}"/>
-		<copy file="${eclipse-home}/${report}.xml" tofile="${results}/xml/${report}_${platform}.xml" />
-	</target>
-
-	<target name="sdk" depends="setup" description="Runs the test.xml of the tests plugin">
-		<antcall target="runtests">
-			<param name="testPlugin" value="${org.eclipse.gmf.tests.runtime.notation}" />
-			<param name="report" value="org.eclipse.gmf.tests.runtime.notation" />
-		</antcall>
-	</target>
-			
-	<target name="chkpii" description="Runs CHKPII tests">
-		<!-- test if chkpii script exists before proceeding -->
-		<property name="common.releng.dir" value="${basedir}/../../../org.eclipse.modeling.common.releng"/>
-		<property name="chkpii.xml" value="${common.releng.dir}/scripts/chkpii.xml"/>
-		<available file="${chkpii.xml}" property="chkpiiXMLAvailable"/>
-		<antcall target="runChkpii"/>
-	</target>
-
-	<target name="runChkpii" if="chkpiiXMLAvailable">
-		<ant target="chkpii" antfile="${chkpii.xml}" inheritall="true">
-			<property name="zipPattern" value="gmf-*.zip"/>
-		</ant>
-	</target>
-
-	<target name="all">
-		<antcall target="sdk" />
-		<antcall target="genHtml" />
-	</target>
-	
-	<target name="genHtml" description="Generates HTML results with provided JUNIT.XSL provided">
-		<style style="JUNIT.XSL" basedir="${results}/xml" destdir="${results}/html" />
-	</target>
-</project>
diff --git a/org.eclipse.gmf.notation.releng/maps/gmf-runtime-notation.map b/org.eclipse.gmf.notation.releng/maps/gmf-runtime-notation.map
deleted file mode 100755
index 9f52ed1..0000000
--- a/org.eclipse.gmf.notation.releng/maps/gmf-runtime-notation.map
+++ /dev/null
@@ -1,10 +0,0 @@
-!*** Graphical Modeling Framework (GMF) Runtime Notation map ********************************
-
-!*** GMF Runtime Notation features **********************************************************
-feature@org.eclipse.gmf.runtime.notation=v20120327-2213,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/features/org.eclipse.gmf.runtime.notation-feature
-feature@org.eclipse.gmf.runtime.notation.sdk=v20120327-2213,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/features/org.eclipse.gmf.runtime.notation.sdk-feature
-
-!*** GMF Runtime Notation plug-ins **********************************************************
-plugin@org.eclipse.gmf.runtime.notation=v20110309-2159,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/plugins/org.eclipse.gmf.runtime.notation
-plugin@org.eclipse.gmf.runtime.notation.sdk=v20100716-2159,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/plugins/org.eclipse.gmf.runtime.notation.sdk
-plugin@org.eclipse.gmf.runtime.notation.edit=v20100512-1416,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/plugins/org.eclipse.gmf.runtime.notation.edit
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/maps/gmf-tests-runtime-notation.map b/org.eclipse.gmf.notation.releng/maps/gmf-tests-runtime-notation.map
deleted file mode 100755
index f0f5a8b..0000000
--- a/org.eclipse.gmf.notation.releng/maps/gmf-tests-runtime-notation.map
+++ /dev/null
@@ -1,11 +0,0 @@
-!*** Graphical Modeling Framework (GMF) runtime notation tests map *******************************************
-
-!*** GMF runtime notation tests features *********************************************************************
-feature@org.eclipse.gmf.tests.runtime.notation=v20120327-2213,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/features/org.eclipse.gmf.tests.runtime.notation-feature
-
-!*** GMF runtime notation tests plug-ins *********************************************************************
-plugin@org.eclipse.gmf.tests.runtime.notation=v20110503-2159,:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling,,org.eclipse.gmp/org.eclipse.gmf.notation/tests/org.eclipse.gmf.tests.runtime.notation
-
-!*** Special entries from eclipse  
-plugin@org.eclipse.test=v20080313,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
-fragment@org.eclipse.ant.optional.junit=v20070202,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/promoteToEclipse.gmf-notation.properties b/org.eclipse.gmf.notation.releng/promoteToEclipse.gmf-notation.properties
deleted file mode 100755
index f2b39b8..0000000
--- a/org.eclipse.gmf.notation.releng/promoteToEclipse.gmf-notation.properties
+++ /dev/null
@@ -1,168 +0,0 @@
-## promoteToEclipse.*.properties
-## specific version of promoteToEclipse.sh properties
-##
-## NOTE:
-## You must rename this file to promoteToEclipse.$subprojectName.properties for it to be 
-## found when using the -sub flag; otherwise you'll have to use the -f flag to specify
-## a CUSTOM-named properties file
-
-# product being built (folder name prefix)
-projectName=gmp
-subprojectName=gmf-notation
-projectNameVanity="GMF Notation"
-
-# used to determine the actual name of the SDK zip (when builds are aliased)
-SDKfilenamepattern="gmf-sdk-notation-*.zip"
-
-# the following two arrays must be the same size (or else the second one will default to blank)
-javadocModuleArray=( "$projectName-$subprojectName" ); # array, project-subproject, for the name of the zip scp'd to remote, eg. foo-bar-doc.zip
-# if "", create in $projectName/javadoc; if "/path", create in $projectName/$subprojectName/javadoc 
-javadocFolderArray=( "/$subprojectName" ); # array of path fragments
-# list of targets to use when executing fixJavadocs.sh
-javadocTargetArray=( "-sub $subprojectName" );
-
-# publisher of newsgroup announcements
-newsgroupPublisherEmail="Anthony Hunter <anthonyh@ca.ibm.com>"
-newsgroup=eclipse.modeling.$projectName
-# to thread posts under an existing post (or posts) enter the slash-escaped Message-ID for which this is a reply,
-# eg: <du7hic\$qos\$1@utils.eclipse.org>
-newsgroupThreadReferences=""
-
-# default eclipse.org, build server, mapfile server usernames
-user=$USER
-# if no value set here or by -userIES flag, default to -user flag or value in properties file
-userIES=ahunter
-
-# group permissions on eclipse.org so that anyone can change files
-eclipseUserGroup="$projectName"admin
-eclipsePermsDir=2775
-eclipsePermsFile=664
-
-# group permissions on build box so that anyone can change files
-buildUserGroup="www"
-buildPermsDir=2775
-buildPermsFile=664
-
-# IES map file branch (required)
-branchIES=HEAD
-
-# IES map file template: use "buildIDactual" and "webPath" as placeholders
-IESmapfileArray=( 
-"gmf-sdk-buildIDactual.zip=webPath  | | | sdk | $subprojectName"
-"gmf-runtime-buildIDactual.zip=webPath  | | | runtime | $subprojectName"
-"gmf-examples-buildIDactual.zip=webPath  | | | sdk | $subprojectName-examples"
-"gmf-tests-buildIDactual.zip=webPath  | | | sdk | $subprojectName-tests" ); # array of lines
-
-### DEFAULT BEHAVIOUR OPTIONS ###
-
-# default setting for whether to do or skip the drop upload section: 0 = do, 1 = skip
-dodrop=1
-
-# default setting for whether to do or skip the javadoc section: 0 = do, 1 = skip
-dodocs=0
-
-# default setting for whether to do or skip the Update Manager jars section: 0 = do, 1 = skip
-UMjars=1
-
-#default buildID
-buildID=
-
-#default branch
-branch=1.4.0
-cvsbranch=HEAD
-
-#do RSS feed file update?
-RSS=1
-
-# do search cvs update?
-searchCVS=1
-# how long to block before giving up (in seconds, eg., 1200 for 20 mins wait)
-searchCVSTimeout=1200
-# change ASSIGNED bugs to FIXED
-bugz=0 
-# enable waiting for the build to show up in the relnotes database
-checkReleaseExists=1
-
-#do IES mapping file update?
-IES=0
-
-# debug output
-debug=0 ; # values can be 0,1,2
-
-#clean up /tmp folder?
-noclean=0;
-
-# compare drops folder after scp upload?
-noCompareDropsFolders=0 ; # default 0, do compare; set 1 to bypass or pass in querystring
-
-# compare UM folder after scp upload?
-noCompareUMFolders= ; # default 0, do compare; set 1 to bypass or pass in querystring
-
-# announce new build in newsgroup? (default 0)
-announce=0;
-
-### SERVER & PATH CONFIG OPTIONS ###
-
-#server on which builds occur (need to ssh to this box as $user@$buildServerFullName)
-buildServerFullName=`hostname`
-
-#server on which eclipse's production CVS is located (need to ssh to this box as $user@$eclipseServerFullName)
-eclipseServerFullName=build.eclipse.org
-
-#server on which eclipse's production files are located (downloads, javadoc, etc.): ssh as $user@$downloadServerFullName)
-downloadServerFullName=build.eclipse.org
-
-#paths on \$downloadServerFullName where files are published
-projectWWWDir=/home/data/httpd/download.eclipse.org/modeling/$projectName
-projectDropsDir=$projectWWWDir/$subprojectName/downloads/drops
-
-#paths to build base, scripts, and drops on build server
-baseBuildDir=/home/www-data/build/modeling/$projectName
-buildScriptsDir=/home/www-data/build/modeling/scripts
-buildDropsDir=$baseBuildDir/$subprojectName/downloads/drops
-
-# path to website on build server (emf.torolab)
-localWebDir=/var/www/html/modeling/$projectName
-
-# urls 
-releaseNotesURL=http://www.eclipse.org/modeling/$projectName/news/relnotes.php?project=$subprojectName
-downloadsURL=http://www.eclipse.org/modeling/$projectName/downloads/?project=$subprojectName
-
-### ANT OPTIONS ###
-ANT=/opt/apache-ant-1.6/bin/ant
-
-### DEFAULT BEHAVIOUR AND JVM OPTIONS :: buildUpdate.sh ###
-
-# specify the correct java home & vm used to run the build
-javaHome=/opt/sun-java2-1.4
-vm=$javaHome/bin/java
-
-# zips to unpack for UM jar generation
-#filePrefixesToUnzipArray=( "$projectName-sdk-" "$projectName-sdk-experimental-" "$projectName-tests-" "$projectName-examples-" );
-filePrefixesToUnzipArray=( "$subprojectName-Master-" );
-
-# ant script and target to be executed
-antScript=org.eclipse.releng.generators/buildProductUpdateJars.xml
-target=run
-
-# default operations
-builder=1 # get builder packages from cvs
-promote=0 # don't promote by default
-skipjars=0 # when promoting, upload all jars (don't skip)
-cleanup=1 # delete temp stuff when done
-
-# compare UM folder after scp upload?
-noCompareUMFolders=0 ; # default 0, do compare; set 1 to bypass or pass in querystring
-
-# do 4-part jars?
-no4thPart=0;
-
-# where to get releng.generators.ProductUpdateBuilder, jars & ant scripts
-relengGeneratorsCVSPath=releng-common/tools/updates/org.eclipse.releng.generators
-
-# use a default value for basebuilderBranch? 0 = no, 1 = yes
-useDefaultBasebuilderBranch=0
-
-# pattern to use when searching for features to include in coordsite; defaults to ".*eclipse/features/org.eclipse..*(${subprojectName}|${subprojectName}.sdk)_.*\/$" 
-#coordsiteFeaturePattern=""
-#coordsiteMainFeaturePattern=""
diff --git a/org.eclipse.gmf.notation.releng/psf/gmf-runtime-notation.psf b/org.eclipse.gmf.notation.releng/psf/gmf-runtime-notation.psf
deleted file mode 100755
index 110144b..0000000
--- a/org.eclipse.gmf.notation.releng/psf/gmf-runtime-notation.psf
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<psf version="2.0">
-	<provider id="org.eclipse.team.cvs.core.cvsnature">
-		<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.runtime.notation.sdk-feature,org.eclipse.gmf.runtime.notation.sdk-feature"/>
-		<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.runtime.notation-feature,org.eclipse.gmf.runtime.notation-feature"/>
-		<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.runtime.notation.sdk,org.eclipse.gmf.runtime.notation.sdk"/>
-		<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.runtime.notation,org.eclipse.gmf.runtime.notation"/>
-		<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.runtime.notation.edit,org.eclipse.gmf.runtime.notation.edit"/>
-	</provider>
-</psf>
diff --git a/org.eclipse.gmf.notation.releng/psf/gmf-tests-runtime-notation.psf b/org.eclipse.gmf.notation.releng/psf/gmf-tests-runtime-notation.psf
deleted file mode 100644
index a2421ae..0000000
--- a/org.eclipse.gmf.notation.releng/psf/gmf-tests-runtime-notation.psf
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<psf version="2.0">
-<provider id="org.eclipse.team.cvs.core.cvsnature">
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.tests.runtime.notation,org.eclipse.gmf.tests.runtime.notation"/>
-<project reference="1.0,:extssh:dev.eclipse.org:/cvsroot/modeling,org.eclipse.gmp/org.eclipse.gmf.notation/org.eclipse.gmf.tests.runtime.notation-feature,org.eclipse.gmf.tests.runtime.notation-feature"/>
-</provider>
-</psf>
\ No newline at end of file
diff --git a/org.eclipse.gmf.notation.releng/repoInfo.properties b/org.eclipse.gmf.notation.releng/repoInfo.properties
deleted file mode 100755
index be5da8e..0000000
--- a/org.eclipse.gmf.notation.releng/repoInfo.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-cvsHost=dev.eclipse.org
-cvsReadProtocol=pserver
-cvsWriteProtocol=ext
-cvsReadUser=anonymous
-cvsWriteUser=ahunter
-cvsWriteRelengUser=ahunter
-cvsRep=/cvsroot/modeling
diff --git a/org.eclipse.gmf.notation.releng/templateFiles/notation.map.template b/org.eclipse.gmf.notation.releng/templateFiles/notation.map.template
deleted file mode 100755
index 85bb1eb..0000000
--- a/org.eclipse.gmf.notation.releng/templateFiles/notation.map.template
+++ /dev/null
@@ -1,13 +0,0 @@
-!***************  PROJECT CONTRIBUTION  ******************************************************** 
-
-!*** Special entries from eclipse
-
-plugin@org.eclipse.test=v20070217,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
-fragment@org.eclipse.ant.optional.junit=v20050226,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,
-
-!*** Default entries
-
-
-!*** Project's plugins, features and fragments
-
-@entries@
diff --git a/org.eclipse.gmf.notation.releng/templateFiles/testManifest.xml.template b/org.eclipse.gmf.notation.releng/templateFiles/testManifest.xml.template
deleted file mode 100755
index 6271092..0000000
--- a/org.eclipse.gmf.notation.releng/templateFiles/testManifest.xml.template
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<topLevel>
-	<zipTypes>
-		<zipType name="Runtime">
-			<platform id="RUN"
-				name="All"
-				fileName='&lt;a href="@base@gmf-notation-@build@.zip">gmf-notation-@build@.zip&lt;/a>'>
-			</platform>
-		</zipType>
-	</zipTypes>
-
-	<logFiles>
-@entries@
-	</logFiles>
-</topLevel>
-
diff --git a/org.eclipse.gmf.notation.releng/testManifest.xml b/org.eclipse.gmf.notation.releng/testManifest.xml
deleted file mode 100755
index 4513805..0000000
--- a/org.eclipse.gmf.notation.releng/testManifest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-<topLevel>
-	<zipTypes>
-		<zipType name="Notation">
-			<platform id="RUN"
-				name="All"
-				fileName='&lt;a href="@base@GMF-notation-@build@.zip">GMF-notation-@build@.zip&lt;/a>'>
-			</platform>
-		</zipType>
-		<zipType name="Tests">
-			<platform id="T" name="All"
-				fileName='&lt;a href="@base@GMF-tests-notation-@build@.zip">GMF-tests-notation-@build@.zip&lt;/a>'>
-			</platform>
-		</zipType>
-	</zipTypes>
-
-	<logFiles>
-		<logFile
-			name="plugins/org.eclipse.gmf.runtime.notation_*/@dot.bin.log">
-			<effectedFile id="RUN"></effectedFile>
-		</logFile>
-	</logFiles>
-</topLevel>
-
