view patches/icedtea-rhino.patch @ 1716:9ad8a3d44a67

Fix a number of issues and enable the Rhino rewriter in the build. 2010-02-17 Andrew John Hughes <ahughes@redhat.com> PR icedtea/179 * ChangeLog: Remove rogue whitespace highlighted by emacs. * Makefile.am: (REWRITER_SRCS): Sources for class file rewriter. Only set RHINO_JAR when WITH_RHINO is set. Point to rewritten JAR file in build directory. Add rewriter and license to EXTRA_DIST. Make icedtea, icedtea-debug and icedtea-ecj depend on rewrite-rhino.stamp. (stamps/rewriter.stamp): Build the class file rewriter. (stamps/rewrite-rhino.stamp): Rewrite the system Rhino JAR file to use the sun.org.mozilla namespace to avoid conflicts. (rewriter): New alias for stamps/rewriter.stamp. (rewrite-rhino): Likewise for stamps/rewrite-rhino.stamp. * patches/icedtea-rhino.patch: Copy rather than symlink the JAR file. Only drop the internal suffix on the javascript package names. * rewriter/com/redhat/rewriter/ClassRewriter.java: (executor): Use a single threaded executor when debugging is enabled. (tasks): Store the Futures returned by the executor for later checking. (main(String[])): Log what happens when processFile returns and handle any exceptions using Futures. (call()): Ensure srcDir/destDir replacement always matches with a trailing slash to avoid odd rewrites. Loop directory creation to avoid possible race issues. Increase logging and fix a number of issues with the rewrite: * Fix off-by-one loop bug so final entry is inspected. * Handle double entries which occur with 8-byte entries (doubles and longs): http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#16628
author Andrew John Hughes <ahughes@redhat.com>
date Thu, 18 Mar 2010 14:56:35 +0000
parents c8712800dc87
children
line wrap: on
line source

--- openjdk/hotspot/src/share/vm/runtime/os.cpp.orig	2008-11-22 00:11:18.000000000 +0000
+++ openjdk/hotspot/src/share/vm/runtime/os.cpp	2008-12-03 21:16:14.000000000 +0000
@@ -886,6 +886,7 @@
         "%/lib/jsse.jar:"
         "%/lib/jce.jar:"
         "%/lib/charsets.jar:"
+        "%/lib/rhino.jar:"
         "%/classes";
     char* sysclasspath = format_boot_path(classpath_format, home, home_len, fileSep, pathSep);
     if (sysclasspath == NULL) return false;
--- openjdk/jdk/make/com/sun/script/Makefile.orig	2008-11-25 09:01:10.000000000 +0000
+++ openjdk/jdk/make/com/sun/script/Makefile	2008-12-03 21:13:14.000000000 +0000
@@ -31,6 +31,8 @@
 
 AUTO_FILES_JAVA_DIRS = com/sun/script
 
+OTHER_JAVACFLAGS = -classpath $(RHINO_JAR)
+
 #
 # Files that need to be copied
 #
--- openjdk/jdk/make/com/sun/Makefile.orig	2008-11-25 09:01:09.000000000 +0000
+++ openjdk/jdk/make/com/sun/Makefile	2008-12-03 21:14:36.000000000 +0000
@@ -31,15 +31,8 @@
 PRODUCT = sun
 include $(BUILDDIR)/common/Defs.gmk
 
-ifndef OPENJDK
-  ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
-  ifneq ("$(ORG_EXISTS)", "") 
-    SCRIPT_SUBDIR = script
-  endif
-endif
-
 # Omit mirror since it's built with the apt tool.
-SUBDIRS = $(SCRIPT_SUBDIR) image security crypto/provider jndi jmx \
+SUBDIRS = script image security crypto/provider jndi jmx \
     java inputmethods org rowset net/httpserver net/ssl demo \
     tools jarsigner
 
--- openjdk/jdk/make/common/Release.gmk.orig	2008-12-03 21:12:23.000000000 +0000
+++ openjdk/jdk/make/common/Release.gmk	2008-12-03 21:13:14.000000000 +0000
@@ -772,6 +772,7 @@
 	$(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar
 	$(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar
 	$(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar
+	$(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar
 	@# Generate meta-index to make boot and extension class loaders lazier
 	$(CD) $(JRE_IMAGE_DIR)/lib && \
 	    $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoTopLevel.java	2008-12-03 21:13:13.000000000 +0000
@@ -25,7 +25,7 @@
 
 package com.sun.script.javascript;
 
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 import javax.script.*;
 
 /**
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java	2008-12-03 21:13:05.000000000 +0000
@@ -26,7 +26,7 @@
 package com.sun.script.javascript;
 import javax.script.*;
 import java.util.*;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 import com.sun.script.util.*;
 
 /**
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/ExternalScriptable.java	2008-12-03 21:13:14.000000000 +0000
@@ -24,7 +24,7 @@
  */
 
 package com.sun.script.javascript;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 import javax.script.*;
 import java.util.*;
 
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java	2008-12-03 21:13:05.000000000 +0000
@@ -26,7 +26,7 @@
 package com.sun.script.javascript;
 import com.sun.script.util.*;
 import javax.script.*;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 import java.lang.reflect.Method;
 import java.io.*;
 import java.util.*;
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoClassShutter.java	2008-12-03 21:13:05.000000000 +0000
@@ -26,7 +26,7 @@
 package com.sun.script.javascript;
 
 import java.util.*;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 
 /**
  * This class prevents script access to certain sensitive classes.
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JavaAdapter.java	2008-12-03 21:13:14.000000000 +0000
@@ -26,7 +26,7 @@
 package com.sun.script.javascript;
 
 import javax.script.Invocable;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 
 /**
  * This class implements Rhino-like JavaAdapter to help implement a Java
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/JSAdapter.java	2008-12-03 21:13:05.000000000 +0000
@@ -25,7 +25,7 @@
 
 package com.sun.script.javascript;
 
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 import java.util.*;
 
 /**
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java	2008-12-03 21:13:14.000000000 +0000
@@ -27,7 +27,7 @@
 
 import java.lang.reflect.*;
 import static sun.security.util.SecurityConstants.*;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 
 /**
  * This wrap factory is used for security reasons. JSR 223 script
--- openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java.orig	2008-11-25 09:02:56.000000000 +0000
+++ openjdk/jdk/src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java	2008-12-03 21:13:05.000000000 +0000
@@ -25,7 +25,7 @@
 
 package com.sun.script.javascript;
 import javax.script.*;
-import sun.org.mozilla.javascript.internal.*;
+import sun.org.mozilla.javascript.*;
 
 /**
  * Represents compiled JavaScript code.