Updating GWT to use Eclipse JDT 3.3.1 rather than 3.1.1.

Issue: 563
Suggested by: eclipseguru
Patch by: spoon, me
Review by: me


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1810 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/build.xml b/dev/core/build.xml
index f150fa3..ae6e997 100755
--- a/dev/core/build.xml
+++ b/dev/core/build.xml
@@ -25,7 +25,7 @@
 		<gwt.jar destfile="${alldeps.jar}">
 			<zipfileset src="${gwt.tools.lib}/apache/tapestry-util-text-4.0.2.jar" />
 			<zipfileset src="${gwt.tools.lib}/apache/ant-1.6.5.jar" />
-			<zipfileset src="${gwt.tools.lib}/eclipse/jdt-3.1.1.jar" />
+			<zipfileset src="${gwt.tools.lib}/eclipse/jdt-3.3.1.jar" />
 			<zipfileset src="${gwt.tools.lib}/tomcat/ant-launcher-1.6.5.jar" />
 			<zipfileset src="${gwt.tools.lib}/tomcat/catalina-1.0.jar" />
 			<zipfileset src="${gwt.tools.lib}/tomcat/catalina-optional-1.0.jar" />
@@ -132,7 +132,7 @@
 			</classpath>
 		</taskdef>
 	
-		<echo message="Writing test results to @{test.reports} for @{test.cases}" />
+		<echo message="Writing test results to @{junit.out}/reports for @{test.cases}" />
 		<mkdir dir="${junit.out}/reports" />
 	
 		<echo message="${javac.out} ${javac.junit.out}" />
diff --git a/dev/core/src/com/google/gwt/dev/jdt/FindDeferredBindingSitesVisitor.java b/dev/core/src/com/google/gwt/dev/jdt/FindDeferredBindingSitesVisitor.java
index e13b083..5c1fe57 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/FindDeferredBindingSitesVisitor.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/FindDeferredBindingSitesVisitor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -25,8 +25,8 @@
 import org.eclipse.jdt.internal.compiler.lookup.BlockScope;
 import org.eclipse.jdt.internal.compiler.lookup.Scope;
 import org.eclipse.jdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.jdt.internal.compiler.problem.ProblemHandler;
 import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities;
+import org.eclipse.jdt.internal.compiler.util.Util;
 
 import java.util.Map;
 
@@ -61,11 +61,14 @@
     MessageSend messageSend = site.messageSend;
     Scope scope = site.scope;
     CompilationResult compResult = scope.compilationUnitScope().referenceContext().compilationResult();
-    int startLine = ProblemHandler.searchLineNumber(
-        compResult.lineSeparatorPositions, messageSend.sourceStart());
+    int[] lineEnds = compResult.getLineSeparatorPositions();
+    int startLine = Util.getLineNumber(messageSend.sourceStart(), lineEnds, 0,
+        lineEnds.length - 1);
+    int startColumn = Util.searchColumnNumber(lineEnds, startLine,
+        messageSend.sourceStart());
     DefaultProblem problem = new DefaultProblem(compResult.fileName, message,
-        IProblem.Unclassified, null, ProblemSeverities.Error,
-        messageSend.sourceStart, messageSend.sourceEnd, startLine);
+        IProblem.ExternalProblemNotFixable, null, ProblemSeverities.Error,
+        messageSend.sourceStart, messageSend.sourceEnd, startLine, startColumn);
     compResult.record(problem, scope.referenceContext());
   }
 
@@ -97,7 +100,7 @@
     }
 
     DeferredBindingSite site = new DeferredBindingSite(messageSend, scope);
-    
+
     Expression[] args = messageSend.arguments;
     if (args.length != 1) {
       reportRebindProblem(site, "GWT.create() should take exactly one argument");
@@ -106,7 +109,8 @@
 
     Expression arg = args[0];
     if (!(arg instanceof ClassLiteralAccess)) {
-      reportRebindProblem(site, "Only class literals may be used as arguments to GWT.create()");
+      reportRebindProblem(site,
+          "Only class literals may be used as arguments to GWT.create()");
       return;
     }
 
diff --git a/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java b/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
index 2c7f5ec..d5b1234 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
@@ -72,7 +72,6 @@
 import org.eclipse.jdt.internal.compiler.ast.TypeReference;
 import org.eclipse.jdt.internal.compiler.ast.Wildcard;
 import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
-import org.eclipse.jdt.internal.compiler.env.IGenericType;
 import org.eclipse.jdt.internal.compiler.impl.Constant;
 import org.eclipse.jdt.internal.compiler.lookup.ArrayBinding;
 import org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding;
@@ -293,7 +292,7 @@
   }
 
   private static boolean isAnnotation(TypeDeclaration typeDecl) {
-    if (typeDecl.kind() == IGenericType.ANNOTATION_TYPE_DECL) {
+    if (TypeDeclaration.kind(typeDecl.modifiers) == TypeDeclaration.ANNOTATION_TYPE_DECL) {
       return true;
     } else {
       return false;
@@ -964,7 +963,7 @@
   }
 
   private boolean isInterface(TypeDeclaration typeDecl) {
-    if (typeDecl.kind() == IGenericType.INTERFACE_DECL) {
+    if (TypeDeclaration.kind(typeDecl.modifiers) == TypeDeclaration.INTERFACE_DECL) {
       return true;
     } else {
       return false;
@@ -1492,7 +1491,7 @@
        * NOTE: In the case where a generic type has a nested, non-static,
        * non-generic type. The type for the binding will not be a generic type.
        */
-      JType resolveType = resolveType(logger, ptBinding.type);
+      JType resolveType = resolveType(logger, ptBinding.genericType());
       if (resolveType == null) {
         failed = true;
       }
diff --git a/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java b/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
index 8eb65b8..c3403a2 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/WebModeCompilerFrontEnd.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -143,7 +143,7 @@
           }
           // Look for a noArg ctor.
           MethodBinding noArgCtor = type.getExactMethod("<init>".toCharArray(),
-              TypeBinding.NoParameters, cud.scope);
+              TypeBinding.NO_PARAMETERS, cud.scope);
 
           if (noArgCtor == null) {
             FindDeferredBindingSitesVisitor.reportRebindProblem(site,
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java b/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
index 5b4a526..f6b8906 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/BuildTypeMap.java
@@ -60,7 +60,6 @@
 import org.eclipse.jdt.internal.compiler.ast.MethodDeclaration;
 import org.eclipse.jdt.internal.compiler.ast.Statement;
 import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
-import org.eclipse.jdt.internal.compiler.env.IGenericType;
 import org.eclipse.jdt.internal.compiler.lookup.BlockScope;
 import org.eclipse.jdt.internal.compiler.lookup.ClassScope;
 import org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope;
@@ -75,7 +74,7 @@
 import org.eclipse.jdt.internal.compiler.lookup.SyntheticArgumentBinding;
 import org.eclipse.jdt.internal.compiler.lookup.SyntheticMethodBinding;
 import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
-import org.eclipse.jdt.internal.compiler.problem.ProblemHandler;
+import org.eclipse.jdt.internal.compiler.util.Util;
 
 import java.io.IOException;
 import java.io.StringReader;
@@ -117,8 +116,8 @@
       CompilationResult compResult = methodDecl.compilationResult;
       int[] indexes = compResult.lineSeparatorPositions;
       String fileName = String.valueOf(compResult.fileName);
-      int startLine = ProblemHandler.searchLineNumber(indexes,
-          methodDecl.sourceStart);
+      int startLine = Util.getLineNumber(methodDecl.sourceStart, indexes, 0,
+          indexes.length - 1);
       return new SourceInfo(methodDecl.sourceStart, methodDecl.bodyEnd,
           startLine, fileName);
     }
@@ -476,8 +475,8 @@
     }
 
     private SourceInfo makeSourceInfo(Statement stmt) {
-      int startLine = ProblemHandler.searchLineNumber(
-          currentSeparatorPositions, stmt.sourceStart);
+      int startLine = Util.getLineNumber(stmt.sourceStart,
+          currentSeparatorPositions, 0, currentSeparatorPositions.length - 1);
       return new SourceInfo(stmt.sourceStart, stmt.sourceEnd, startLine,
           currentFileName);
     }
@@ -592,7 +591,7 @@
 
     private void processEnumType(SourceTypeBinding binding, JEnumType type) {
       // Visit the synthetic values() and valueOf() methods.
-      for (MethodBinding methodBinding : binding.methods) {
+      for (MethodBinding methodBinding : binding.methods()) {
         if (methodBinding instanceof SyntheticMethodBinding) {
           JMethod newMethod = processMethodBinding(methodBinding, type, null);
           TypeBinding[] parameters = methodBinding.parameters;
@@ -751,8 +750,8 @@
       CompilationResult compResult = typeDecl.compilationResult;
       int[] indexes = compResult.lineSeparatorPositions;
       String fileName = String.valueOf(compResult.fileName);
-      int startLine = ProblemHandler.searchLineNumber(indexes,
-          typeDecl.sourceStart);
+      int startLine = Util.getLineNumber(typeDecl.sourceStart, indexes, 0,
+          indexes.length - 1);
       return new SourceInfo(typeDecl.sourceStart, typeDecl.bodyEnd, startLine,
           fileName);
     }
@@ -780,7 +779,7 @@
 
     @Override
     public boolean visit(TypeDeclaration localTypeDeclaration, BlockScope scope) {
-      assert (localTypeDeclaration.kind() != IGenericType.INTERFACE_DECL);
+      assert (TypeDeclaration.kind(localTypeDeclaration.modifiers) != TypeDeclaration.INTERFACE_DECL);
       return process(localTypeDeclaration);
     }
 
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
index a11bcc5..0d63889 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
@@ -108,6 +108,7 @@
 import org.eclipse.jdt.internal.compiler.ast.CaseStatement;
 import org.eclipse.jdt.internal.compiler.ast.CastExpression;
 import org.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess;
+import org.eclipse.jdt.internal.compiler.ast.CombinedBinaryExpression;
 import org.eclipse.jdt.internal.compiler.ast.CompoundAssignment;
 import org.eclipse.jdt.internal.compiler.ast.ConditionalExpression;
 import org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration;
@@ -172,8 +173,8 @@
 import org.eclipse.jdt.internal.compiler.lookup.TypeIds;
 import org.eclipse.jdt.internal.compiler.lookup.VariableBinding;
 import org.eclipse.jdt.internal.compiler.problem.DefaultProblem;
-import org.eclipse.jdt.internal.compiler.problem.ProblemHandler;
 import org.eclipse.jdt.internal.compiler.problem.ProblemSeverities;
+import org.eclipse.jdt.internal.compiler.util.Util;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -404,7 +405,7 @@
     private MethodScope currentMethodScope;
 
     private int[] currentSeparatorPositions;
-    
+
     private boolean enableAsserts;
 
     private final JsProgram jsProgram;
@@ -539,13 +540,12 @@
 
         // Implement Class.desiredAssertionStatus
         if (currentClass == program.getTypeJavaLangClass()) {
-          JMethod method =
-              program.getIndexedMethod("Class.desiredAssertionStatus");
+          JMethod method = program.getIndexedMethod("Class.desiredAssertionStatus");
           assert method != null;
           JMethodBody body = (JMethodBody) method.getBody();
           List<JStatement> statements = body.getStatements();
 
-          // There must always be at least 1 statement, because the method 
+          // There must always be at least 1 statement, because the method
           // has a non-void return type.
           assert statements.size() > 0;
 
@@ -1056,6 +1056,10 @@
       return processBinaryOperation(info, op, type, x.left, x.right);
     }
 
+    JExpression processExpression(CombinedBinaryExpression x) {
+      return processExpression((BinaryExpression) x);
+    }
+
     JExpression processExpression(CastExpression x) {
       SourceInfo info = makeSourceInfo(x);
       JType type = (JType) typeMap.get(x.resolvedType);
@@ -1617,8 +1621,9 @@
     JStatement processStatement(CaseStatement x) {
       SourceInfo info = makeSourceInfo(x);
       JExpression expression = dispProcessExpression(x.constantExpression);
-      if (x.isEnumConstant) {
+      if (expression != null && x.constantExpression.resolvedType.isEnum()) {
         // TODO: propagate enum information?
+        assert (expression instanceof JFieldRef);
         JFieldRef fieldRef = (JFieldRef) expression;
         JEnumField field = (JEnumField) fieldRef.getField();
         return new JCaseStatement(program, info,
@@ -1913,16 +1918,15 @@
 
       // We have to find and pass through any synthetics our supertype needs
       ReferenceBinding superClass = x.binding.declaringClass;
-      if (superClass instanceof NestedTypeBinding && !superClass.isStatic()) {
-        NestedTypeBinding myBinding = (NestedTypeBinding) currentClassScope.referenceType().binding;
-        NestedTypeBinding superBinding = (NestedTypeBinding) superClass;
+      if (superClass.isNestedType() && !superClass.isStatic()) {
+        ReferenceBinding myBinding = currentClassScope.referenceType().binding;
+        ReferenceBinding superBinding = superClass;
 
         // enclosing types
-        if (superBinding.enclosingInstances != null) {
+        if (superBinding.syntheticEnclosingInstanceTypes() != null) {
           JExpression qualifier = dispProcessExpression(x.qualification);
-          for (int j = 0; j < superBinding.enclosingInstances.length; ++j) {
-            SyntheticArgumentBinding arg = superBinding.enclosingInstances[j];
-            JClassType classType = (JClassType) typeMap.get(arg.type);
+          for (ReferenceBinding arg : superBinding.syntheticEnclosingInstanceTypes()) {
+            JClassType classType = (JClassType) typeMap.get(arg);
             if (qualifier == null) {
               /*
                * Got to be one of my params; it would be illegal to use a this
@@ -1934,7 +1938,8 @@
                */
               List<JExpression> workList = new ArrayList<JExpression>();
               Iterator<JParameter> paramIt = getSyntheticsIterator(currentMethod);
-              for (int i = 0; i < myBinding.enclosingInstances.length; ++i) {
+              for (@SuppressWarnings("unused")
+              ReferenceBinding b : myBinding.syntheticEnclosingInstanceTypes()) {
                 workList.add(createVariableRef(info, paramIt.next()));
               }
               call.getArgs().add(createThisRef(classType, workList));
@@ -1945,9 +1950,8 @@
         }
 
         // outer locals
-        if (superBinding.outerLocalVariables != null) {
-          for (int j = 0; j < superBinding.outerLocalVariables.length; ++j) {
-            SyntheticArgumentBinding arg = superBinding.outerLocalVariables[j];
+        if (superBinding.syntheticOuterLocalVariables() != null) {
+          for (SyntheticArgumentBinding arg : superBinding.syntheticOuterLocalVariables()) {
             // Got to be one of my params
             JType varType = (JType) typeMap.get(arg.type);
             String varName = String.valueOf(arg.name);
@@ -2339,8 +2343,8 @@
     }
 
     private SourceInfo makeSourceInfo(Statement x) {
-      int startLine = ProblemHandler.searchLineNumber(
-          currentSeparatorPositions, x.sourceStart);
+      int startLine = Util.getLineNumber(x.sourceStart,
+          currentSeparatorPositions, 0, currentSeparatorPositions.length - 1);
       return new SourceInfo(x.sourceStart, x.sourceEnd, startLine,
           currentFileName);
     }
@@ -2636,10 +2640,14 @@
   public static void reportJsniError(SourceInfo info,
       AbstractMethodDeclaration methodDeclaration, String message) {
     CompilationResult compResult = methodDeclaration.compilationResult();
+    // recalculate startColumn, because SourceInfo does not hold it
+    int startColumn = Util.searchColumnNumber(
+        compResult.getLineSeparatorPositions(), info.getStartLine(),
+        info.getStartPos());
     DefaultProblem problem = new DefaultProblem(
-        info.getFileName().toCharArray(), message, IProblem.Unclassified, null,
-        ProblemSeverities.Error, info.getStartPos(), info.getEndPos(),
-        info.getStartLine());
+        info.getFileName().toCharArray(), message,
+        IProblem.ExternalProblemNotFixable, null, ProblemSeverities.Error,
+        info.getStartPos(), info.getEndPos(), info.getStartLine(), startColumn);
     compResult.record(problem, methodDeclaration);
   }
 
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeMap.java b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeMap.java
index a5a291a..8ecd7a8 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeMap.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeMap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Google Inc.
+ * Copyright 2008 Google Inc.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy of
@@ -24,6 +24,7 @@
 import org.eclipse.jdt.internal.compiler.lookup.ArrayBinding;
 import org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding;
 import org.eclipse.jdt.internal.compiler.lookup.Binding;
+import org.eclipse.jdt.internal.compiler.lookup.TypeIds;
 import org.eclipse.jdt.internal.compiler.lookup.ParameterizedFieldBinding;
 import org.eclipse.jdt.internal.compiler.lookup.ParameterizedMethodBinding;
 import org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding;
@@ -105,33 +106,33 @@
       BaseTypeBinding baseTypeBinding = (BaseTypeBinding) binding;
       // see org.eclipse.jdt.internal.compiler.lookup.TypeIds constants
       switch (baseTypeBinding.id) {
-        case BaseTypeBinding.T_undefined:
+        case TypeIds.T_undefined:
           return null;
-        case BaseTypeBinding.T_JavaLangObject:
+        case TypeIds.T_JavaLangObject:
           // here for consistency, should already be cached
           return program.getTypeJavaLangObject();
-        case BaseTypeBinding.T_char:
+        case TypeIds.T_char:
           return program.getTypePrimitiveChar();
-        case BaseTypeBinding.T_byte:
+        case TypeIds.T_byte:
           return program.getTypePrimitiveByte();
-        case BaseTypeBinding.T_short:
+        case TypeIds.T_short:
           return program.getTypePrimitiveShort();
-        case BaseTypeBinding.T_boolean:
+        case TypeIds.T_boolean:
           return program.getTypePrimitiveBoolean();
-        case BaseTypeBinding.T_void:
+        case TypeIds.T_void:
           return program.getTypeVoid();
-        case BaseTypeBinding.T_long:
+        case TypeIds.T_long:
           return program.getTypePrimitiveLong();
-        case BaseTypeBinding.T_double:
+        case TypeIds.T_double:
           return program.getTypePrimitiveDouble();
-        case BaseTypeBinding.T_float:
+        case TypeIds.T_float:
           return program.getTypePrimitiveFloat();
-        case BaseTypeBinding.T_int:
+        case TypeIds.T_int:
           return program.getTypePrimitiveInt();
-        case BaseTypeBinding.T_JavaLangString:
+        case TypeIds.T_JavaLangString:
           // here for consistency, should already be cached
           return program.getTypeJavaLangString();
-        case BaseTypeBinding.T_null:
+        case TypeIds.T_null:
           return program.getTypeNull();
         default:
           return null;
diff --git a/distro-source/core/src/COPYING b/distro-source/core/src/COPYING
index fc8b5f6..388c639 100644
--- a/distro-source/core/src/COPYING
+++ b/distro-source/core/src/COPYING
@@ -1,6 +1,6 @@
            GOOGLE WEB TOOLKIT LICENSE INFORMATION
 
-August 28, 2007
+February 8, 2008
 
 The Google Web Toolkit software and sample code developed by Google is 
 licensed under the Apache License, v. 2.0. Other software included in this 
@@ -204,7 +204,7 @@
   License: Eclipse Public License v. 1.0 
     http://www.eclipse.org/legal/epl-v10.html
   Source code availability:
-    http://archive.eclipse.org/eclipse/downloads/drops/R-3.1.1-200509290840/download.php?dropFile=eclipse-JDT-SDK-3.1.1.zip
+    http://archive.eclipse.org/eclipse/downloads/drops/R-3.3.1-200709211145/download.php?dropFile=eclipse-JDT-SDK-3.3.1.zip
 
 * Eclipse Standard Widget Toolkit (SWT)
   License: Eclipse Public License v. 1.0
diff --git a/distro-source/core/src/COPYING.html b/distro-source/core/src/COPYING.html
index 38bc22e..0256027 100755
--- a/distro-source/core/src/COPYING.html
+++ b/distro-source/core/src/COPYING.html
@@ -42,7 +42,7 @@
 
 <h1>Google Web Toolkit License Information</h1>
 
-<p>August 28, 2007</p>
+<p>February 8, 2008</p>
 
 <p>The Google Web Toolkit software and sample code developed by Google
 is licensed under the Apache License, v. 2.0.  Other software included
@@ -291,7 +291,7 @@
   <tr class="even">
     <td class="package">Eclipse Java Development Tools (JDT)</td>
     <td class="license"><a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License v. 1.0</a></td>
-    <td class="location"><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.1.1-200509290840/download.php?dropFile=eclipse-JDT-SDK-3.1.1.zip">eclipse.org</a></td>
+    <td class="location"><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.3.1-200709211145/download.php?dropFile=eclipse-JDT-SDK-3.3.1.zip">eclipse.org</a></td>
   </tr>
   <tr>
     <td class="package">Eclipse Standard Widget Toolkit (SWT)</td>
diff --git a/eclipse/dev/linux/.classpath b/eclipse/dev/linux/.classpath
index 20bc8f2..31ef93f 100644
--- a/eclipse/dev/linux/.classpath
+++ b/eclipse/dev/linux/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2-src.zip" kind="var" path="GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/org.eclipse.swt.gtk-linux-3.2.1.src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/org.eclipse.swt.gtk-linux-3.2.1.jar"/>
-	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.1.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.1.1.jar"/>
+	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.3.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.3.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/junit/junit-3.8.1-src.zip" kind="var" path="GWT_TOOLS/lib/junit/junit-3.8.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/ant-1.6.5-src.zip" kind="var" path="GWT_TOOLS/lib/apache/ant-1.6.5.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/tomcat/ant-launcher-1.6.5.jar"/>
diff --git a/eclipse/dev/mac/.classpath b/eclipse/dev/mac/.classpath
index 9c94d96..59479a0 100644
--- a/eclipse/dev/mac/.classpath
+++ b/eclipse/dev/mac/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2-src.zip" kind="var" path="GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/org.eclipse.swt.carbon-macosx-3.2.1.src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/org.eclipse.swt.carbon-macosx-3.2.1.jar"/>
-	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.1.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.1.1.jar"/>
+	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.3.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.3.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/junit/junit-3.8.1-src.zip" kind="var" path="GWT_TOOLS/lib/junit/junit-3.8.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/ant-1.6.5-src.zip" kind="var" path="GWT_TOOLS/lib/apache/ant-1.6.5.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/tomcat/ant-launcher-1.6.5.jar"/>
diff --git a/eclipse/dev/windows/.classpath b/eclipse/dev/windows/.classpath
index 581e440..57f7f6f 100644
--- a/eclipse/dev/windows/.classpath
+++ b/eclipse/dev/windows/.classpath
@@ -6,7 +6,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2-src.zip" kind="var" path="GWT_TOOLS/lib/apache/tapestry-util-text-4.0.2.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/org.eclipse.swt.win32-win32-3.2.1.src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/org.eclipse.swt.win32-win32-3.2.1.jar"/>
-	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.1.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.1.1.jar"/>
+	<classpathentry sourcepath="/GWT_TOOLS/lib/eclipse/jdt-3.3.1-src.zip" kind="var" path="GWT_TOOLS/lib/eclipse/jdt-3.3.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/junit/junit-3.8.1-src.zip" kind="var" path="GWT_TOOLS/lib/junit/junit-3.8.1.jar"/>
 	<classpathentry sourcepath="/GWT_TOOLS/lib/apache/ant-1.6.5-src.zip" kind="var" path="GWT_TOOLS/lib/apache/ant-1.6.5.jar"/>
 	<classpathentry kind="var" path="GWT_TOOLS/lib/tomcat/ant-launcher-1.6.5.jar"/>