New compiler level v_785_R33x
diff --git a/org.eclipse.jdt.core/plugin.jars b/org.eclipse.jdt.core/plugin.jars
index 5ecd897..b47c1c8 100644
--- a/org.eclipse.jdt.core/plugin.jars
+++ b/org.eclipse.jdt.core/plugin.jars
@@ -1,9 +1,9 @@
-jdtcore.jar=\

-	batch,\

-	codeassist,\

-	compiler,\

-	eval,\

-	formatter,\

-	dom,\

-	model, \

-	search

+jdtcore.jar=\
+	batch,\
+	codeassist,\
+	compiler,\
+	eval,\
+	formatter,\
+	dom,\
+	model, \
+	search
diff --git a/org.eclipse.jdt.core/plugin.properties b/org.eclipse.jdt.core/plugin.properties
index c165a9d..8bb193c 100644
--- a/org.eclipse.jdt.core/plugin.properties
+++ b/org.eclipse.jdt.core/plugin.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000, 2004 IBM Corporation and others.
+# Copyright (c) 2000, 2007 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
@@ -18,9 +18,11 @@
 classpathVariableInitializersName=Classpath Variable Initializers
 classpathContainerInitializersName=Classpath Container Initializers
 codeFormattersName=Source Code Formatters
+compilationParticipantsName=Compilation Participants
+annotationProcessorManagerName=Java 6 Annotation Processor Manager
 javaTaskName=Java Task
 javaPropertiesName=Java Properties File
 javaSourceName=Java Source File
 javaClassName=Java Class File
 jarManifestName=JAR Manifest File
-extraJavaLikeFileExtensions=Extra Java-like File Extensions
\ No newline at end of file
+
diff --git a/org.eclipse.jdt.core/plugin.xml b/org.eclipse.jdt.core/plugin.xml
index 346f9ec..ddc50f8 100644
--- a/org.eclipse.jdt.core/plugin.xml
+++ b/org.eclipse.jdt.core/plugin.xml
@@ -40,6 +40,22 @@
 	schema="schema/codeFormatter.exsd"/>
 
 <!-- =================================================================================== -->
+<!-- Extension Point: Compilation Participant                                            -->
+<!-- =================================================================================== -->
+
+<extension-point name="%compilationParticipantsName" 
+	id="compilationParticipant"
+	schema="schema/compilationParticipant.exsd"/>
+
+<!-- =================================================================================== -->
+<!-- Extension Point: Java 6 Annotation Processor Manager                                -->
+<!-- =================================================================================== -->
+
+<extension-point name="%annotationProcessorManagerName" 
+	id="annotationProcessorManager"
+	schema="schema/annotationProcessorManager.exsd"/>
+
+<!-- =================================================================================== -->
 <!-- Extension: Java Nature                                                              -->
 <!-- =================================================================================== -->
 
@@ -78,6 +94,7 @@
 	<attribute name="id"/>
 	<attribute name="flags"/>
 	<attribute name="arguments"/>
+	<attribute name="categoryId"/>
 </extension>   
 
 <!-- =================================================================================== -->
@@ -155,7 +172,18 @@
 	<fileTypes extension="jardesc" type="text"/>
 	<fileTypes extension="zip" type="binary"/>
 </extension>
-      
+
+<!-- =================================================================================== -->
+<!-- Extension: Java Code Formatter                                                      -->
+<!-- =================================================================================== -->
+<extension
+      id="JavaCodeFormatter"
+      point="org.eclipse.core.runtime.applications">
+      	<application>
+      		<run class="org.eclipse.jdt.core.formatter.CodeFormatterApplication" />
+		</application>
+</extension>
+
 <!-- =================================================================================== -->
 <!-- Extension: Java Content Types                                                       -->
 <!-- =================================================================================== -->
diff --git a/org.eclipse.jdt.core/scripts/GenerateBuildScript$1.class b/org.eclipse.jdt.core/scripts/GenerateBuildScript$1.class
new file mode 100755
index 0000000..2104d6d
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/GenerateBuildScript$1.class
Binary files differ
diff --git a/org.eclipse.jdt.core/scripts/GenerateBuildScript$2.class b/org.eclipse.jdt.core/scripts/GenerateBuildScript$2.class
new file mode 100755
index 0000000..e52da5e
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/GenerateBuildScript$2.class
Binary files differ
diff --git a/org.eclipse.jdt.core/scripts/GenerateBuildScript.class b/org.eclipse.jdt.core/scripts/GenerateBuildScript.class
index 61cd251..d355baf 100644
--- a/org.eclipse.jdt.core/scripts/GenerateBuildScript.class
+++ b/org.eclipse.jdt.core/scripts/GenerateBuildScript.class
Binary files differ
diff --git a/org.eclipse.jdt.core/scripts/GenerateBuildScript.java b/org.eclipse.jdt.core/scripts/GenerateBuildScript.java
index ea42020..d0bb011 100644
--- a/org.eclipse.jdt.core/scripts/GenerateBuildScript.java
+++ b/org.eclipse.jdt.core/scripts/GenerateBuildScript.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
@@ -10,55 +10,57 @@
  *******************************************************************************/
 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");
+	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 +
-		"<project name=\"export-executable\" default=\"build_executable\">" +LINE_SEPARATOR +
-		"    <target name=\"build_executable\">" + LINE_SEPARATOR +
-		"        <echo message=\"compiling resources   -> .o\"/>" + LINE_SEPARATOR;
-		
-	private static final String FOOTER =
-		"	    <echo message=\"compiling sources      -> .o\"/>" + LINE_SEPARATOR +
-		"        <apply failonerror=\"true\" executable=\"${gcc-path}/bin/gcj.exe\" dest=\"${work}\" parallel=\"false\">" + LINE_SEPARATOR +
-		"  			 <arg value=\"--verbose\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"--classpath=${work}\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-O2\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-c\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-fassume-compiled\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-march=pentium4\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-mfpmath=sse\"/>" + LINE_SEPARATOR +
-		"            <srcfile/>" + LINE_SEPARATOR +
-		"            <arg value=\"-o\"/>" + LINE_SEPARATOR +
-		"            <targetfile/>" + LINE_SEPARATOR +
-		"            <fileset dir=\"${work}\" includes=\"**/*.java\"/>" + LINE_SEPARATOR +
-		"            <mapper type=\"glob\" from=\"*.java\" to=\"*.o\"/>" + LINE_SEPARATOR +
-		"        </apply>" + LINE_SEPARATOR + LINE_SEPARATOR +
-		"        <echo message=\"linking .o -> ${binaryname}\"/>" + LINE_SEPARATOR +
-		"        <apply failonerror=\"true\" executable=\"${gcc-path}/bin/gcj.exe\" parallel=\"true\">" + LINE_SEPARATOR +
-		"        	<arg value=\"--verbose\"/>" + LINE_SEPARATOR +
-		"            <arg line =\"-o ${dest}${binaryname}.exe\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-fassume-compiled\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-march=pentium4\"/>" + LINE_SEPARATOR +
-		"            <arg value=\"-mfpmath=sse\"/>" + LINE_SEPARATOR +
-		"            <arg line=\"--main=org.eclipse.jdt.internal.compiler.batch.Main\"/>" + LINE_SEPARATOR +
-		"            <fileset dir=\"${work}\" includes=\"**/*.o\"/>" + LINE_SEPARATOR +
-		"       </apply>" + LINE_SEPARATOR +
-		"    </target>" + LINE_SEPARATOR +
-		"</project>" + LINE_SEPARATOR;
+		"<?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 void collectAllPropertiesFiles(File root, ArrayList collector) {
-		File[] files = root.listFiles();
+	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()) {
-				collectAllPropertiesFiles(files[i], collector);
-			} else if (files[i].getName().endsWith(".rsc") || files[i].getName().endsWith(".properties")) { //$NON-NLS-1$
+				collectAllFiles(files[i], collector, fileFilter);
+			} else {
 				String newElement = files[i].getAbsolutePath();
 				newElement = newElement.replace('\\', '/');
 				collector.add(newElement);
@@ -66,23 +68,49 @@
 		}
 	}
 
-	private static void dumpAllProperties(Writer writer, File sourceDir, ArrayList collector) throws IOException {
+	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("  		<exec dir=\"${work}\" executable=\"${gcc-path}/bin/gcj.exe\">" + LINE_SEPARATOR);
-			writer.write("  		  <arg line=\"--resource ");
-			writer.write(fileName + " " + fileName + " -c -o " + getObjectName(fileName) + "\"/>" + LINE_SEPARATOR);
-			writer.write("  		</exec>" + LINE_SEPARATOR);
+			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";
+		return fileName.substring(0, fileName.lastIndexOf('.')) + ".o"; //$NON-NLS-1$
 	}
 			
 	public static void main(String[] args) {
-		if (args.length != 2) {
+		if (args.length != 5) {
+			System.out.println("Usage: script_name directory gcj_exe_name dest_dir source/bin"); //$NON-NLS-1$
 			return;
 		}
 		try {
@@ -91,10 +119,27 @@
 			File sourceDir = new File(args[1]);
 			if (sourceDir.exists()) { 
 				ArrayList collector = new ArrayList();
-				collectAllPropertiesFiles(sourceDir, collector);
-				dumpAllProperties(writer, sourceDir, collector);
+				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(FOOTER);
+			writer.write(MessageFormat.format(FOOTER, new Object[] {args[2], args[3]}));
 			writer.flush();
 			writer.close();
 		} catch (IOException e) {
diff --git a/org.eclipse.jdt.core/scripts/META-INF/MANIFEST.MF b/org.eclipse.jdt.core/scripts/META-INF/MANIFEST.MF
new file mode 100755
index 0000000..0c54849
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Main-Class: org.eclipse.jdt.internal.compiler.batch.Main
+Bundle-ManifestVersion: 2
+Bundle-Name: Eclipse Compiler for Java
+Bundle-SymbolicName: org.eclipse.jdt.core.compiler.batch
+Bundle-Version: 3.3.0
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse.org
+Bundle-Localization: plugin
+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.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
diff --git a/org.eclipse.jdt.core/scripts/about.html b/org.eclipse.jdt.core/scripts/about.html
new file mode 100755
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/build.xml b/org.eclipse.jdt.core/scripts/build.xml
index cd38f4e..2f0f9b5 100644
--- a/org.eclipse.jdt.core/scripts/build.xml
+++ b/org.eclipse.jdt.core/scripts/build.xml
@@ -1,60 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <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" />
+	<property name="output" value="bin" />
+	<property name="jar_file" value="ecj.jar" />
 
 	<target name="build">
-		<echo message="target: ${dest}" />
-		<delete dir="${dest}" failonerror="no" />
-		<mkdir dir="${dest}" />
+		<delete file="${basedir}/${jar_file}" failonerror="no" />
+		<delete dir="${output}" failonerror="no" />
+		<mkdir dir="${output}" />
 
-		<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>
+		<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>
 
-		<unzip overwrite="yes" dest="${work}" src="${binaries}">
-			<patternset>
-				<include name="**/compiler/**/*.properties" />
-				<include name="**/*.rsc" />
-				<exclude name="**/*.class" />
-				<exclude name="**/*.mf" />
-			</patternset>
-		</unzip>
+		<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>
 
-		<!-- 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"/ -->
+		<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/buildExtraJars.xml b/org.eclipse.jdt.core/scripts/buildExtraJars.xml
deleted file mode 100644
index 363b77b..0000000
--- a/org.eclipse.jdt.core/scripts/buildExtraJars.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.core.resources" default="main" basedir="..">
-
-	<property name="bootclasspath" value=""/>
-
-	<target name="main">
-		<available file="${basedir}/jdtCompilerAdapter.jar" property="do.not.rebuild"/>
-		<antcall target="build"/>
-	</target>
-
-	<target name="build" unless="do.not.rebuild">
-		<antcall target="clean"/>
-		<antcall target="jdtCompilerAdapter.jar"/>
-		<antcall target="refresh"/>
-	</target>
-
-	<target name="init" depends="properties">
-		<property name="plugin" value="org.eclipse.jdt.core"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-		<property name="build.result.folder" value="${basedir}"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-	</target>
-
-	<target name="jdtCompilerAdapter.jar" depends="init">
-		<property name="destdir" value="${temp.folder}/jdtCompilerAdapter.jar.bin"/>
-		<delete dir="${temp.folder}/jdtCompilerAdapter.jar.bin"/>
-		<mkdir dir="${temp.folder}/jdtCompilerAdapter.jar.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/jdtCompilerAdapter.jar.bin" failonerror="false" target="1.1" source="1.3" verbose="false" debug="on" includeAntRuntime="no" bootclasspath="${bootclasspath}" classpath="../org.eclipse.core.runtime/bin;../org.eclipse.core.runtime/runtime.jar;../org.eclipse.core.resources/bin;../org.eclipse.core.resources/resources.jar;../org.apache.ant/ant.jar;../org.eclipse.jdt.core/bin;../org.eclipse.jdt.core/jdtcore.jar;">
-			<src path="antadapter/"/>
-		</javac>
-		<!-- copy necessary resources activate when we 
-		<copy todir="${temp.folder}/jdtCompilerAdapter.jar.bin">
-			<fileset dir="antadapter/" excludes="**/*.java"/>
-		</copy> -->
-		<jar jarfile="${build.result.folder}/jdtCompilerAdapter.jar" basedir="${temp.folder}/jdtCompilerAdapter.jar.bin"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init">
-		<delete file="${build.result.folder}/jdtCompilerAdapter.jar"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running">
-		<eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
-	</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 100755
index 0000000..cd38f4e
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/build_ecj.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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
deleted file mode 100644
index 19ad32d..0000000
--- a/org.eclipse.jdt.core/scripts/export-batch-jdtcom.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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/**"/>
-		</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 100755
index 0000000..31351e9
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ecj.xml
@@ -0,0 +1,136 @@
+<?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-all" basedir="..">
+	<target name="init">
+		<tstamp/>
+		<property name="dest" value="../../ecj-export" />
+		<property name="ecj-temp-folder" value="${basedir}/ecj-temp-folder" />
+		<property name="ecj-temp-src-folder" value="${basedir}/ecj-temp-src-folder" />
+		<mkdir dir="${dest}" />
+		<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/**"/>
+				<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="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">
+		<echo message="UPDATE ecj.jar" />
+		<delete file="${dest}/ecj.jar" failonerror="false"/>
+		<zip zipfile="${dest}/ecj.jar">
+			<fileset dir="${ecj-temp-folder}">
+				<include name="**/*"/>
+			</fileset>
+			<fileset dir="scripts">
+				<include name="META-INF/**" />
+				<include name="about.html" />
+			</fileset>
+		</zip>
+		<echo message="UPDATE ecjsrc.zip" />
+		<delete file="${dest}/ecjsrc.zip" failonerror="false"/>
+		<zip zipfile="${dest}/ecjsrc.zip">
+			<zipfileset dir="batch" />
+			<zipfileset dir="compiler" />
+			<zipfileset dir="antadapter">
+				<exclude name="org/eclipse/jdt/core/CheckDebugAttributes.java"/>
+			</zipfileset>
+			<zipfileset dir="scripts">
+				<include name="about.html" />
+				<include name="META-INF/**" />
+				<include name="build.xml" />
+			</zipfileset>
+		</zip>
+	</target>
+	
+	<target name="export_src_bin">
+		<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-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}"/>
+			<fileset dir="scripts">
+				<include name="META-INF/**" />
+				<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"/>
+	</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"/>
+		<antcall target="export_src_bin"/>
+		<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
index 09ef024..04c3190 100644
--- a/org.eclipse.jdt.core/scripts/export-ejavac.xml
+++ b/org.eclipse.jdt.core/scripts/export-ejavac.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project name="export-executable" default="build" basedir="..">
 
-	<property name="version" value="310" />
-	<property name="gcc-path" value="D:\java_tools\thisiscool-gcc\gcc-4.0.old" />
-	<property name="binaryname" value="ejavac${version}" />
-	<property name="dest" value="../../bingcj/" />
-	<property name="work" value="${dest}tmp/" />
-	<property name="source" value="D:/eclipse/workspaces/head/org.eclipse.jdt.core" />
+	<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">
@@ -23,9 +23,11 @@
 	
 		<echo message="generate build script" />
 		<java classname="GenerateBuildScript">
-			<sysproperty key="user.dir" value="${basedir}/scripts"/>
-			<arg value="${gcj_script_name}"/>
+			<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>
diff --git a/org.eclipse.jdt.core/scripts/export-ejavac2.xml b/org.eclipse.jdt.core/scripts/export-ejavac2.xml
new file mode 100755
index 0000000..942c677
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac2.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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 100755
index 0000000..ed442dc
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac2_linux.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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 100755
index 0000000..bbb1a89
--- /dev/null
+++ b/org.eclipse.jdt.core/scripts/export-ejavac_linux.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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
index 41ec08a..d0afada 100644
--- a/org.eclipse.jdt.core/scripts/exportplugin.xml
+++ b/org.eclipse.jdt.core/scripts/exportplugin.xml
@@ -1,11 +1,60 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <!-- build script to create a plugin from ${plugin} -->
-<project name="${plugin}" default="export plug-in [_3.1.1]" basedir="..">
+<project name="${plugin}" default="export plug-in [_3.3.2]" basedir="..">
 
-<target name="export plug-in [_3.1.1]">
+<target name="export plug-in [_3.3.2]">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
 	<antcall target="zz_internal_export">
-		<param name="jdt_core_version" value="3.1.1"/>
+		<param name="jdt_core_version" value="3.3.2"/>
+	</antcall>
+</target>
+
+<target name="export plug-in [_3.3.2.qualifier] (with sources)">
+    <tstamp/>
+	<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+	<antcall target="zz_internal_export">
+		<param name="jdt_core_version" value="3.3.2.${qualifier}"/>
+	</antcall>
+</target>
+<target name="export plug-in [_3.3.2.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.3.2.${qualifier}"/>
+	</antcall>
+</target>
+
+	<target name="export plug-in [_3.3.1]">
+	    <tstamp/>
+		<property name="qualifier" value="z${DSTAMP}-${TSTAMP}" />
+		<antcall target="zz_internal_export">
+			<param name="jdt_core_version" value="3.3.1"/>
+		</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>
 
@@ -33,12 +82,6 @@
 	</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"/>
@@ -75,36 +118,35 @@
 		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="META-INF/**" />
 	      <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 src.zip" />
-	<zip zipfile="${plugin-dir}/src.zip">
-        <fileset file="component.xml"/>	
-	    <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}" 
@@ -114,55 +156,52 @@
 	-->
 </target>
 
-<target name="zz_internal_export_structure">
+<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="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}"/>
+	<property name="plugin-dir" value="${export-dir}/${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}" />
+	<delete dir="${plugin-dir}" />
+	<mkdir dir="${plugin-dir}" />
 
-	<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/*"/>
+  	<jar 
+		jarfile="${plugin-dir}/jdtCompilerAdapter.jar"
+		basedir="antbin"/>
 
-	<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 ${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" />
 
-	<echo message="UPDATE .options" />
-	<copy file=".options" todir="${bin_dest}" />
+	<delete file="${plugin-dir}/jdtCompilerAdapter.jar"/>
 
-	<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>		
+	<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/ikvm_script.xml b/org.eclipse.jdt.core/scripts/ikvm_script.xml
index 7324c60..b60594a 100644
--- a/org.eclipse.jdt.core/scripts/ikvm_script.xml
+++ b/org.eclipse.jdt.core/scripts/ikvm_script.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <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" />