diff --git a/tools/mkstubs/.classpath b/tools/mkstubs/.classpath
deleted file mode 100644
index 1b7d34b52..000000000
--- a/tools/mkstubs/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/tools/mkstubs/.gitignore b/tools/mkstubs/.gitignore
index fe99505dc..0096b1b3d 100644
--- a/tools/mkstubs/.gitignore
+++ b/tools/mkstubs/.gitignore
@@ -1,2 +1,3 @@
bin
+out
diff --git a/tools/mkstubs/.idea/.name b/tools/mkstubs/.idea/.name
new file mode 100644
index 000000000..c2f61a9a7
--- /dev/null
+++ b/tools/mkstubs/.idea/.name
@@ -0,0 +1 @@
+mstubs
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/codeStyleSettings.xml b/tools/mkstubs/.idea/codeStyleSettings.xml
new file mode 100644
index 000000000..89f7b341f
--- /dev/null
+++ b/tools/mkstubs/.idea/codeStyleSettings.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/compiler.xml b/tools/mkstubs/.idea/compiler.xml
new file mode 100644
index 000000000..96cc43efa
--- /dev/null
+++ b/tools/mkstubs/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/copyright/Android.xml b/tools/mkstubs/.idea/copyright/Android.xml
new file mode 100644
index 000000000..d81d75dae
--- /dev/null
+++ b/tools/mkstubs/.idea/copyright/Android.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/copyright/profiles_settings.xml b/tools/mkstubs/.idea/copyright/profiles_settings.xml
new file mode 100644
index 000000000..20145de48
--- /dev/null
+++ b/tools/mkstubs/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/encodings.xml b/tools/mkstubs/.idea/encodings.xml
new file mode 100644
index 000000000..97626ba45
--- /dev/null
+++ b/tools/mkstubs/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/inspectionProfiles/Project_Default.xml b/tools/mkstubs/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 000000000..fd947e643
--- /dev/null
+++ b/tools/mkstubs/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/inspectionProfiles/profiles_settings.xml b/tools/mkstubs/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 000000000..3b312839b
--- /dev/null
+++ b/tools/mkstubs/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/misc.xml b/tools/mkstubs/.idea/misc.xml
new file mode 100644
index 000000000..97932299e
--- /dev/null
+++ b/tools/mkstubs/.idea/misc.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/modules.xml b/tools/mkstubs/.idea/modules.xml
new file mode 100644
index 000000000..2f972b2e4
--- /dev/null
+++ b/tools/mkstubs/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.idea/vcs.xml b/tools/mkstubs/.idea/vcs.xml
new file mode 100644
index 000000000..b2bdec2d7
--- /dev/null
+++ b/tools/mkstubs/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/mkstubs/.project b/tools/mkstubs/.project
deleted file mode 100644
index 12944f469..000000000
--- a/tools/mkstubs/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- MkStubs
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/tools/mkstubs/Android.mk b/tools/mkstubs/Android.mk
index 3e46a1d05..784f5fd67 100644
--- a/tools/mkstubs/Android.mk
+++ b/tools/mkstubs/Android.mk
@@ -20,7 +20,7 @@ LOCAL_SRC_FILES := $(call all-java-files-under,src)
LOCAL_JAR_MANIFEST := manifest.txt
LOCAL_STATIC_JAVA_LIBRARIES := \
- asm-4.0
+ asm-5.0
LOCAL_MODULE := mkstubs
diff --git a/tools/mkstubs/src/com/android/mkstubs/AsmAnalyzer.java b/tools/mkstubs/src/com/android/mkstubs/AsmAnalyzer.java
index 0b73dc516..1c885f67e 100644
--- a/tools/mkstubs/src/com/android/mkstubs/AsmAnalyzer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/AsmAnalyzer.java
@@ -33,7 +33,7 @@ import java.util.zip.ZipFile;
* Analyzes an input Jar to get all the relevant classes according to the given filter.
*
* This is mostly a helper extracted for convenience. Callers will want to use
- * {@link #parseInputJar(String)} followed by {@link #filter(Map, Filter)}.
+ * {@link #parseInputJar(String)} followed by {@link #filter(Map, Filter, Logger)}.
*/
class AsmAnalyzer {
@@ -42,7 +42,7 @@ class AsmAnalyzer {
* class name => ASM ClassReader. Class names are in the form "android.view.View".
*/
Map parseInputJar(String inputJarPath) throws IOException {
- TreeMap classes = new TreeMap();
+ TreeMap classes = new TreeMap<>();
ZipFile zip = new ZipFile(inputJarPath);
Enumeration extends ZipEntry> entries = zip.entries();
diff --git a/tools/mkstubs/src/com/android/mkstubs/Filter.java b/tools/mkstubs/src/com/android/mkstubs/Filter.java
index 0dcd8daa0..99e1df9ef 100644
--- a/tools/mkstubs/src/com/android/mkstubs/Filter.java
+++ b/tools/mkstubs/src/com/android/mkstubs/Filter.java
@@ -30,10 +30,10 @@ import java.util.TreeSet;
* pattern to decide if it should be included.
*/
class Filter {
- private TreeSet mIncludePrefix = new TreeSet();
- private TreeSet mIncludeFull = new TreeSet();
- private TreeSet mExcludePrefix = new TreeSet();
- private TreeSet mExcludeFull = new TreeSet();
+ private TreeSet mIncludePrefix = new TreeSet<>();
+ private TreeSet mIncludeFull = new TreeSet<>();
+ private TreeSet mExcludePrefix = new TreeSet<>();
+ private TreeSet mExcludeFull = new TreeSet<>();
/**
* Returns the set of all full patterns to be included.
diff --git a/tools/mkstubs/src/com/android/mkstubs/FilterClassAdapter.java b/tools/mkstubs/src/com/android/mkstubs/FilterClassAdapter.java
index e875f10cc..c632a3e9e 100644
--- a/tools/mkstubs/src/com/android/mkstubs/FilterClassAdapter.java
+++ b/tools/mkstubs/src/com/android/mkstubs/FilterClassAdapter.java
@@ -36,7 +36,7 @@ class FilterClassAdapter extends ClassVisitor {
private String mClassName;
public FilterClassAdapter(ClassVisitor writer, Filter filter, Logger log) {
- super(Opcodes.ASM4, writer);
+ super(Main.ASM_VERSION, writer);
mFilter = filter;
mLog = log;
}
diff --git a/tools/mkstubs/src/com/android/mkstubs/Main.java b/tools/mkstubs/src/com/android/mkstubs/Main.java
index 927ff9e10..67d09818d 100644
--- a/tools/mkstubs/src/com/android/mkstubs/Main.java
+++ b/tools/mkstubs/src/com/android/mkstubs/Main.java
@@ -16,9 +16,8 @@
package com.android.mkstubs;
-import com.android.mkstubs.Main.Params;
-
import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.Opcodes;
import java.io.BufferedReader;
import java.io.File;
@@ -34,6 +33,8 @@ import java.util.Map;
*/
public class Main {
+ public static final int ASM_VERSION = Opcodes.ASM5;
+
/**
* A struct-like class to hold the various input values (e.g. command-line args)
*/
diff --git a/tools/mkstubs/src/com/android/mkstubs/SourceGenerator.java b/tools/mkstubs/src/com/android/mkstubs/SourceGenerator.java
index 3f7c438c4..9463a3f62 100644
--- a/tools/mkstubs/src/com/android/mkstubs/SourceGenerator.java
+++ b/tools/mkstubs/src/com/android/mkstubs/SourceGenerator.java
@@ -58,12 +58,8 @@ class SourceGenerator {
String name = classNameToJavaPath(cr.getClassName());
- FileWriter fw = null;
- try {
- fw = createWriter(baseDir, name);
+ try (FileWriter fw = createWriter(baseDir, name)) {
visitClassSource(fw, cr, filter);
- } finally {
- fw.close();
}
}
}
diff --git a/tools/mkstubs/src/com/android/mkstubs/StubGenerator.java b/tools/mkstubs/src/com/android/mkstubs/StubGenerator.java
index 47195fa8a..cf2022dc0 100644
--- a/tools/mkstubs/src/com/android/mkstubs/StubGenerator.java
+++ b/tools/mkstubs/src/com/android/mkstubs/StubGenerator.java
@@ -55,7 +55,7 @@ class StubGenerator {
Map classes,
Filter filter) throws IOException {
- TreeMap all = new TreeMap();
+ TreeMap all = new TreeMap<>();
for (Entry entry : classes.entrySet()) {
ClassReader cr = entry.getValue();
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/AccessSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/AccessSourcer.java
index 3b14ea711..090be173b 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/AccessSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/AccessSourcer.java
@@ -58,7 +58,7 @@ class AccessSourcer {
private final int mValue;
private final int mFilter;
- private Flag(int value, int filter) {
+ Flag(int value, int filter) {
mValue = value;
mFilter = filter;
}
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/AnnotationSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/AnnotationSourcer.java
index ea3ca67c7..56879bbb9 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/AnnotationSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/AnnotationSourcer.java
@@ -16,8 +16,9 @@
package com.android.mkstubs.sourcer;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Opcodes;
/**
* An annotation visitor that generates Java source for an annotation.
@@ -34,7 +35,7 @@ class AnnotationSourcer extends AnnotationVisitor {
}
public AnnotationSourcer(Output output, boolean isArray) {
- super(Opcodes.ASM4);
+ super(Main.ASM_VERSION);
mOutput = output;
mOpenChar = isArray ? "[" : "(";
mCloseChar = isArray ? "]" : ")";
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/ClassSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/ClassSourcer.java
index c005b0c4f..85cf48d95 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/ClassSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/ClassSourcer.java
@@ -16,6 +16,8 @@
package com.android.mkstubs.sourcer;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassVisitor;
@@ -34,7 +36,7 @@ public class ClassSourcer extends ClassVisitor {
private String mClassName;
public ClassSourcer(Output output) {
- super(Opcodes.ASM4);
+ super(Main.ASM_VERSION);
mOutput = output;
mAccessSourcer = new AccessSourcer(mOutput);
}
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/FieldSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/FieldSourcer.java
index 68eae7186..428d8e280 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/FieldSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/FieldSourcer.java
@@ -16,10 +16,11 @@
package com.android.mkstubs.sourcer;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.signature.SignatureReader;
@@ -35,7 +36,7 @@ class FieldSourcer extends FieldVisitor {
private final String mSignature;
public FieldSourcer(Output output, int access, String name, String desc, String signature) {
- super(Opcodes.ASM4);
+ super(Main.ASM_VERSION);
mOutput = output;
mAccess = access;
mName = name;
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/MethodSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/MethodSourcer.java
index 26e8870ec..8913b6790 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/MethodSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/MethodSourcer.java
@@ -16,11 +16,12 @@
package com.android.mkstubs.sourcer;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.signature.SignatureReader;
@@ -43,7 +44,7 @@ class MethodSourcer extends MethodVisitor {
public MethodSourcer(Output output, String className, int access, String name,
String desc, String signature, String[] exceptions) {
- super(Opcodes.ASM4);
+ super(Main.ASM_VERSION);
mOutput = output;
mClassName = className;
mAccess = access;
@@ -223,7 +224,7 @@ class MethodSourcer extends MethodVisitor {
}
@Override
- public void visitMethodInsn(int opcode, String owner, String name, String desc) {
+ public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
// pass
}
diff --git a/tools/mkstubs/src/com/android/mkstubs/sourcer/SignatureSourcer.java b/tools/mkstubs/src/com/android/mkstubs/sourcer/SignatureSourcer.java
index ab9094558..e4b2e92da 100644
--- a/tools/mkstubs/src/com/android/mkstubs/sourcer/SignatureSourcer.java
+++ b/tools/mkstubs/src/com/android/mkstubs/sourcer/SignatureSourcer.java
@@ -16,7 +16,8 @@
package com.android.mkstubs.sourcer;
-import org.objectweb.asm.Opcodes;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.Type;
import org.objectweb.asm.signature.SignatureReader;
import org.objectweb.asm.signature.SignatureVisitor;
@@ -83,7 +84,7 @@ class SignatureSourcer extends SignatureVisitor {
* {@link SignatureSourcer}s for each parameters generated when parsing the method parameters
* of this signature. Initially empty but not null.
*/
- private ArrayList mParameters = new ArrayList();
+ private ArrayList mParameters = new ArrayList<>();
@@ -91,7 +92,7 @@ class SignatureSourcer extends SignatureVisitor {
* Constructs a new {@link SignatureWriter} object.
*/
public SignatureSourcer() {
- super(Opcodes.ASM4);
+ super(Main.ASM_VERSION);
}
private StringBuilder getBuf() {
diff --git a/tools/mkstubs/src/com/android/mkstubs/stubber/ClassStubber.java b/tools/mkstubs/src/com/android/mkstubs/stubber/ClassStubber.java
index f66c7a7f1..bb170cedf 100644
--- a/tools/mkstubs/src/com/android/mkstubs/stubber/ClassStubber.java
+++ b/tools/mkstubs/src/com/android/mkstubs/stubber/ClassStubber.java
@@ -16,12 +16,13 @@
package com.android.mkstubs.stubber;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
/**
* A class visitor that generates stubs for all methods of the visited class.
@@ -30,7 +31,7 @@ import org.objectweb.asm.Opcodes;
public class ClassStubber extends ClassVisitor {
public ClassStubber(ClassVisitor cv) {
- super(Opcodes.ASM4, cv);
+ super(Main.ASM_VERSION, cv);
}
@Override
diff --git a/tools/mkstubs/src/com/android/mkstubs/stubber/MethodStubber.java b/tools/mkstubs/src/com/android/mkstubs/stubber/MethodStubber.java
index 89aa221ef..e428f7b23 100644
--- a/tools/mkstubs/src/com/android/mkstubs/stubber/MethodStubber.java
+++ b/tools/mkstubs/src/com/android/mkstubs/stubber/MethodStubber.java
@@ -16,6 +16,8 @@
package com.android.mkstubs.stubber;
+import com.android.mkstubs.Main;
+
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.Label;
@@ -35,7 +37,7 @@ public class MethodStubber extends MethodVisitor {
public MethodStubber(MethodVisitor mw,
int access, String name, String desc, String signature, String[] exceptions) {
- super(Opcodes.ASM4, mw);
+ super(Main.ASM_VERSION, mw);
}
@Override
@@ -50,7 +52,8 @@ public class MethodStubber extends MethodVisitor {
Opcodes.INVOKESPECIAL, // opcode
"java/lang/RuntimeException", // owner
"", // name
- "(Ljava/lang/String;)V"); // desc
+ "(Ljava/lang/String;)V", // desc
+ false);
mv.visitInsn(Opcodes.ATHROW);
Label l1 = new Label();
mv.visitLabel(l1);
@@ -153,7 +156,7 @@ public class MethodStubber extends MethodVisitor {
}
@Override
- public void visitMethodInsn(int opcode, String owner, String name, String desc) {
+ public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
// skip
}