You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
4.2 KiB
117 lines
4.2 KiB
9 years ago
|
--- gradle/utils.gradle.orig 2015-11-01 21:06:26.246486000 +0000
|
||
|
+++ gradle/utils.gradle 2015-11-01 21:06:57.719486000 +0000
|
||
|
@@ -16,57 +16,47 @@
|
||
|
* specific language governing permissions and limitations
|
||
|
* under the License.
|
||
|
*/
|
||
|
-import org.codehaus.groovy.classgen.AnnotationVisitor
|
||
|
-import org.objectweb.asm.ClassWriter
|
||
|
-import org.objectweb.asm.FieldVisitor
|
||
|
-import org.objectweb.asm.Label
|
||
|
-import org.objectweb.asm.MethodVisitor
|
||
|
-
|
||
|
-import static org.objectweb.asm.Opcodes.*
|
||
|
-
|
||
|
-buildscript {
|
||
|
- repositories {
|
||
|
- mavenCentral()
|
||
|
- }
|
||
|
- dependencies {
|
||
|
- classpath "org.ow2.asm:asm:$asmVersion"
|
||
|
- }
|
||
|
-}
|
||
|
+import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
|
||
|
+import static org.objectweb.asm.Opcodes.ACC_STATIC;
|
||
|
+import static org.objectweb.asm.Opcodes.ACC_SUPER;
|
||
|
+import static org.objectweb.asm.Opcodes.ALOAD;
|
||
|
+import static org.objectweb.asm.Opcodes.ATHROW;
|
||
|
+import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
|
||
|
+import static org.objectweb.asm.Opcodes.RETURN;
|
||
|
+import static org.objectweb.asm.Opcodes.V1_5;
|
||
|
+
|
||
|
+import java.io.File;
|
||
|
+import java.io.FileOutputStream;
|
||
|
+
|
||
|
+import org.objectweb.asm.ClassWriter;
|
||
|
+import org.objectweb.asm.Label;
|
||
|
+import org.objectweb.asm.MethodVisitor;
|
||
|
|
||
|
-/**
|
||
|
- * This tasks generates an utility class which allows sneaky throwing.
|
||
|
- */
|
||
|
-task exceptionUtils {
|
||
|
- ext.classFiles = [
|
||
|
- "${buildDir}/generated-classes/org/codehaus/groovy/runtime/ExceptionUtils.class",
|
||
|
- "${compileJava.destinationDir}/org/codehaus/groovy/runtime/ExceptionUtils.class"]
|
||
|
- outputs.files classFiles
|
||
|
+public class ExceptionUtils {
|
||
|
+ private final static String gentooClassDestination = "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class";
|
||
|
|
||
|
- doLast {
|
||
|
+ public static void main(String[] args) {
|
||
|
ClassWriter cw = new ClassWriter(0);
|
||
|
- FieldVisitor fv;
|
||
|
MethodVisitor mv;
|
||
|
- AnnotationVisitor av0;
|
||
|
-
|
||
|
- cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, 'org/codehaus/groovy/runtime/ExceptionUtils', null, 'java/lang/Object', null);
|
||
|
|
||
|
- cw.visitSource('ExceptionUtils.java', null);
|
||
|
+ cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null);
|
||
|
+ cw.visitSource("ExceptionUtils.java", null);
|
||
|
|
||
|
- mv = cw.visitMethod(ACC_PUBLIC, '<init>', '()V', null, null);
|
||
|
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
|
||
|
mv.visitCode();
|
||
|
Label l0 = new Label();
|
||
|
mv.visitLabel(l0);
|
||
|
mv.visitLineNumber(18, l0);
|
||
|
mv.visitVarInsn(ALOAD, 0);
|
||
|
- mv.visitMethodInsn(INVOKESPECIAL, 'java/lang/Object', '<init>', '()V', false);
|
||
|
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
|
||
|
mv.visitInsn(RETURN);
|
||
|
Label l1 = new Label();
|
||
|
mv.visitLabel(l1);
|
||
|
- mv.visitLocalVariable('this', 'Lorg/codehaus/groovy/runtime/ExceptionUtils;', null, l0, l1, 0);
|
||
|
+ mv.visitLocalVariable("this", "Lorg/codehaus/groovy/runtime/ExceptionUtils;", null, l0, l1, 0);
|
||
|
mv.visitMaxs(1, 1);
|
||
|
mv.visitEnd();
|
||
|
|
||
|
- mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, 'sneakyThrow', '(Ljava/lang/Throwable;)V', null, null);
|
||
|
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "sneakyThrow", "(Ljava/lang/Throwable;)V", null, null);
|
||
|
mv.visitCode();
|
||
|
Label l2 = new Label();
|
||
|
mv.visitLabel(l2);
|
||
|
@@ -75,19 +65,21 @@
|
||
|
mv.visitInsn(ATHROW);
|
||
|
Label l3 = new Label();
|
||
|
mv.visitLabel(l3);
|
||
|
- mv.visitLocalVariable('e', 'Ljava/lang/Throwable;', null, l2, l3, 0);
|
||
|
+ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l2, l3, 0);
|
||
|
mv.visitMaxs(1, 1);
|
||
|
mv.visitEnd();
|
||
|
|
||
|
cw.visitEnd();
|
||
|
+ FileOutputStream fos = null;
|
||
|
|
||
|
- logger.lifecycle('Generating ExceptionUtils')
|
||
|
- classFiles.each { classFile ->
|
||
|
- def output = file(classFile)
|
||
|
- output.parentFile.mkdirs()
|
||
|
- output.withOutputStream {
|
||
|
- it << cw.toByteArray()
|
||
|
- }
|
||
|
- }
|
||
|
- }
|
||
|
+ File f = new File(gentooClassDestination);
|
||
|
+ f.getParentFile().mkdirs();
|
||
|
+ try {
|
||
|
+ fos = new FileOutputStream(f);
|
||
|
+ fos.write(cw.toByteArray());
|
||
|
+ fos.close();
|
||
|
+ } catch (Exception e) {
|
||
|
+ e.printStackTrace();
|
||
|
+ }
|
||
|
+ }
|
||
|
}
|