Initial Contribution
diff --git a/ANDROID-CHANGES.txt b/ANDROID-CHANGES.txt
new file mode 100644
index 0000000..d4cade0
--- /dev/null
+++ b/ANDROID-CHANGES.txt
@@ -0,0 +1,8 @@
+
+Change made for Android
+
+1) Change coverage.out.file location in core/res/emma_default.properties to /data/coverage.ec
+2) Remove reference to sun.misc.* in core/java14/com/vladium/util/IJREVersion.java
+3) Remove reference to sun.misc.* and SunJREExitHookManager class from core/java13/com/vladium/util/exit/ExitHookManager.java
+4) Add java.security.cert.Certificate cast to core/java12/com/vladium/emma/rt/InstrClassLoader.java to fix compiler error
+5) Copy /core/res/com/vladium/emma/rt/RTExitHook.closure into source tree so it does not have to be generated in the build
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..7c5b34c
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,14 @@
+# Copyright 2008 The Android Open Source Project
+
+LOCAL_PATH := $(my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, core)
+
+LOCAL_MODULE := emma
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_JAVA_RESOURCE_DIRS := core/res
+
+include $(BUILD_JAVA_LIBRARY)
diff --git a/core/java12/com/vladium/emma/rt/InstrClassLoader.java b/core/java12/com/vladium/emma/rt/InstrClassLoader.java
index b8c4277..7732d0e 100644
--- a/core/java12/com/vladium/emma/rt/InstrClassLoader.java
+++ b/core/java12/com/vladium/emma/rt/InstrClassLoader.java
@@ -16,6 +16,7 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.security.CodeSource;
+import java.security.cert.Certificate;
import java.util.Map;
import com.vladium.logging.Logger;
@@ -343,7 +344,7 @@
// support ProtectionDomains with non-null class source URLs:
// [however, disable anything related to sealing or signing]
- final CodeSource csrc = new CodeSource (srcURL, null);
+ final CodeSource csrc = new CodeSource (srcURL, (Certificate[])null);
// allow getPackage() to return non-null on the class we are about to
// define (however, don't bother emulating the original manifest info since
@@ -459,4 +460,4 @@
private static final URL [] EMPTY_URL_ARRAY = new URL [0];
} // end of class
-// ----------------------------------------------------------------------------
\ No newline at end of file
+// ----------------------------------------------------------------------------
diff --git a/core/java12/com/vladium/util/IntVector.java b/core/java12/com/vladium/util/IntVector.java
index 2bc4a99..3e159be 100644
--- a/core/java12/com/vladium/util/IntVector.java
+++ b/core/java12/com/vladium/util/IntVector.java
Binary files differ
diff --git a/core/java13/com/vladium/util/exit/ExitHookManager.java b/core/java13/com/vladium/util/exit/ExitHookManager.java
index c119268..2bcee9f 100644
--- a/core/java13/com/vladium/util/exit/ExitHookManager.java
+++ b/core/java13/com/vladium/util/exit/ExitHookManager.java
@@ -11,9 +11,6 @@
import java.util.HashMap;
import java.util.Map;
-import sun.misc.Signal;
-import sun.misc.SignalHandler;
-
import com.vladium.util.IJREVersion;
import com.vladium.util.Property;
import com.vladium.emma.IAppConstants;
@@ -40,10 +37,6 @@
{
s_singleton = new JRE13ExitHookManager ();
}
- else if (JRE_SUN_SIGNAL_COMPATIBLE)
- {
- s_singleton = new SunJREExitHookManager ();
- }
else
{
throw new UnsupportedOperationException ("no shutdown hook manager available [JVM: " + Property.getSystemFingerprint () + "]");
@@ -124,129 +117,7 @@
} // end of nested class
-
- private static final class SunJREExitHookManager extends ExitHookManager
- {
- public synchronized boolean addExitHook (final Runnable runnable)
- {
- if ((runnable != null) && ! m_signalHandlerMap.containsKey (runnable))
- {
- final INTSignalHandler handler = new INTSignalHandler (runnable);
-
- try
- {
- handler.register ();
- m_signalHandlerMap.put (runnable, handler); // TODO: use identity here
-
- return true;
- }
- catch (Throwable t)
- {
- System.out.println ("exception caught while adding a shutdown hook:");
- t.printStackTrace (System.out);
- }
- }
-
- return false;
- }
-
- public synchronized boolean removeExitHook (final Runnable runnable)
- {
- if (runnable != null)
- {
- final INTSignalHandler handler = (INTSignalHandler) m_signalHandlerMap.get (runnable); // TODO: use identity here
- if (handler != null)
- {
- try
- {
- handler.unregister ();
- m_signalHandlerMap.remove (runnable);
-
- return true;
- }
- catch (Exception e)
- {
- System.out.println ("exception caught while removing a shutdown hook:");
- e.printStackTrace (System.out);
- }
- }
- }
-
- return false;
- }
-
- SunJREExitHookManager ()
- {
- m_signalHandlerMap = new HashMap ();
- }
-
-
- private final Map /* Runnable->INTSignalHandler */ m_signalHandlerMap;
-
- } // end of nested class
-
-
- private static final class INTSignalHandler implements SignalHandler
- {
- public synchronized void handle (final Signal signal)
- {
- if (m_runnable != null)
- {
- try
- {
- m_runnable.run ();
- }
- catch (Throwable ignore) {}
- }
- m_runnable = null;
-
- if ((m_previous != null) && (m_previous != SIG_DFL) && (m_previous != SIG_IGN))
- {
- try
- {
- // this does not work:
- //Signal.handle (signal, m_previous);
- //Signal.raise (signal);
-
- m_previous.handle (signal);
- }
- catch (Throwable ignore) {}
- }
- else
- {
- System.exit (0);
- }
- }
-
- INTSignalHandler (final Runnable runnable)
- {
- m_runnable = runnable;
- }
-
- synchronized void register ()
- {
- m_previous = Signal.handle (new Signal ("INT"), this);
- }
-
- synchronized void unregister ()
- {
-// if (m_previous != null)
-// {
-// Signal.handle (new Signal ("INT"), m_previous);
-// m_previous = null;
-// }
-
- m_runnable = null;
- }
-
-
- private Runnable m_runnable;
- private SignalHandler m_previous;
-
- } // end of nested class
-
-
private static ExitHookManager s_singleton;
} // end of class
-// ----------------------------------------------------------------------------
\ No newline at end of file
+// ----------------------------------------------------------------------------
diff --git a/core/java14/com/vladium/util/IJREVersion.java b/core/java14/com/vladium/util/IJREVersion.java
index 866c3fe..7f3331a 100644
--- a/core/java14/com/vladium/util/IJREVersion.java
+++ b/core/java14/com/vladium/util/IJREVersion.java
@@ -82,14 +82,6 @@
_JRE_1_4_PLUS = temp;
temp = false;
- try
- {
- Class.forName ("sun.misc.Signal");
- Class.forName ("sun.misc.SignalHandler");
-
- temp = true;
- }
- catch (Throwable ignore) {}
_JRE_SUN_SIGNAL_COMPATIBLE = temp;
}
diff --git a/core/res/com/vladium/emma/rt/RTExitHook.closure b/core/res/com/vladium/emma/rt/RTExitHook.closure
new file mode 100644
index 0000000..366a00a
--- /dev/null
+++ b/core/res/com/vladium/emma/rt/RTExitHook.closure
@@ -0,0 +1,3 @@
+#this file is auto-generated, do not edit
+#Fri Feb 08 12:18:59 PST 2008
+closure=com.vladium.util.ResourceLoader,com.vladium.emma.rt.RTCoverageDataPersister,com.vladium.util.IntSet,com.vladium.logging.Logger,com.vladium.util.IntSet$Entry,com.vladium.emma.data.DataFactory$UCFileOutputStream,com.vladium.emma.rt.RTExitHook,com.vladium.util.ClassLoaderResolver$CallerResolver,com.vladium.emma.data.CoverageData,com.vladium.util.ClassLoadContext,com.vladium.emma.data.ClassDescriptor,com.vladium.util.Property$SystemPropertyLookup,com.vladium.util.IConstants,com.vladium.emma.data.IMetaData,com.vladium.emma.data.CoverageOptions,com.vladium.util.ClassLoaderResolver,com.vladium.emma.data.ICoverageData$DataHolder,com.vladium.emma.data.ISessionData,com.vladium.emma.data.DataFactory$UCFileInputStream,com.vladium.emma.data.IMetadataConstants,com.vladium.emma.data.MethodDescriptor,com.vladium.util.Property$SystemRedirectsLookup,com.vladium.emma.data.MetaData,com.vladium.logging.Logger$1,com.vladium.util.IClassLoadStrategy,com.vladium.emma.data.DataFactory$RandomAccessFileInputStream,com.vladium.emma.data.IMergeable,com.vladium.util.IntObjectMap,com.vladium.util.Property,com.vladium.logging.Logger$ThreadLocalStack,com.vladium.emma.data.DataFactory,com.vladium.emma.data.ICoverageData,com.vladium.emma.data.DataFactory$RandomAccessFileOutputStream,com.vladium.util.IntObjectMap$Entry,com.vladium.util.XProperties,com.vladium.util.ClassLoaderResolver$DefaultClassLoadStrategy,com.vladium.logging.ILogLevels,com.vladium.util.ClassLoaderResolver$1,com.vladium.util.Property$FilePropertyLookup
diff --git a/core/res/emma_default.properties b/core/res/emma_default.properties
index ec4fecb..8a3079d 100644
--- a/core/res/emma_default.properties
+++ b/core/res/emma_default.properties
@@ -48,7 +48,7 @@
# runtime coverage data output properties:
-coverage.out.file: coverage.ec
+coverage.out.file: /data/coverage.ec
coverage.out.merge: true
# -------------------------------------------------------------
diff --git a/lib/emma.jar b/lib/emma.jar
new file mode 100644
index 0000000..27629de
--- /dev/null
+++ b/lib/emma.jar
Binary files differ
diff --git a/lib/emma_ant.jar b/lib/emma_ant.jar
new file mode 100644
index 0000000..3f28c2c
--- /dev/null
+++ b/lib/emma_ant.jar
Binary files differ