diff --git a/othersrc/JCLMin1.8/.classpath b/othersrc/JCLMin1.8/.classpath
new file mode 100644
index 0000000..51a8bba
--- /dev/null
+++ b/othersrc/JCLMin1.8/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/othersrc/JCLMin1.8/.project b/othersrc/JCLMin1.8/.project
new file mode 100644
index 0000000..ad2cf4b
--- /dev/null
+++ b/othersrc/JCLMin1.8/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>JCLMin1.8</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/othersrc/JCLMin1.8/.settings/org.eclipse.jdt.core.prefs b/othersrc/JCLMin1.8/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..857df5d
--- /dev/null
+++ b/othersrc/JCLMin1.8/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.objectteams.otdt.compiler.option.pure_java=enabled
diff --git a/othersrc/JCLMin1.8/jclmin1.8.jardesc b/othersrc/JCLMin1.8/jclmin1.8.jardesc
new file mode 100644
index 0000000..3814545
--- /dev/null
+++ b/othersrc/JCLMin1.8/jclmin1.8.jardesc
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<jardesc>
+    <jar path="org.eclipse.objectteams.otdt.tests/JCL/jclMin1.8.jar"/>
+    <options buildIfNeeded="true" compress="true" descriptionLocation="/JCLMin1.8/jclmin1.8.jardesc" exportErrors="false" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
+    <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
+    <selectedProjects/>
+    <manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
+        <sealing sealJar="false">
+            <packagesToSeal/>
+            <packagesToUnSeal/>
+        </sealing>
+    </manifest>
+    <selectedElements exportClassFiles="false" exportJavaFiles="false" exportOutputFolder="true">
+        <file path="/JCLMin1.8/.classpath"/>
+        <file path="/JCLMin1.8/.project"/>
+        <javaElement handleIdentifier="=JCLMin1.8/src"/>
+    </selectedElements>
+</jardesc>
diff --git a/othersrc/JCLMin1.8/jclmin1.8src.jardesc b/othersrc/JCLMin1.8/jclmin1.8src.jardesc
new file mode 100644
index 0000000..e0c12c7
--- /dev/null
+++ b/othersrc/JCLMin1.8/jclmin1.8src.jardesc
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<jardesc>
+    <jar path="org.eclipse.objectteams.otdt.tests/JCL/jclMin1.8src.zip"/>
+    <options buildIfNeeded="true" compress="true" descriptionLocation="/JCLMin1.8/jclmin1.8src.jardesc" exportErrors="false" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
+    <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
+    <selectedProjects/>
+    <selectedElements exportClassFiles="false" exportJavaFiles="true" exportOutputFolder="false">
+        <folder path="/JCLMin1.8/.settings"/>
+        <javaElement handleIdentifier="=JCLMin1.8/src"/>
+        <file path="/JCLMin1.8/.classpath"/>
+        <file path="/JCLMin1.8/.project"/>
+    </selectedElements>
+</jardesc>
diff --git a/othersrc/JCLMin1.8/src/java/io/IOException.java b/othersrc/JCLMin1.8/src/java/io/IOException.java
new file mode 100644
index 0000000..c161494
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/io/IOException.java
@@ -0,0 +1,5 @@
+package java.io;
+
+public class IOException extends Exception {
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/io/ObjectInputStream.java b/othersrc/JCLMin1.8/src/java/io/ObjectInputStream.java
new file mode 100644
index 0000000..c422bb7
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/io/ObjectInputStream.java
@@ -0,0 +1,5 @@
+package java.io;
+
+public class ObjectInputStream {
+	public boolean readBoolean() throws IOException  { return false; }
+}
diff --git a/othersrc/JCLMin1.8/src/java/io/ObjectOutputStream.java b/othersrc/JCLMin1.8/src/java/io/ObjectOutputStream.java
new file mode 100644
index 0000000..e33767f
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/io/ObjectOutputStream.java
@@ -0,0 +1,5 @@
+package java.io;
+
+public class ObjectOutputStream {
+	public void writeBoolean(boolean flag) throws IOException {}
+}
diff --git a/othersrc/JCLMin1.8/src/java/io/Serializable.java b/othersrc/JCLMin1.8/src/java/io/Serializable.java
new file mode 100644
index 0000000..edd882d
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/io/Serializable.java
@@ -0,0 +1,4 @@
+package java.io;
+
+public interface Serializable {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Boolean.java b/othersrc/JCLMin1.8/src/java/lang/Boolean.java
new file mode 100644
index 0000000..a831396
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Boolean.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public class Boolean {
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/CharSequence.java b/othersrc/JCLMin1.8/src/java/lang/CharSequence.java
new file mode 100644
index 0000000..b9a0d9e
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/CharSequence.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public interface CharSequence {
+	int length();
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Class.java b/othersrc/JCLMin1.8/src/java/lang/Class.java
new file mode 100644
index 0000000..a7667b9
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Class.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class Class<T> {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/ClassCastException.java b/othersrc/JCLMin1.8/src/java/lang/ClassCastException.java
new file mode 100644
index 0000000..46778b0
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/ClassCastException.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public class ClassCastException extends RuntimeException {
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/CloneNotSupportedException.java b/othersrc/JCLMin1.8/src/java/lang/CloneNotSupportedException.java
new file mode 100644
index 0000000..cb777dc
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/CloneNotSupportedException.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class CloneNotSupportedException extends Exception {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Comparable.java b/othersrc/JCLMin1.8/src/java/lang/Comparable.java
new file mode 100644
index 0000000..fbc6c8b
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Comparable.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public interface Comparable<T> {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Deprecated.java b/othersrc/JCLMin1.8/src/java/lang/Deprecated.java
new file mode 100644
index 0000000..6c73ded
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Deprecated.java
@@ -0,0 +1,6 @@
+package java.lang;
+import java.lang.annotation.*;
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Deprecated {
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/Enum.java b/othersrc/JCLMin1.8/src/java/lang/Enum.java
new file mode 100644
index 0000000..05c8d27
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Enum.java
@@ -0,0 +1,14 @@
+package java.lang;
+
+public abstract class Enum<T extends Enum<T>> implements Comparable<T>, java.io.Serializable {
+	private static final long serialVersionUID = 2L;
+
+	protected Enum(String name, int ordinal) {
+	}
+	public final String name() {
+		return null;
+	}
+	public final int ordinal() {
+		return 0;
+	}
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/Error.java b/othersrc/JCLMin1.8/src/java/lang/Error.java
new file mode 100644
index 0000000..fce0cf0
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Error.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class Error extends Throwable {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Exception.java b/othersrc/JCLMin1.8/src/java/lang/Exception.java
new file mode 100644
index 0000000..93645c8
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Exception.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class Exception extends Throwable {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/IllegalArgumentException.java b/othersrc/JCLMin1.8/src/java/lang/IllegalArgumentException.java
new file mode 100644
index 0000000..12ba113
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/IllegalArgumentException.java
@@ -0,0 +1,9 @@
+package java.lang;
+
+public class IllegalArgumentException extends RuntimeException {
+
+	public IllegalArgumentException(String msg) {
+		super();
+	}
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/IllegalMonitorStateException.java b/othersrc/JCLMin1.8/src/java/lang/IllegalMonitorStateException.java
new file mode 100644
index 0000000..e173f13
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/IllegalMonitorStateException.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class IllegalMonitorStateException extends RuntimeException {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Integer.java b/othersrc/JCLMin1.8/src/java/lang/Integer.java
new file mode 100644
index 0000000..4fe8a52
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Integer.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public class Integer {
+	public int intValue() { return 0; }
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/InterruptedException.java b/othersrc/JCLMin1.8/src/java/lang/InterruptedException.java
new file mode 100644
index 0000000..e2e84ba
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/InterruptedException.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class InterruptedException extends Exception {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Iterable.java b/othersrc/JCLMin1.8/src/java/lang/Iterable.java
new file mode 100644
index 0000000..299b66e
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Iterable.java
@@ -0,0 +1,7 @@
+package java.lang;
+
+import java.util.Iterator;
+
+public interface Iterable<T> {
+    Iterator<T> iterator();
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/Object.java b/othersrc/JCLMin1.8/src/java/lang/Object.java
new file mode 100644
index 0000000..eb50899
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Object.java
@@ -0,0 +1,34 @@
+package java.lang;
+
+public class Object {
+
+public Object() {
+}
+protected Object clone() throws CloneNotSupportedException {
+	return null;
+}
+public boolean equals (Object obj) {
+	return false;
+}
+protected void finalize () throws Throwable {
+}
+public final Class<? extends Object> getClass() {
+	return null;
+}
+public int hashCode() {
+	return -1;
+}
+public final void notify() throws IllegalMonitorStateException {
+}
+public final void notifyAll() throws IllegalMonitorStateException {
+}
+public String toString () {
+	return null;
+}
+public final void wait () throws IllegalMonitorStateException, InterruptedException {
+}
+public final void wait (long millis) throws IllegalMonitorStateException, InterruptedException {
+}
+public final void wait (long millis, int nanos) throws IllegalMonitorStateException, InterruptedException {
+}
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Override.java b/othersrc/JCLMin1.8/src/java/lang/Override.java
new file mode 100644
index 0000000..16932c5
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Override.java
@@ -0,0 +1,11 @@
+package java.lang;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.SOURCE)
+public @interface Override {
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/RuntimeException.java b/othersrc/JCLMin1.8/src/java/lang/RuntimeException.java
new file mode 100644
index 0000000..ddbaf63
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/RuntimeException.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class RuntimeException extends Exception {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/String.java b/othersrc/JCLMin1.8/src/java/lang/String.java
new file mode 100644
index 0000000..d8108d4
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/String.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public class String implements CharSequence {
+	public int length() { return 0; }
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/SuppressWarnings.java b/othersrc/JCLMin1.8/src/java/lang/SuppressWarnings.java
new file mode 100644
index 0000000..f68fa6c
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/SuppressWarnings.java
@@ -0,0 +1,11 @@
+package java.lang;
+
+import java.lang.annotation.*;
+import static java.lang.annotation.ElementType.*;
+
+
+@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
+@Retention(RetentionPolicy.SOURCE)
+public @interface SuppressWarnings {
+    String[] value();
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/Thread.java b/othersrc/JCLMin1.8/src/java/lang/Thread.java
new file mode 100644
index 0000000..fbe8a3d
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Thread.java
@@ -0,0 +1,9 @@
+package java.lang;
+
+public class Thread implements Runnable {
+
+	public void run() { }
+
+	public static Thread currentThread() { return null; }
+	public boolean isAlive() { return true; }
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/ThreadLocal.java b/othersrc/JCLMin1.8/src/java/lang/ThreadLocal.java
new file mode 100644
index 0000000..d1f3479
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/ThreadLocal.java
@@ -0,0 +1,5 @@
+package java.lang;
+
+public class ThreadLocal<T> {
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/Throwable.java b/othersrc/JCLMin1.8/src/java/lang/Throwable.java
new file mode 100644
index 0000000..d4a8dcb
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/Throwable.java
@@ -0,0 +1,4 @@
+package java.lang;
+
+public class Throwable {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/Annotation.java b/othersrc/JCLMin1.8/src/java/lang/annotation/Annotation.java
new file mode 100644
index 0000000..ba72aad
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/Annotation.java
@@ -0,0 +1,4 @@
+package java.lang.annotation;
+public interface Annotation {
+
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/Documented.java b/othersrc/JCLMin1.8/src/java/lang/annotation/Documented.java
new file mode 100644
index 0000000..b4fcc84
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/Documented.java
@@ -0,0 +1,6 @@
+package java.lang.annotation;
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Documented {
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/ElementType.java b/othersrc/JCLMin1.8/src/java/lang/annotation/ElementType.java
new file mode 100644
index 0000000..802eec1
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/ElementType.java
@@ -0,0 +1,13 @@
+package java.lang.annotation;
+public enum ElementType {
+    ANNOTATION_TYPE,
+    CONSTRUCTOR,
+    FIELD,
+    LOCAL_VARIABLE,
+    METHOD,
+    PACKAGE,
+    PARAMETER,
+    TYPE,
+    TYPE_USE,
+    TYPE_PARAMETER,
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/Inherited.java b/othersrc/JCLMin1.8/src/java/lang/annotation/Inherited.java
new file mode 100644
index 0000000..dfa8b11
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/Inherited.java
@@ -0,0 +1,6 @@
+package java.lang.annotation;
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Inherited {
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/Retention.java b/othersrc/JCLMin1.8/src/java/lang/annotation/Retention.java
new file mode 100644
index 0000000..20211a9
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/Retention.java
@@ -0,0 +1,7 @@
+package java.lang.annotation;
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Retention {
+    RetentionPolicy value();
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/RetentionPolicy.java b/othersrc/JCLMin1.8/src/java/lang/annotation/RetentionPolicy.java
new file mode 100644
index 0000000..b69fa7d
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/RetentionPolicy.java
@@ -0,0 +1,6 @@
+package java.lang.annotation;
+public enum RetentionPolicy {
+    CLASS,
+    SOURCE,
+    RUNTIME
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/annotation/Target.java b/othersrc/JCLMin1.8/src/java/lang/annotation/Target.java
new file mode 100644
index 0000000..4c17c17
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/annotation/Target.java
@@ -0,0 +1,7 @@
+package java.lang.annotation;
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.ANNOTATION_TYPE)
+public @interface Target {
+    ElementType[] value();
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandle.java b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandle.java
new file mode 100644
index 0000000..688d832
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandle.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package java.lang.invoke;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+public abstract class MethodHandle {
+	@Target(METHOD)
+	@Retention(RUNTIME)
+	@interface PolymorphicSignature {
+	}
+
+	@PolymorphicSignature
+	public final native Object invoke(Object... args) throws Throwable;
+
+	@PolymorphicSignature
+	public final native Object invokeExact(Object... args) throws Throwable;
+
+	public native Object invokeWithArguments(Object... arguments)
+			throws Throwable;
+
+	public native boolean isVarargsCollector();
+
+	public native MethodHandle asType(MethodType newType);
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandles.java b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandles.java
new file mode 100644
index 0000000..3362237
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodHandles.java
@@ -0,0 +1,21 @@
+package java.lang.invoke;
+
+public class MethodHandles {
+	public static final class Lookup {
+		public MethodHandle findVirtual(Class<?> refc, String name,
+				MethodType type) throws NoSuchMethodException,
+				IllegalAccessException {
+			return null;
+		}
+
+		public MethodHandle findStatic(Class<?> refc, String name,
+				MethodType type) throws NoSuchMethodException,
+				IllegalAccessException {
+			return null;
+		}
+	}
+
+	public static Lookup lookup() {
+		return null;
+	}
+}
diff --git a/othersrc/JCLMin1.8/src/java/lang/invoke/MethodType.java b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodType.java
new file mode 100644
index 0000000..492573b
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/lang/invoke/MethodType.java
@@ -0,0 +1,16 @@
+package java.lang.invoke;
+
+public final class MethodType {
+	public static MethodType methodType(Class<?> rtype, Class<?> ptype0,
+			Class<?>... ptypes) {
+		return null;
+	}
+
+	public static MethodType methodType(Class<?> rtype) {
+		return null;
+	}
+
+	public static MethodType genericMethodType(int objectArgCount) {
+		return null;
+	}
+}
diff --git a/othersrc/JCLMin1.8/src/java/util/Collection.java b/othersrc/JCLMin1.8/src/java/util/Collection.java
new file mode 100644
index 0000000..fc86a74
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/util/Collection.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package java.util;
+
+public interface Collection<E> extends Iterable<E> {
+	public Iterator<E> iterator();
+	public int size();
+	public E get(int index);
+	public boolean addAll(Collection<E> c);
+	public E[] toArray(E[] o);
+}
diff --git a/othersrc/JCLMin1.8/src/java/util/Iterator.java b/othersrc/JCLMin1.8/src/java/util/Iterator.java
new file mode 100644
index 0000000..2b0b6b0
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/util/Iterator.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package java.util;
+
+public interface Iterator<E> {
+    boolean hasNext();
+    E next();
+    void remove();
+}
diff --git a/othersrc/JCLMin1.8/src/java/util/List.java b/othersrc/JCLMin1.8/src/java/util/List.java
new file mode 100644
index 0000000..7d19bdf
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/util/List.java
@@ -0,0 +1,4 @@
+package java.util;
+
+public interface List<E> extends Collection<E> {
+}
diff --git a/othersrc/JCLMin1.8/src/java/util/Map.java b/othersrc/JCLMin1.8/src/java/util/Map.java
new file mode 100644
index 0000000..025d6ac
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/util/Map.java
@@ -0,0 +1,7 @@
+package java.util;
+
+public interface Map<K,V> {
+	public interface Entry<K,V> {
+		
+	}
+}
\ No newline at end of file
diff --git a/othersrc/JCLMin1.8/src/java/util/WeakHashMap.java b/othersrc/JCLMin1.8/src/java/util/WeakHashMap.java
new file mode 100644
index 0000000..1df4e1d
--- /dev/null
+++ b/othersrc/JCLMin1.8/src/java/util/WeakHashMap.java
@@ -0,0 +1,5 @@
+package java.util;
+
+public class WeakHashMap<K, V> implements Map<K, V> {
+
+}
