diff --git a/org.eclipse.jdt.core/scripts/GenerateBuildScript.java b/org.eclipse.jdt.core/scripts/GenerateBuildScript.java
new file mode 100644
index 0000000..d0bb011
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/GenerateBuildScript.java
@@ -0,0 +1,149 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+
+public class GenerateBuildScript {
+
+	private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //$NON-NLS-1$
+	private static final String HEADER=
+		"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"<project name=\"export-executable\" default=\"build_executable\">" +LINE_SEPARATOR + //$NON-NLS-1$
+		"    <target name=\"build_executable\">" + LINE_SEPARATOR; //$NON-NLS-1$
+
+	private static final String SOURCE_FILES =
+		"	    <echo message=\"compiling sources      -> .o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"        <apply failonerror=\"true\" executable=\"$'{'gcc-path'}'/bin/{0}\" dest=\"{1}\" parallel=\"false\">" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"--verbose\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"--classpath={1}\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-O2\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-c\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-fassume-compiled\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-march=pentium4\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-mfpmath=sse\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <srcfile/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <targetfile/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <fileset dir=\"{1}\" includes=\"**/*.java\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <mapper type=\"glob\" from=\"*.java\" to=\"*.o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"        </apply>" + LINE_SEPARATOR + LINE_SEPARATOR; //$NON-NLS-1$
+	private static final String FOOTER =
+		"        <echo message=\"linking .o -> $'{'binaryname'}'\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"        <apply failonerror=\"true\" executable=\"$'{'gcc-path'}'/bin/{0}\" parallel=\"true\">" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"--verbose\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg line =\"-o $'{'dest'}'/$'{'binaryname'}'\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-fassume-compiled\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-march=pentium4\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-mfpmath=sse\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg line=\"--main=org.eclipse.jdt.internal.compiler.batch.Main\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <fileset dir=\"{1}\" includes=\"**/*.o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"       </apply>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"    </target>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"</project>" + LINE_SEPARATOR; //$NON-NLS-1$
+
+	private static void collectAllFiles(File root, ArrayList collector, FileFilter fileFilter) {
+		File[] files = root.listFiles(fileFilter);
+		for (int i = 0; i < files.length; i++) {
+			if (files[i].isDirectory()) {
+				collectAllFiles(files[i], collector, fileFilter);
+			} else {
+				String newElement = files[i].getAbsolutePath();
+				newElement = newElement.replace('\\', '/');
+				collector.add(newElement);
+			}
+		}
+	}
+
+	private static void dumpAllProperties(Writer writer, File sourceDir, ArrayList collector, String gcj_exe, String dest_dir) throws IOException {
+		writer.write("        <echo message=\"compiling resources   -> .o\"/>" + LINE_SEPARATOR); //$NON-NLS-1$
+		for (int i = 0, max = collector.size(); i < max; i++) {
+			String absolutePath = (String) collector.get(i);
+			String fileName = absolutePath.substring(sourceDir.getAbsolutePath().length() + 1); 
+			writer.write(MessageFormat.format("  		<exec dir=\"{1}\" executable=\"$'{'gcc-path'}'/bin/{0}\">" + LINE_SEPARATOR, new Object[] { gcj_exe, dest_dir})); //$NON-NLS-1$
+			writer.write("  		<arg line=\"--resource "); //$NON-NLS-1$
+			writer.write(fileName + " " + fileName + " -c -o " + getObjectName(fileName) + "\"/>" + LINE_SEPARATOR); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			writer.write("  		</exec>" + LINE_SEPARATOR); //$NON-NLS-1$
+		}
+	}
+
+	private static void dumpAllClassFiles(Writer writer, File sourceDir, ArrayList collector, String gcj_exe, String dest_dir) throws IOException {
+		writer.write("        <echo message=\"compiling class files   -> .o\"/>" + LINE_SEPARATOR); //$NON-NLS-1$
+		writer.write(
+				MessageFormat.format(
+		"        <apply failonerror=\"true\" executable=\"$'{'gcc-path'}'/bin/{0}\" dest=\"{1}\" parallel=\"false\">" + LINE_SEPARATOR + //$NON-NLS-1$
+		"  			 <arg value=\"--verbose\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"--classpath={1}\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-O2\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-c\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-fassume-compiled\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-march=pentium4\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-mfpmath=sse\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <srcfile/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <arg value=\"-o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <targetfile/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <fileset dir=\"{1}\" includes=\"**/*.class\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"            <mapper type=\"glob\" from=\"*.class\" to=\"*.o\"/>" + LINE_SEPARATOR + //$NON-NLS-1$
+		"        </apply>" + LINE_SEPARATOR + LINE_SEPARATOR,//$NON-NLS-1$
+		new Object[] {
+				gcj_exe,
+				dest_dir
+		}));
+	}
+
+	private static String getObjectName(String fileName) {
+		return fileName.substring(0, fileName.lastIndexOf('.')) + ".o"; //$NON-NLS-1$
+	}
+			
+	public static void main(String[] args) {
+		if (args.length != 5) {
+			System.out.println("Usage: script_name directory gcj_exe_name dest_dir source/bin"); //$NON-NLS-1$
+			return;
+		}
+		try {
+			BufferedWriter writer = new BufferedWriter(new FileWriter(new File(args[0])));
+			writer.write(HEADER);
+			File sourceDir = new File(args[1]);
+			if (sourceDir.exists()) { 
+				ArrayList collector = new ArrayList();
+				collectAllFiles(sourceDir, collector, new FileFilter() {
+					public boolean accept(File pathname) {
+						String fileName = pathname.getAbsolutePath();
+						return pathname.isDirectory() || fileName.endsWith(".rsc") || fileName.endsWith(".properties"); //$NON-NLS-1$ //$NON-NLS-2$
+					}
+				});
+				dumpAllProperties(writer, sourceDir, collector, args[2], args[3]);
+				if ("source".equals(args[4])) { //$NON-NLS-1$
+					writer.write(MessageFormat.format(SOURCE_FILES, new Object[] {args[2], args[3]}));
+				} else {
+					collector = new ArrayList();
+					collectAllFiles(sourceDir, collector, new FileFilter() {
+						public boolean accept(File pathname) {
+							String fileName = pathname.getAbsolutePath();
+							return pathname.isDirectory() || fileName.endsWith(".class"); //$NON-NLS-1$
+						}
+					});
+					dumpAllClassFiles(writer, sourceDir, collector, args[2], args[3]);				
+				}
+			}
+			writer.write(MessageFormat.format(FOOTER, new Object[] {args[2], args[3]}));
+			writer.flush();
+			writer.close();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/org.eclipse.jdt.core/scripts/UpdateParserFiles.java b/org.eclipse.jdt.core/scripts/UpdateParserFiles.java
new file mode 100644
index 0000000..e93c466
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/UpdateParserFiles.java
@@ -0,0 +1,39 @@
+/**********************************************************************
+ * This file is part of "Object Teams Development Tooling"-Software
+ * 
+ * Copyright 2004, 2010 Fraunhofer Gesellschaft, Munich, Germany,
+ * for its Fraunhofer Institute and Computer Architecture and Software
+ * Technology (FIRST), Berlin, Germany and Technical University Berlin,
+ * Germany.
+ * 
+ * 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
+ * $Id$
+ * 
+ * Please visit http://www.eclipse.org/objectteams for updates and contact.
+ * 
+ * Contributors:
+ * 	  Fraunhofer FIRST - Initial API and implementation
+ * 	  Technical University Berlin - Initial API and implementation
+ **********************************************************************/
+import java.io.IOException;
+import org.eclipse.jdt.internal.compiler.parser.Parser;
+
+public class UpdateParserFiles {
+
+	public static void main(String[] args) throws IOException {
+		if (args.length != 2) {
+			printUsage();
+			return;
+		}
+	Parser.buildFilesFromLPG(args[0], args[1]);
+	}
+			
+	public static void printUsage() {
+		System.out.println("Usage: UpdateParserFiles <path to javadcl.java> <path to javahdr.java>");
+		System.out.println("e.g. UpdateParserFiles c:/javadcl.java c:/javahdr.java");
+	}
+}
+
diff --git a/org.eclipse.jdt.core/scripts/about.html b/org.eclipse.jdt.core/scripts/about.html
new file mode 100644
index 0000000..4602330
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 2, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/binary/META-INF/MANIFEST.MF b/org.eclipse.jdt.core/scripts/binary/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2adaf31
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/binary/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Main-Class: org.eclipse.jdt.internal.compiler.batch.Main
+Bundle-ManifestVersion: 2
+Bundle-Name: Eclipse Compiler for Java(TM)
+Bundle-SymbolicName: org.eclipse.jdt.core.compiler.batch
+Bundle-Version: 3.6.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse.org
+Export-Package: org.eclipse.jdt.core,
+ org.eclipse.jdt.core.compiler,
+ org.eclipse.jdt.internal.antadapter;x-internal:=true,
+ org.eclipse.jdt.internal.compiler;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.apt.dispatch;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.apt.model;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.apt.util;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.ast;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.batch;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.classfmt;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.codegen;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.env;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.flow;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.impl;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.lookup;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.parser;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.parser.diagnose;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.problem;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.util;x-internal:=true,
+ org.eclipse.jdt.internal.compiler.tool;x-internal:=true
diff --git a/org.eclipse.jdt.core/scripts/build.xml b/org.eclipse.jdt.core/scripts/build.xml
new file mode 100644
index 0000000..d2cbfc1
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/build.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir=".">
+
+	<property name="output" value="bin" />
+	<property name="jar_file" value="ecj.jar" />
+
+	<target name="build">
+		<delete file="${basedir}/${jar_file}" failonerror="no" />
+		<delete dir="${output}" failonerror="no" />
+		<mkdir dir="${output}" />
+
+		<javac srcdir="${basedir}" destdir="${output}"
+				debuglevel="lines,source"
+				source="1.3"
+				target="1.2"
+			excludes="org/eclipse/jdt/internal/compiler/tool/*,**/apt/**">
+			<compilerarg line="-Xlint:none"/>
+		</javac>
+
+		<javac destdir="${output}"
+				debuglevel="lines,source"
+				source="1.6"
+				target="1.6"
+				includes="org/eclipse/jdt/internal/compiler/tool/*">
+			<src path="${basedir}"/>
+			<include name="org/eclipse/jdt/internal/compiler/tool/*"/>
+			<include name="**/apt/**"/>
+			<compilerarg line="-Xlint:none"/>
+		</javac>
+
+		<zip destfile="${basedir}/${jar_file}">
+			<fileset dir="${output}" />
+			<fileset dir="${basedir}">
+				<include name="about.html"/>
+				<include name="**/*.rsc" />
+				<include name="META-INF/**"/>
+				<include name="**/*.properties"/>
+				<exclude name="META-INF/eclipse.inf"/>
+			</fileset>
+		</zip>
+		<delete dir="${output}" />
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/build_ecj.xml b/org.eclipse.jdt.core/scripts/build_ecj.xml
new file mode 100644
index 0000000..66c7030
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/build_ecj.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir=".">
+
+	<property name="version" value="3.1.0" />
+	<property name="gcc-path" value="C:/java_tools/thisiscool-gcc/gcc-4.0" />
+	<property name="binaryname" value="ejavac${version}" />
+	<property name="dest" value="c:/temp/bingcj" />
+	<property name="extract_folder" value="${dest}/src/" />
+	<property name="work" value="${dest}/tmp/" />
+	<property name="source" value="C:/eclipse/I1111/eclipse/plugins/org.eclipse.jdt.source_3.1.0/src/org.eclipse.jdt.core_3.1.0/jdtcoresrc.zip" />
+	<property name="binaries" value="C:/eclipse/I1111/eclipse/plugins/org.eclipse.jdt.core_3.1.0/jdtcore.jar" />
+	<property name="gcj_script_name" value="export-executable.xml" />
+
+	<target name="build">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no" />
+		<mkdir dir="${dest}" />
+
+		<unzip overwrite="yes" dest="${work}" src="${source}">
+			<patternset>
+				<include name="**/compiler/**" />
+				<exclude name="**/compiler/**/*.html" />
+				<exclude name="**/IScanner.java" />
+				<exclude name="**/ITerminalSymbols.java" />
+				<exclude name="**/DocumentElementParser.java" />
+				<exclude name="**/IDocumentElementRequestor.java" />
+				<exclude name="**/ISourceElementRequestor.java" />
+				<exclude name="**/SourceElementParser.java" />
+				<exclude name="**/SourceElementRequestorAdapter.java" />
+				<exclude name="**/SourceConstructorDeclaration.java" />
+				<exclude name="**/SourceFieldDeclaration.java" />
+				<exclude name="**/SourceMethodDeclaration.java" />
+				<exclude name="**/SourceTypeConverter.java" />
+			</patternset>
+		</unzip>
+
+		<unzip overwrite="yes" dest="${work}" src="${binaries}">
+			<patternset>
+				<include name="**/compiler/**/*.properties" />
+				<include name="**/*.rsc" />
+				<exclude name="**/*.class" />
+				<exclude name="**/*.mf" />
+			</patternset>
+		</unzip>
+
+		<!-- echo message="generate build script" />
+		<java classname="GenerateBuildScript">
+			<sysproperty key="user.dir" value="${basedir}/scripts"/>
+			<arg value="${gcj_script_name}"/>
+			<arg value="${basedir}/${work}"/>
+			<classpath>
+				<pathelement path="${basedir}/scripts"/>
+			</classpath>
+		</java>
+		
+		<echo message="run the new build script" />
+		<ant antfile="${basedir}/scripts/export-executable.xml"/>
+		<delete file="${basedir}/scripts/export-executable.xml"/ -->
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/export-batch-jdtcom.xml b/org.eclipse.jdt.core/scripts/export-batch-jdtcom.xml
new file mode 100644
index 0000000..85b24bf
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-batch-jdtcom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- build script to create a batch compiler from org.eclipse.jdt.core -->
+<project name="Eclipse Batch Compiler" default="export" basedir="..">
+	<target name="init">
+		<tstamp/>
+		<property name="destdir" value="../../batchcompiler-export" />
+		<property name="dest"  value="${destdir}" />
+	</target>
+
+	<target name="export" depends="init">
+
+		<echo message="TARGET: ${destdir}" />
+		<mkdir dir="${destdir}" />
+		<delete dir="${dest}" />
+		<mkdir dir="${dest}" />
+
+		<echo message="UPDATE jdtcom.jar" />
+		<zip zipfile="${dest}/jdtcom.jar">
+			<fileset dir=".">
+			  <include name="META-INF/**" />
+	        </fileset>
+	        <fileset dir="bin" includes="org/eclipse/jdt/internal/compiler/**,org/eclipse/jdt/core/compiler/**">
+	        	<exclude name="org/eclipse/jdt/core/compiler/CompilationParticipant*.class"/>
+	        	<exclude name="org/eclipse/jdt/core/compiler/BuildContext.class"/>
+	        	<exclude name="org/eclipse/jdt/core/compiler/IScanner.class"/>
+	        	<exclude name="org/eclipse/jdt/core/compiler/ITerminalSymbols*.class"/>
+	        	<exclude name="org/eclipse/jdt/core/compiler/ReconcileContext*.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/DocumentElementParser*.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/IDocumentElementRequestor.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/ISourceElementRequestor.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/SourceElementParser*.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/SourceElementRequestorAdapter*.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/SourceJavadocParser*.class"/>
+	        	<exclude name="org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter*.class"/>
+        	</fileset>
+		</zip>
+		<echo message="UPDATE jdtcomsrc.zip" />
+		<zip zipfile="${dest}/jdtcomsrc.zip">
+		    <zipfileset dir="batch" />
+		    <zipfileset dir="compiler" />
+  		</zip>		
+	
+	</target>
+</project>
diff --git a/org.eclipse.jdt.core/scripts/export-ecj.xml b/org.eclipse.jdt.core/scripts/export-ecj.xml
new file mode 100644
index 0000000..64947b8
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ecj.xml
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ 	    Technical University Berlin - extended API and implementation
+ -->
+
+<!-- build script to create a batch compiler from org.eclipse.jdt.core -->
+<project name="Eclipse Batch Compiler" default="export-all" basedir="..">
+	<target name="init">
+		<tstamp/>
+		<property name="ecj-temp-folder" value="${basedir}/ecj-temp-folder" />
+		<property name="ecj-temp-src-folder" value="${basedir}/ecj-temp-src-folder" />
+		<mkdir dir="${ecj-temp-src-folder}" />
+		<mkdir dir="${ecj-temp-folder}"/>
+	</target>
+	
+	<target name="extract-batch-compiler" depends="init">
+		<property name="target.folder" value="${basedir}/bin"/>
+		<echo message="Extract .class file and properties for the batch compiler" />
+		<copy todir="${ecj-temp-folder}">
+			<fileset dir="${target.folder}">
+				<include name="org/eclipse/jdt/internal/compiler/**"/>
+				<include name="org/eclipse/jdt/core/compiler/**"/>
+<!--{ObjectTeams:-->
+				<include name="org/objectteams/otdt/core/compiler/**"/>
+				<include name="org/objectteams/otdt/core/internal/compiler/**"/>
+				<include name="org/objectteams/otdt/core/exceptions/**"/>
+	        	<include name="org/eclipse/jdt/internal/codeassist/select/SelectionNodeFound.class"/>
+<!-- SH} -->
+				<exclude name="**/package.htm*"/>
+				<exclude name="org/eclipse/jdt/core/compiler/CompilationParticipant*.class"/>
+				<exclude name="org/eclipse/jdt/core/compiler/BuildContext.class"/>
+				<exclude name="org/eclipse/jdt/core/compiler/IScanner.class"/>
+				<exclude name="org/eclipse/jdt/core/compiler/ITerminalSymbols*.class"/>
+				<exclude name="org/eclipse/jdt/core/compiler/ReconcileContext*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/DocumentElementParser*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/IDocumentElementRequestor.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/ISourceElementRequestor*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/SourceElementParser*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/SourceElementRequestorAdapter*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/SourceJavadocParser*.class"/>
+				<exclude name="org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter*.class"/>
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="extract-_jsr199" depends="init">
+		<property name="target.folder" value="${basedir}/../org.eclipse.jdt.compiler.tool/bin"/>
+		<echo message="Extract .class file and properties for the jsr199" />
+		<copy todir="${ecj-temp-folder}" failonerror="false">
+			<fileset dir="${target.folder}"/>
+		</copy>
+	</target>
+	
+	<target name="extract-_jsr269" depends="init">
+		<property name="jsr_project" value="org.eclipse.jdt.compiler.apt"/>
+		<property name="target.folder" value="${basedir}/../org.eclipse.jdt.compiler.apt/bin"/>
+		<echo message="Extract .class file and properties for the jsr269" />
+		<copy todir="${ecj-temp-folder}" failonerror="false">
+			<fileset dir="${target.folder}"/>
+		</copy>
+	</target>
+
+	<target name="extract-ant-adapter-compiler" depends="init">
+		<property name="target.folder" value="${basedir}/antbin"/>
+		<echo message="Extract .class file and properties for the ant adapter" />
+		<mkdir dir="${ecj-temp-folder}"/>
+		<copy todir="${ecj-temp-folder}">
+			<fileset dir="${target.folder}">
+				<exclude name="org/eclipse/jdt/core/CheckDebugAttributes*.*"/>
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="export" depends="init">
+		<property name="buildLabel" value="head" />
+		<property name="dest" value="../../ecj-export" />
+		<mkdir dir="${dest}" />
+<!-- {ObjectTeams: changed name from ecj to ecotj. SH} -->
+		<echo message="UPDATE ecotj-${buildLabel}.jar" />
+		<delete file="${dest}/ecotj-${buildLabel}.jar" failonerror="false"/>
+		<copy todir="${ecj-temp-folder}">
+			<fileset dir="scripts/binary" />
+		</copy>
+		<replace file="${ecj-temp-folder}/META-INF/MANIFEST.MF" token="qualifier" value="${buildLabel}"/>
+		<zip zipfile="${dest}/ecotj-${buildLabel}.jar">
+			<fileset dir="${ecj-temp-folder}">
+				<include name="**/*"/>
+			</fileset>
+			<fileset dir="scripts">
+				<include name="about.html" />
+			</fileset>
+		</zip>
+
+
+		<echo message="UPDATE ecotjsrc-${buildLabel}.zip" />
+		<delete file="${dest}/ecotjsrc-${buildLabel}.zip" failonerror="false"/>
+		<copy todir="${ecj-temp-src-folder}">
+			<fileset dir="scripts/source" />
+		</copy>
+		<replace file="${ecj-temp-src-folder}/META-INF/MANIFEST.MF" token="qualifier" value="${buildLabel}"/>
+		<zip zipfile="${dest}/ecotjsrc-${buildLabel}.zip">
+			<zipfileset dir="ecj-temp-src-folder" />
+			<zipfileset dir="batch" />
+			<zipfileset dir="compiler" />
+<!-- {ObjectTeams: -->		    
+		    <zipfileset dir="util">
+		    	<exclude name="org/objectteams/otdt/core/util/**"/>
+		    </zipfileset>
+<!-- SH} -->		    
+			<zipfileset dir="antadapter">
+				<exclude name="org/eclipse/jdt/core/CheckDebugAttributes.java"/>
+			</zipfileset>
+			<zipfileset dir="scripts">
+				<include name="about.html" />
+				<include name="build.xml" />
+			</zipfileset>
+		</zip>
+		<antcall target="cleanup"/>
+	</target>
+
+	<target name="export_src_bin">
+		<property name="buildLabel" value="head" />
+		<property name="dest" value="../../ecj-export" />
+		<mkdir dir="${dest}" />
+		<echo message="UPDATE ecj_all.jar" />
+		<delete file="${dest}/ecj_all.jar" failonerror="false"/>
+		<mkdir dir="${ecj-temp-src-folder}/src" />
+		<copy todir="${ecj-temp-folder}">
+			<fileset dir="scripts/binary" />
+		</copy>
+		<replace file="${ecj-temp-folder}/META-INF/MANIFEST.MF" token="qualifier" value="${buildLabel}"/>
+
+		<copy todir="${ecj-temp-src-folder}/src">
+			<fileset dir="batch" />
+			<fileset dir="compiler" />
+			<fileset dir="antadapter">
+				<exclude name="org/eclipse/jdt/core/CheckDebugAttributes.java"/>
+			</fileset>
+		</copy>
+
+		<zip zipfile="${dest}/ecj_all.jar">
+			<fileset dir="${ecj-temp-folder}">
+				<include name="**/*"/>
+				<include name="about.html"/>
+			</fileset>
+			<fileset dir="${ecj-temp-src-folder}">
+				<exclude name="META-INF/**"/>
+			</fileset>
+			<fileset dir="scripts">
+				<include name="about.html" />
+			</fileset>
+		</zip>
+
+		<delete dir="${ecj-temp-src-folder}" failonerror="false"/>
+	</target>
+
+	<target name="cleanup">
+		<delete dir="${ecj-temp-folder}" failonerror="false"/>
+		<delete dir="${ecj-temp-src-folder}" failonerror="false"/>
+	</target>
+
+	<target name="export-all" depends="init">
+		<antcall target="extract-batch-compiler"/>
+		<antcall target="extract-ant-adapter-compiler"/>
+		<antcall target="extract-_jsr199"/>
+		<antcall target="extract-_jsr269"/>
+		<antcall target="export_src_bin"/>
+		<antcall target="export"/>
+		<antcall target="cleanup"/>
+	</target>
+</project>
diff --git a/org.eclipse.jdt.core/scripts/export-ejavac.xml b/org.eclipse.jdt.core/scripts/export-ejavac.xml
new file mode 100644
index 0000000..8c7d2ac
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir="..">
+
+	<property name="version" value="32M4SM" />
+	<property name="gcc-path" value="/oliviert/gcj4.0.3/xgcc" />
+	<property name="binaryname" value="ejavac${version}.exe" />
+	<property name="dest" value="../../bingcj" />
+	<property name="work" value="${dest}/tmp/" />
+	<property name="source" value="/oliviert/workspaces/head/org.eclipse.jdt.core" />
+	<property name="gcj_script_name" value="export-executable.xml"/>
+
+    <target name="build">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no"/>
+		<mkdir dir="${dest}" />
+	
+		<copy todir="${work}">
+		    <fileset dir="${source}/batch/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${work}">
+		    <fileset dir="${source}/compiler/" excludes='**/*.html' />
+		</copy>
+	
+		<echo message="generate build script" />
+		<java classname="GenerateBuildScript">
+			<arg value="${basedir}/scripts/${gcj_script_name}"/>
+			<arg value="${basedir}/${work}"/>
+			<arg value="i686-pc-mingw32-gcj"/>
+			<arg value="${basedir}/${work}"/>
+			<arg value="source"/>			
+			<classpath>
+				<pathelement path="${basedir}/scripts"/>
+			</classpath>
+		</java>
+		
+		<echo message="run the new build script" />
+		<ant antfile="${basedir}/scripts/export-executable.xml"/>
+		<delete file="${basedir}/scripts/export-executable.xml"/>
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/export-ejavac2.xml b/org.eclipse.jdt.core/scripts/export-ejavac2.xml
new file mode 100644
index 0000000..a5fe20e
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac2.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir="..">
+
+	<property name="version" value="32M4" />
+	<property name="gcc-path" value="/oliviert/gcj4.0.3/xgcc" />
+	<property name="binaryname" value="ejc${version}.exe" />
+	<property name="dest" value="../../bingcj" />
+	<property name="work" value="${dest}/tmp/" />
+	<property name="bin" value="${dest}/bin/" />
+	<property name="source" value="/oliviert/workspaces/head/org.eclipse.jdt.core" />
+	<property name="gcj_script_name" value="export-executable.xml"/>
+
+    <target name="build">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no"/>
+		<mkdir dir="${dest}" />
+		<delete dir="${bin}" failonerror="no"/>
+		<mkdir dir="${bin}" />
+	
+		<copy todir="${work}">
+		    <fileset dir="${source}/batch/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${work}">
+		    <fileset dir="${source}/compiler/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/batch/" includes='**/*.properties' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/compiler/" includes='**/*.properties' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/compiler/" includes='**/*.rsc' />
+		</copy>
+   
+		<javac srcdir="${work}"
+			destdir="${bin}"
+			nowarn="on"
+			deprecation="off"
+			source="1.3"
+			debug="on"
+			verbose="off"
+			target="1.2">
+		    <compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" line="-1.4 -inlineJSR"/>
+		</javac>
+	
+		<echo message="generate build script" />
+		<java classname="GenerateBuildScript">
+			<arg value="${basedir}/scripts/${gcj_script_name}"/>
+			<arg value="${basedir}/${bin}"/>
+			<arg value="i686-pc-mingw32-gcj"/>
+			<arg value="${basedir}/${bin}"/>
+			<arg value="bin"/>
+			<classpath>
+				<pathelement path="${basedir}/scripts"/>
+			</classpath>
+		</java>
+		
+		<echo message="run the new build script" />
+		<ant antfile="${basedir}/scripts/export-executable.xml"/>
+		<delete file="${basedir}/scripts/export-executable.xml"/>
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/export-ejavac2_linux.xml b/org.eclipse.jdt.core/scripts/export-ejavac2_linux.xml
new file mode 100644
index 0000000..6d38b19
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac2_linux.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir="..">
+
+	<property name="version" value="32M4" />
+	<property name="gcc-path" value="/oliviert/gcj4.1_linux/gcc" />
+	<property name="binaryname" value="ejc${version}" />
+	<property name="dest" value="../../bingcj" />
+	<property name="work" value="${dest}/tmp/" />
+	<property name="bin" value="${dest}/bin/" />
+	<property name="source" value="/oliviert/workspaces/head/org.eclipse.jdt.core" />
+	<property name="gcj_script_name" value="export-executable.xml"/>
+
+    <target name="build">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no"/>
+		<mkdir dir="${dest}" />
+		<delete dir="${bin}" failonerror="no"/>
+		<mkdir dir="${bin}" />
+	
+		<copy todir="${work}">
+		    <fileset dir="${source}/batch/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${work}">
+		    <fileset dir="${source}/compiler/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/batch/" includes='**/*.properties' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/compiler/" includes='**/*.properties' />
+		</copy>
+		<copy todir="${bin}">
+		    <fileset dir="${source}/compiler/" includes='**/*.rsc' />
+		</copy>
+   
+		<javac srcdir="${work}"
+			destdir="${bin}"
+			nowarn="on"
+			deprecation="off"
+			source="1.3"
+			debug="on"
+			verbose="off"
+			target="1.2">
+		    <compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" line="-1.4 -inlineJSR"/>
+		</javac>
+	
+		<echo message="generate build script" />
+		<java classname="GenerateBuildScript">
+			<arg value="${basedir}/scripts/${gcj_script_name}"/>
+			<arg value="${basedir}/${bin}"/>
+			<arg value="i686-pc-linux-gnu-gcj"/>
+			<arg value="${basedir}/${bin}"/>
+			<arg value="bin"/>
+			<classpath>
+				<pathelement path="${basedir}/scripts"/>
+			</classpath>
+		</java>
+		
+		<echo message="run the new build script" />
+		<ant antfile="${basedir}/scripts/export-executable.xml"/>
+		<delete file="${basedir}/scripts/export-executable.xml"/>
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/export-ejavac_linux.xml b/org.eclipse.jdt.core/scripts/export-ejavac_linux.xml
new file mode 100644
index 0000000..7a0cae9
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac_linux.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="export-executable" default="build" basedir="..">
+
+	<property name="version" value="v632linux" />
+	<property name="gcc-path" value="/oliviert/gcj4.1_linux/gcc" />
+	<property name="binaryname" value="ejc${version}" />
+	<property name="dest" value="../../bingcj" />
+	<property name="work" value="${dest}/tmp/" />
+	<property name="source" value="/oliviert/workspaces/head/org.eclipse.jdt.core" />
+	<property name="gcj_script_name" value="export-executable.xml"/>
+
+    <target name="build">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no"/>
+		<mkdir dir="${dest}" />
+	
+		<copy todir="${work}">
+		    <fileset dir="${source}/batch/" excludes='**/*.html' />
+		</copy>
+		<copy todir="${work}">
+		    <fileset dir="${source}/compiler/" excludes='**/*.html' />
+		</copy>
+	
+		<echo message="generate build script" />
+		<java classname="GenerateBuildScript">
+			<arg value="${basedir}/scripts/${gcj_script_name}"/>
+			<arg value="${basedir}/${work}"/>
+			<arg value="i686-pc-linux-gnu-gcj"/>
+			<arg value="${basedir}/${work}"/>
+			<arg value="source"/>			
+			<classpath>
+				<pathelement path="${basedir}/scripts"/>
+			</classpath>
+		</java>
+		
+		<echo message="run the new build script" />
+		<ant antfile="${basedir}/scripts/export-executable.xml"/>
+		<delete file="${basedir}/scripts/export-executable.xml"/>
+	</target>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/scripts/exportplugin.xml b/org.eclipse.jdt.core/scripts/exportplugin.xml
new file mode 100644
index 0000000..1223454
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/exportplugin.xml
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<!-- build script to create a plugin from ${plugin} -->
+<project name="${plugin}" default="export plug-in [_3.6.0]" basedir="..">
+<target name="export plug-in [_3.6.0]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.6.0"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.6.0.qualifier] (binary only)">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export_binary_only">
+		<param name="jdt_core_version" value="3.6.0.${qualifier}"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.6.0.qualifier] (with sources)">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.6.0.${qualifier}"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.5.0]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.5.0"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.5.0.qualifier] (binary only)">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export_binary_only">
+		<param name="jdt_core_version" value="3.5.0.${qualifier}"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.5.0.qualifier] (with sources)">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.5.0.${qualifier}"/>
+	</antcall>
+</target>
+	<target name="export plug-in [_3.4.0]">
+	    <tstamp/>
+		<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+		<antcall target="zz_internal_export">
+			<param name="jdt_core_version" value="3.4.0"/>
+		</antcall>
+	</target>
+<target name="export plug-in [_3.3.0]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.3.0"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.2.1]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.2.1"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_3.2.0]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.2.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_3.1.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.1.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_3.0.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.0.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.1.1]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.1.1"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.1.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.1.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.0.1]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.0.1"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.0.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.0.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_1.9.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="1.9.0"/>
+	</antcall>
+</target>
+
+<target name="zz_internal_export">
+
+	<tstamp/>
+	<property name="export-dir" value="../../plugin-export" />
+	<property name="plugin" value="org.eclipse.jdt.core" />
+	<property name="plugin-dir" value="${export-dir}/${plugin}_${jdt_core_version}"/>
+
+	<echo message="TARGET: ${export-dir}" />
+	<mkdir dir="${export-dir}" />
+	<delete dir="${plugin-dir}" />
+	<mkdir dir="${plugin-dir}" />
+
+	<echo message="UPDATE jdtCompilerAdapter.jar" />
+  	<jar 
+		jarfile="${plugin-dir}/jdtCompilerAdapter.jar"
+		basedir="antbin"/>
+
+	<echo message="UPDATE ${plugin}_${jdt_core_version}.jar" />
+	<copy todir="${plugin-dir}/META-INF">
+		<fileset dir="META-INF" />
+	</copy>  
+	<replaceregexp file="${plugin-dir}/META-INF/MANIFEST.MF" match="Bundle-Version: ((\d)+\.(\d)+\.(\d)+\.)qualifier" replace="Bundle-Version: \1${qualifier}" byline="true" />
+	<zip zipfile="${plugin-dir}/${plugin}_${jdt_core_version}.jar">
+		<fileset dir=".">
+		  <include name="plugin.xml" />
+		  <include name="plugin.properties" />
+	      <include name=".options"/>
+          <include name="about.html"/>
+        </fileset>
+		<fileset dir="${plugin-dir}">
+			<include name="META-INF/**" />
+		</fileset>
+        <fileset dir="bin" />
+        <fileset file="${plugin-dir}/jdtCompilerAdapter.jar"/>
+        <zipfileset dir="batch" prefix="src"/>
+	    <zipfileset dir="codeassist" prefix="src"/>
+	    <zipfileset dir="compiler" prefix="src"/>
+	    <zipfileset dir="dom" prefix="src"/>
+	    <zipfileset dir="eval" prefix="src"/>
+	    <zipfileset dir="formatter" prefix="src"/>
+	    <zipfileset dir="model" prefix="src"/>
+	    <zipfileset dir="search" prefix="src"/>
+	</zip>
+	<delete dir="${plugin-dir}/META-INF" />
+
+	<delete file="${plugin-dir}/jdtCompilerAdapter.jar"/>
+
+	<echo message="UPDATE ${export-dir}/../${plugin}_${jdt_core_version}.zip" />
+	<zip zipfile="${export-dir}/../${plugin}_${jdt_core_version}.zip"
+	    basedir="${export-dir}" 
+	    includes="${plugin}_${jdt_core_version}/**"	/>		
+	<!--
+		<delete dir="${plugin-dir}" />
+	-->
+</target>
+
+<target name="zz_internal_export_binary_only">
+
+	<tstamp/>
+	<property name="export-dir" value="../../plugin-export" />
+	<property name="plugin" value="org.eclipse.jdt.core" />
+	<property name="plugin-dir" value="${export-dir}/${plugin}_${jdt_core_version}"/>
+
+	<echo message="TARGET: ${export-dir}" />
+	<mkdir dir="${export-dir}" />
+	<delete dir="${plugin-dir}" />
+	<mkdir dir="${plugin-dir}" />
+
+	<echo message="UPDATE jdtCompilerAdapter.jar" />
+  	<jar 
+		jarfile="${plugin-dir}/jdtCompilerAdapter.jar"
+		basedir="antbin"/>
+
+	<echo message="UPDATE ${plugin}_${jdt_core_version}.jar" />
+	<copy todir="${plugin-dir}/META-INF">
+		<fileset dir="META-INF" />
+	</copy>  
+	<replaceregexp file="${plugin-dir}/META-INF/MANIFEST.MF" match="Bundle-Version: ((\d)+\.(\d)+\.(\d)+\.)qualifier" replace="Bundle-Version: \1${qualifier}" byline="true" />
+	<zip zipfile="${plugin-dir}/${plugin}_${jdt_core_version}.jar">
+		<fileset dir=".">
+		  <include name="plugin.xml" />
+		  <include name="plugin.properties" />
+	      <include name=".options"/>
+          <include name="about.html"/>
+        </fileset>
+		<fileset dir="${plugin-dir}">
+			<include name="META-INF/**" />
+		</fileset>
+        <fileset dir="bin" />
+        <fileset file="${plugin-dir}/jdtCompilerAdapter.jar"/>
+	</zip>
+	<delete dir="${plugin-dir}/META-INF" />
+
+	<delete file="${plugin-dir}/jdtCompilerAdapter.jar"/>
+
+	<echo message="UPDATE ${export-dir}/../${plugin}_${jdt_core_version}.zip" />
+	<zip zipfile="${export-dir}/../${plugin}_${jdt_core_version}.zip"
+	    basedir="${export-dir}" 
+	    includes="${plugin}_${jdt_core_version}/**"	/>
+	<!--
+		<delete dir="${plugin-dir}" />
+	-->
+</target>
+
+</project>
diff --git a/org.eclipse.jdt.core/scripts/generateOTParser.sh b/org.eclipse.jdt.core/scripts/generateOTParser.sh
new file mode 100644
index 0000000..cb2f947
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/generateOTParser.sh
@@ -0,0 +1,330 @@
+#!/bin/bash
+############################################################################################################################################################
+# This file is part of "Object Teams Development Tooling"-Software
+#
+# Copyright 2003, 2006 Fraunhofer Gesellschaft, Munich, Germany,
+# for its Fraunhofer Institute and Computer Architecture and Software
+# Technology (FIRST), Berlin, Germany and Technical University Berlin,
+# Germany.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+#
+# Contributors:
+# Fraunhofer FIRST - Initial API and implementation
+# Technical University Berlin - Initial API and implementation
+#
+# Dieses Script erzeugt aus der java.g Datei alle automatisch generierbaren Dateien
+# und kopiert diese an die richtigen Stellen innerhalb der aktuellen Sourcen
+# Das Script benötigt den Ordner "OTDTCore"
+# Das Script benötigt die Datei "objectteams.g" welche aus dem Eclipse Quellcode extrahiert werden kann.
+# Zu Beginn des Vorganges wird eine Kopie aller Dateien die in den Sourcen verändert werden erstellt
+
+############################################################################################################################################################
+
+JIKESPG_HOME=${JIKESPG_HOME:-/usr/bin}
+export JIKESPG_HOME
+
+# please adjust:
+JDTCORE_JAR=/home/local/eclipse-3.5/plugins/org.eclipse.jdt.core_3.5.0.v_963.jar
+
+
+
+if test $# -ne 2
+then
+	echo "Achtung: JIKESPG_HOME muss KORREKT gesetzt sein!"
+	echo "Aufruf: generateOTParser.sh <grammatik> <eclipse-projekt-OTDTCore-verzeichnis>"
+	echo "Bsp: generateOTParser.sh objectteams.g OTDTCore"
+	echo "(im Verzeichnis des Skripts aufzurufen)."
+	exit
+fi
+
+GRAMMAR=`readlink -f "$1"`
+SOURCE=`readlink -f "$2"`
+
+if test -f $JIKESPG_HOME/jikespg
+then
+	echo "jikespg wurde gefunden"
+else
+	echo "JIKESPG_HOME/jikespg konnte nicht gefunden werden"
+	exit
+fi
+
+if test -f $GRAMMAR
+then
+	echo "Verwende Grammatik:" $GRAMMAR
+else
+	echo "Fehler: Grammatik" $GRAMMAR "konnte nicht gefunden werden!"
+	echo "Aufruf: generateOTParser.sh <grammatik> <eclipse-projekt-OTDTCore-verzeichnis>"
+	exit
+fi
+
+if test -d $SOURCE
+then
+	echo "Verwende Eclipse-Sourcen:" $SOURCE
+else
+	echo "Fehler: Eclipse-Sourcen" $SOURCE "konnten nicht gefunden werden!"
+	echo "Aufruf: generateOTParser.sh <grammatik> <eclipse-projekt-OTDTCore-verzeichnis>"
+	exit
+fi
+
+echo "Initiales Aufräumen"
+if test -d output
+then
+	rm -r output
+fi
+
+if test -d backup
+then
+	rm -r backup
+fi
+
+echo "Leere Verzeichnisse erzeugen"
+mkdir output
+mkdir backup
+
+echo "Original Dateien vor der Anpassung aus Sourcen holen"
+
+if test -f $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+then
+	cp  $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java                  output
+else
+	exit
+fi
+
+if test -f $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java
+then
+	cp  $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java          output
+else
+	exit
+fi
+
+if test -f $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java
+then
+	cp  $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java  output
+else
+	exit
+fi
+
+echo "Eine Kopie der Originaldateien die verändert werden im Ordner backup erzeugen"
+cp $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java                   backup
+cp $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.java           backup
+cp $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.java   backup
+cp $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/parser?.rsc                   backup
+cp $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser/readableNames.properties      backup
+
+cp $GRAMMAR output
+
+############################################################################################################################################################
+cd output
+echo "Parsergenerator starten"
+islalr=`$JIKESPG_HOME/jikespg $GRAMMAR | tee /tmp/jikes.log | grep grammar`
+
+if [ "$islalr" = "This grammar is LALR(1)." ]
+then
+	echo "Grammatik ist LALR(1)."
+else
+	echo "Grammatik ist nicht korrekt!"
+	exit
+fi
+
+chmod 644 *
+
+#echo "Konstanten von javasym.java umbenennen"
+cat javasym.java | sed -e s/TokenName\$eof/TokenNameEOF/g -e s/TokenName\$error/TokenNameERROR/g > javasym_tmp.java
+rm javasym.java
+mv javasym_tmp.java javasym.java
+cd ..
+############################################################################################################################################################
+cd output
+echo "Alles unnötige wegschneiden: javadef.java"
+cat javadef.java  | awk '{
+	if($0 ~ /^[ \t]*{[ \t]*$/ ){
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*}.*$/){
+			print nextline ;
+		}
+		print "}" ;
+	}
+}
+' > javadef_tmp.java
+
+echo "Alles unnötige wegschneiden: ParserBasicInformation.java"
+cat ParserBasicInformation.java  | awk '{
+	if($0 ~ /^.*{[ \t]*$/ ){
+		print $0;
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*}[ \t]*$/){
+			nextline="" ;
+		}
+		while((getline nextline) == 1 ){
+			print nextline ;
+		}
+	} else {
+		print $0
+	}
+}
+' > ParserBasicInformation_tmp.java
+
+echo "Kopiere den Inhalt von javadef.java nach ParserBasicInformation.java"
+cat ParserBasicInformation_tmp.java javadef_tmp.java > ParserBasicInformation.java
+cd ..
+############################################################################################################################################################
+cd output
+echo "Alles unnötige wegschneiden: JavaAction.java"
+cat JavaAction.java | awk '{\
+	if($0 !~ /^[ \t]*\/\/ This method is part of an automatic generation : do NOT edit-modify[ \t]*$/ ){\
+		print $0\
+	}\
+}\
+' > JavaAction_tmp.java
+
+echo "Ersetze die Methode consumeRule gegen das Token TMP_CUT_OUT"
+cat Parser.java  | awk '{
+	if($0 ~ /^[ \t]*protected void consumeRule\(int act\) \{[ \t]*$/ ){
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*}[ \t]*$/){
+			nextline="" ;
+		}
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*}[ \t]*$/){
+			nextline="" ;
+		}
+		print "TMP_CUT_OUT";
+		while((getline nextline) == 1 ){
+			print nextline ;
+		}
+	} else {
+		print $0
+	}
+}
+' > Parser_tmp.java
+
+cat Parser_tmp.java  | awk '{
+	if($0 ~ /^TMP_CUT_OUT$/ ){
+		while((getline nextline) == 1){
+			nextline="" ;
+		}
+	} else {
+		print $0
+	}
+}
+' > Parser_1_tmp.java
+
+cat Parser_tmp.java  | awk '{
+	if($0 ~ /^TMP_CUT_OUT$/ ){
+		while((getline nextline) == 1){
+			print nextline;
+		}
+	}
+}
+' > Parser_2_tmp.java
+
+echo "Kopiere den Inhalt von JavaAction.java nach Parser.java"
+cat Parser_1_tmp.java JavaAction_tmp.java Parser_2_tmp.java > Parser.java
+cd ..
+############################################################################################################################################################
+cd output
+echo "Alles unnötige wegschneiden: TerminalTokens.java"
+cat TerminalTokens.java  | awk '{
+	if($0 ~ /^[ \t]*public interface TerminalTokens \{[ \t]*$/ ){
+		print $0
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*int[ \t]*$/){
+			print nextline ;
+		}
+		print nextline ;
+		while((getline nextline) == 1 && nextline !~ /^[ \t]*int[ \t]*$/){
+			print nextline ;
+		}
+		print nextline ;
+
+		while((getline nextline) == 1 ){
+			nextline ="";
+		}
+
+	} else {
+		print $0
+	}
+}
+' > TerminalTokens_tmp.java
+
+echo "Alles unnötige wegschneiden: javasym.java"
+cat javasym.java  | awk '{
+	if($0 ~ /^[ \t]*public final static int[ \t]*$/ ){
+		while((getline nextline) == 1 ){
+			print nextline ;
+		}
+	}
+}
+' > javasym_tmp.java
+
+
+echo "Kopiere den Inhalt von javasym.java nach TerminalTokens.java"
+cat TerminalTokens_tmp.java javasym_tmp.java > TerminalTokens.java
+cd ..
+############################################################################################################################################################
+cd output
+
+cp  ../UpdateParserFiles.java .
+if [ -z ${JDTCORE_JAR} ]
+then
+  if test -f ${ECLIPSE_HOME}/plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar
+  then
+	JDTCORE_JAR=${ECLIPSE_HOME}/plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar
+  else
+    	echo "FEHLER: jdtcore.jar nicht gefunden!"
+	echo "Bitte Umgebungsvariable ECLIPSE_HOME setzen."
+    	exit
+  fi
+fi
+echo "Verwende jdtcore.jar aus ${JDTCORE_JAR}"
+#cp ${JDTCORE_JAR} .
+echo "UpdateParserFiles kompilieren"
+javac -classpath ${JDTCORE_JAR} UpdateParserFiles.java
+echo "Ressourcendateien erzeugen (*.rsc)"
+java -classpath .:${JDTCORE_JAR} UpdateParserFiles javadcl.java javahdr.java
+
+cd ..
+
+############################################################################################################################################################
+echo "Alle zu aktualisierenden Classfiles entfernen (Parser/TerminalTokens/ParserBasicInformation)"
+if test -f $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/Parser.class
+then
+	rm $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/Parser.class
+fi
+
+if test -f $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.class
+then
+	rm $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/TerminalTokens.class
+fi
+
+if test -f $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.class
+then
+	rm $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser/ParserBasicInformation.class
+fi
+
+#################################################################################################################
+echo "Die originalen Dateien werden in den Sourcen durch die neu generierten ersetzt"
+cp output/Parser.java                 $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser
+cp output/TerminalTokens.java         $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser
+cp output/ParserBasicInformation.java $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser
+cp output/parser*.rsc                 $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser
+cp output/parser*.rsc                 $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser
+cp output/readableNames.properties    $SOURCE/compiler/org/eclipse/jdt/internal/compiler/parser
+cp output/readableNames.properties    $SOURCE/bin/org/eclipse/jdt/internal/compiler/parser
+############################################################################################################################################################
+#echo "Eclipse Build ausfhren mit Optionen build -os linux -ws motif"
+#cd $SOURCE
+#build -os linux -ws motif
+#cd ..
+############################################################################################################################################################
+#echo "Alle nicht mehr benötigten bzw temporären Dateien entfernen"
+#rm -rf output
+############################################################################################################################################################
+#echo "Eclipse starten"
+#cd $SOURCE
+#eclipse
+############################################################################################################################################################
+echo "Fertig"
+echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+echo "Bitte fhren sie ein 'Refresh' im Eclipse Package Explorer aus"
+echo "Da Eclipse die Abhängigkeiten zu den geänderten Interfaces sonst nicht aktualisiert"
diff --git a/org.eclipse.jdt.core/scripts/ikvm_script.xml b/org.eclipse.jdt.core/scripts/ikvm_script.xml
new file mode 100644
index 0000000..ff090db
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/ikvm_script.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<project name="ecj" default="all" basedir="..">
+	<!-- target name="checkout">
+     <exec program="cvs" commandline="-z3 -d:pserver:anonymous@dev.eclipse.org:/home/eclipse co org.eclipse.jdt.core" />
+   </target>
+   <target name="allsources">
+     <exec program="cmd" commandline="/c dir /s/b org.eclipse.jdt.core\batch\*.java > allsources.lst" />
+     <exec program="cmd" commandline="/c dir /s/b org.eclipse.jdt.core\compiler\*.java >> allsources.lst" />
+   </target>
+   <target name="classes">
+     <exec program="../bin/ikvmstub.exe" commandline="IKVM.GNU.Classpath" useruntimeengine="true" />
+     <exec program="jikes" commandline="-nowarn -classpath IKVM.GNU.Classpath.jar;org.eclipse.jdt.core/compiler;org.eclipse.jdt.core/batch @allsources.lst" />
+     <delete file="IKVM.GNU.Classpath.jar" />
+   </target -->
+	<property name="ikvm_home" value="D:\java_tools\ikvm" />
+	<property name="dest" value="../../bingcj" />
+	<property name="work" value="${dest}/tmp" />
+	<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	<property name="source" value="D:/eclipse/workspaces/head/org.eclipse.jdt.core" />
+
+    <target name="clean">
+		<echo message="target: ${dest}" />
+		<delete dir="${dest}" failonerror="no"/>
+		<mkdir dir="${dest}" />
+	</target>	
+
+	<target name="retrieve_class_files">
+		<copy todir="${work}">
+		    <fileset dir="${source}/batch/" includes='**/*.java' />
+		</copy>
+		<copy todir="${work}">
+		    <fileset dir="${source}/compiler/" includes='**/*.java' />
+		</copy>
+
+		<echo message="copy resource files"/>
+		<copy todir="${dest}">
+		    <fileset dir="${source}/compiler/" includes='**/*.rsc' />
+		</copy>
+
+		<echo message="copy properties files from compiler"/>
+		<copy todir="${dest}">
+		    <fileset dir="${source}/compiler/" includes='**/*.properties' />
+		    <fileset dir="${source}/batch/" includes='**/*.properties' />
+		</copy>
+
+		<javac srcdir="${work}" destdir="${dest}" nowarn="off" deprecation="off" source="1.4" debug="off" verbose="on">
+			<classpath>
+				<path location="${work}"/>
+			</classpath>
+		</javac>
+
+		<delete dir="${work}" failonerror="no"/>
+	</target>
+
+	<target name="ecj">
+		<exec dir="${dest}" executable="${ikvm_home}/bin/ikvmc.exe" output="${dest}/log.txt">
+			<arg line="-out:ecj.exe -main:org.eclipse.jdt.internal.compiler.batch.Main -recurse:./*.class -recurse:./*.properties -recurse:./*.rsc"/>
+		</exec>
+		<copy file="${ikvm_home}/bin/IKVM.Runtime.dll" todir="${dest}" />
+		<copy file="${ikvm_home}/bin/IKVM.GNU.Classpath.dll" todir="${dest}" />
+	</target>
+
+	<target name="all" depends="clean, retrieve_class_files, ecj">
+	</target>
+</project>
diff --git a/org.eclipse.jdt.core/scripts/oldexportplugin.xml b/org.eclipse.jdt.core/scripts/oldexportplugin.xml
new file mode 100644
index 0000000..4b76405
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/oldexportplugin.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2007, 2009 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License v1.0
+    which accompanies this distribution, and is available at
+    http://www.eclipse.org/legal/epl-v10.html
+    
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+
+<!-- build script to create a plugin from ${plugin} -->
+<project name="${plugin}" default="export plug-in [_3.1.0]" basedir="..">
+
+<target name="export plug-in [_3.1.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.1.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_3.0.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.0.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.1.1]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.1.1"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.1.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.1.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.1.0] (directory structure)">
+	<antcall target="zz_internal_export_structure">
+		<param name="jdt_core_version" value="2.1.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.0.1]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.0.1"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_2.0.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="2.0.0"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_1.9.0]">
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="1.9.0"/>
+	</antcall>
+</target>
+
+<target name="zz_internal_export">
+
+	<tstamp/>
+	<property name="export-dir" value="../../plugin-export" />
+	<property name="plugin" value="org.eclipse.jdt.core" />
+	<property name="plugin-dir" value="${export-dir}/${plugin}_${jdt_core_version}"/>
+
+	<echo message="TARGET: ${export-dir}" />
+	<mkdir dir="${export-dir}" />
+	<delete dir="${plugin-dir}" />
+	<mkdir dir="${plugin-dir}" />
+
+	<echo message="UPDATE jdtcore.jar" />
+	<jar 
+		jarfile="${plugin-dir}/jdtcore.jar"
+		basedir="bin"
+		manifest="META-INF/MANIFEST.MF"/>
+		
+	<echo message="UPDATE jdtCompilerAdapter.jar" />
+	<jar 
+		jarfile="${plugin-dir}/jdtCompilerAdapter.jar"
+		basedir="antbin"/>
+
+	<echo message="UPDATE plugin.xml" />
+	<copy file="plugin.xml" todir="${plugin-dir}" />
+	<echo message="UPDATE plugin.properties" />
+	<copy file="plugin.properties" todir="${plugin-dir}" />
+
+	<echo message="UPDATE .options" />
+	<copy file=".options" todir="${plugin-dir}" />
+
+	<echo message="UPDATE about.html" />
+	<copy file="about.html" todir="${plugin-dir}" />
+
+	<echo message="UPDATE jdtcoresrc.zip" />
+	<zip zipfile="${plugin-dir}/jdtcoresrc.zip">
+	    <fileset dir="batch" />
+	    <fileset dir="codeassist" />
+	    <fileset dir="compiler" />
+	    <fileset dir="dom" />
+	    <fileset dir="eval" />
+	    <fileset dir="formatter" />
+	    <fileset dir="model" />
+	    <fileset dir="search" />
+	</zip>		
+
+	<echo message="UPDATE jdtCompilerAdaptersrc.zip" />
+	<zip zipfile="${plugin-dir}/jdtCompilerAdaptersrc.zip">
+		<fileset dir="antadapter" />
+	</zip>	    
+
+	<echo message="UPDATE ${export-dir}/../${plugin}_${jdt_core_version}.zip" />
+	<zip zipfile="${export-dir}/../${plugin}_${jdt_core_version}.zip"
+	    basedir="${export-dir}" 
+	    includes="${plugin}_${jdt_core_version}/**"	/>		
+</target>
+
+<target name="zz_internal_export_structure">
+
+	<tstamp/>
+	<property name="export-dir" value="../../plugin-export" />
+	<property name="plugin" value="org.eclipse.jdt.core" />
+	<property name="bin_dest" value="${export-dir}/eclipse/plugins/${plugin}_${jdt_core_version}"/>
+	<property name="src_dest" value="${export-dir}/eclipse/plugins/org.eclipse.jdt.source_${jdt_core_version}/src/${plugin}_${jdt_core_version}"/>
+
+	<echo message="TARGET: ${export-dir}" />
+	<mkdir dir="${export-dir}" />
+	<delete dir="${bin_dest}" />
+	<delete dir="${src_dest}" />
+	<mkdir dir="${bin_dest}" />
+	<mkdir dir="${src_dest}" />
+
+	<echo message="UPDATE jdtcore.jar" />
+	<jar 
+		jarfile="${bin_dest}/jdtcore.jar"
+		basedir="bin" 
+		excludes="**/JDTCompilerAdapter.class,**/antadapter/*"/>
+		
+	<echo message="UPDATE jdtCompilerAdapter.jar" />
+	<jar 
+		jarfile="${bin_dest}/jdtCompilerAdapter.jar"
+		basedir="bin" 
+		includes="**/JDTCompilerAdapter.class,**/antadapter/*"/>
+
+	<echo message="UPDATE plugin.xml" />
+	<copy file="plugin.xml" todir="${bin_dest}" />
+	<echo message="UPDATE plugin.properties" />
+	<copy file="plugin.properties" todir="${bin_dest}" />
+
+	<echo message="UPDATE .options" />
+	<copy file=".options" todir="${bin_dest}" />
+
+	<echo message="UPDATE about.html" />
+	<copy file="about.html" todir="${bin_dest}" />
+
+	<echo message="UPDATE jdtcoresrc.zip" />
+	<zip zipfile="${src_dest}/jdtcoresrc.zip">
+	    <fileset dir="batch" />
+	    <fileset dir="codeassist" />
+	    <fileset dir="compiler" />
+	    <fileset dir="dom" />
+	    <fileset dir="eval" />
+	    <fileset dir="formatter" />
+	    <fileset dir="model" />
+	    <fileset dir="search" />
+	</zip>		
+</target>
+
+</project>
diff --git a/org.eclipse.jdt.core/scripts/source/META-INF/MANIFEST.MF b/org.eclipse.jdt.core/scripts/source/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1966ba5
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/source/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Source of Eclipse Compiler for Java(TM)
+Bundle-SymbolicName: org.eclipse.jdt.core.compiler.batch.source
+Bundle-Version: 3.6.0.qualifier
+Bundle-Vendor: Eclipse.org
+Eclipse-SourceBundle: org.eclipse.jdt.core.compiler.batch;version="3.6.0.qualifier";roots:="."
