/dev-java/groovy/files/groovy-2.4.10-utils.gradle.patch
https://github.com/masayuko/hiidulu · Patch · 119 lines · 108 code · 11 blank · 0 comment · 0 complexity · 674bc8ceb2cdc18c1d194cd60d882bb0 MD5 · raw file
- diff --git a/gradle/utils.gradle b/gradle/utils.gradle
- index b485933..69df164 100644
- --- a/gradle/utils.gradle
- +++ b/gradle/utils.gradle
- @@ -17,60 +17,48 @@
- * under the License.
- */
-
- -import org.objectweb.asm.MethodVisitor
- -import org.objectweb.asm.ClassWriter
- -import org.objectweb.asm.Label
- +import java.io.File;
- +import java.io.FileOutputStream;
-
- -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 org.objectweb.asm.MethodVisitor;
- +import org.objectweb.asm.ClassWriter;
- +import org.objectweb.asm.Label;
-
- -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;
-
- -/**
- - * 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);
- MethodVisitor mv;
-
- - cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, 'org/codehaus/groovy/runtime/ExceptionUtils', null, 'java/lang/Object', null);
- + cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null);
-
- - cw.visitSource('ExceptionUtils.java', 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);
- @@ -79,19 +67,21 @@ task exceptionUtils {
- 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();
- + }
- + }
- }