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> {
+
+}