Author: [EMAIL PROTECTED]
Date: Thu Sep 11 13:47:46 2008
New Revision: 3648

Added:
     
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/ForceClassVersion15.java    
(contents, props changed)
Modified:
    trunk/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
     
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java

Log:
Support Java 6 as a source language.  For 1.5 VMs, rewrite v6 class files  
to v5.

Review by: tobyr
Issue: 2223


Modified: trunk/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
==============================================================================
--- trunk/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java        
(original)
+++ trunk/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java        Thu Sep 
11  
13:47:46 2008
@@ -211,10 +211,14 @@
          CompilerOptions.IGNORE);
      settings.put(CompilerOptions.OPTION_LocalVariableAttribute,
          CompilerOptions.GENERATE);
-    settings.put(CompilerOptions.OPTION_Compliance,  
CompilerOptions.VERSION_1_5);
-    settings.put(CompilerOptions.OPTION_Source,  
CompilerOptions.VERSION_1_5);
+
+    /*
+     * Wish we could target 1.5 class file, but this isn't allowed. :(
+     */
+    settings.put(CompilerOptions.OPTION_Compliance,  
CompilerOptions.VERSION_1_6);
+    settings.put(CompilerOptions.OPTION_Source,  
CompilerOptions.VERSION_1_6);
      settings.put(CompilerOptions.OPTION_TargetPlatform,
-        CompilerOptions.VERSION_1_5);
+        CompilerOptions.VERSION_1_6);

      // This is needed by TypeOracleBuilder to parse metadata.
      if (enableDocCommentSupport) {

Added:  
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/ForceClassVersion15.java
==============================================================================
--- (empty file)
+++  
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/ForceClassVersion15.java    
 
Thu Sep 11 13:47:46 2008
@@ -0,0 +1,38 @@
+/*
+ * 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
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations  
under
+ * the License.
+ */
+package com.google.gwt.dev.shell.rewrite;
+
+import com.google.gwt.dev.asm.ClassAdapter;
+import com.google.gwt.dev.asm.ClassVisitor;
+import com.google.gwt.dev.asm.Opcodes;
+
+/**
+ * Performs any rewriting necessary to ensure that class files are 1.5
+ * compatible.
+ */
+class ForceClassVersion15 extends ClassAdapter {
+
+  public ForceClassVersion15(ClassVisitor v) {
+    super(v);
+  }
+
+  @Override
+  public void visit(final int version, final int access, final String name,
+      final String signature, final String superName, final String[]  
interfaces) {
+    assert (version >= Opcodes.V1_5 && version <= Opcodes.V1_6);
+    super.visit(Opcodes.V1_5, access, name, signature, superName,  
interfaces);
+  }
+}

Modified:  
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
==============================================================================
---  
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
         
(original)
+++  
trunk/dev/core/src/com/google/gwt/dev/shell/rewrite/HostedModeClassRewriter.java
         
Thu Sep 11 13:47:46 2008
@@ -187,6 +187,10 @@

      v = new RewriteJsniMethods(v);

+    if (Double.parseDouble(System.getProperty("java.class.version")) <  
Opcodes.V1_6) {
+      v = new ForceClassVersion15(v);
+    }
+
      new ClassReader(classBytes).accept(v, 0);
      return writer.toByteArray();
    }

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to