update jdt.core to I20190220-1800 for 2019-03 M3

- enrich jclMin1.8 with classes needed by OT/J
- configure more test projects for 1.8
- add 1.8 versions of JCL_LIB to some more test plugins
- accept jdt.annotation v2.0
- expect @role tag in tests
- revert part of commit 9981d84813a6706ae3f09010b2ce00ae51aa8c07
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> {
+
+}