Compare commits

...

No commits in common. 'c9' and 'c8-stream-rhel8' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/objectweb-asm-9.1.tar.gz
SOURCES/objectweb-asm-7.3.1.tar.gz

@ -1 +1 @@
d4c155b63b6482c19ddcd1b4f62f9af39a951213 SOURCES/objectweb-asm-9.1.tar.gz
84de14cafe66de33312d0e4814f93a515508979a SOURCES/objectweb-asm-7.3.1.tar.gz

@ -0,0 +1,813 @@
From df50f201a0f253bc55dc89e191ac66cb920a3274 Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Wed, 6 May 2020 15:09:27 +0100
Subject: [PATCH] Revert upstream change 2a58bc9
---
.../commons/RemappingAnnotationAdapter.java | 85 ++++++
.../asm/commons/RemappingClassAdapter.java | 167 +++++++++++
.../asm/commons/RemappingFieldAdapter.java | 74 +++++
.../asm/commons/RemappingMethodAdapter.java | 279 ++++++++++++++++++
.../commons/RemappingSignatureAdapter.java | 157 ++++++++++
5 files changed, 762 insertions(+)
create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java
create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java
create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java
diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java
new file mode 100644
index 0000000..86c6ee9
--- /dev/null
+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java
@@ -0,0 +1,85 @@
+// ASM: a very small and fast Java bytecode manipulation framework
+// Copyright (c) 2000-2011 INRIA, France Telecom
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the copyright holders nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+
+package org.objectweb.asm.commons;
+
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.Opcodes;
+
+/**
+ * An {@link AnnotationVisitor} adapter for type remapping.
+ *
+ * @deprecated use {@link AnnotationRemapper} instead.
+ * @author Eugene Kuleshov
+ */
+@Deprecated
+public class RemappingAnnotationAdapter extends AnnotationVisitor {
+
+ protected final Remapper remapper;
+
+ public RemappingAnnotationAdapter(
+ final AnnotationVisitor annotationVisitor, final Remapper remapper) {
+ this(Opcodes.ASM6, annotationVisitor, remapper);
+ }
+
+ protected RemappingAnnotationAdapter(
+ final int api, final AnnotationVisitor annotationVisitor, final Remapper remapper) {
+ super(api, annotationVisitor);
+ this.remapper = remapper;
+ }
+
+ @Override
+ public void visit(final String name, final Object value) {
+ av.visit(name, remapper.mapValue(value));
+ }
+
+ @Override
+ public void visitEnum(final String name, final String descriptor, final String value) {
+ av.visitEnum(name, remapper.mapDesc(descriptor), value);
+ }
+
+ @Override
+ public AnnotationVisitor visitAnnotation(final String name, final String descriptor) {
+ AnnotationVisitor annotationVisitor = av.visitAnnotation(name, remapper.mapDesc(descriptor));
+ return annotationVisitor == null
+ ? null
+ : (annotationVisitor == av
+ ? this
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper));
+ }
+
+ @Override
+ public AnnotationVisitor visitArray(final String name) {
+ AnnotationVisitor annotationVisitor = av.visitArray(name);
+ return annotationVisitor == null
+ ? null
+ : (annotationVisitor == av
+ ? this
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper));
+ }
+}
diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
new file mode 100644
index 0000000..b4cc08c
--- /dev/null
+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
@@ -0,0 +1,167 @@
+// ASM: a very small and fast Java bytecode manipulation framework
+// Copyright (c) 2000-2011 INRIA, France Telecom
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the copyright holders nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+
+package org.objectweb.asm.commons;
+
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.ModuleVisitor;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.TypePath;
+
+/**
+ * A {@link ClassVisitor} for type remapping.
+ *
+ * @deprecated use {@link ClassRemapper} instead.
+ * @author Eugene Kuleshov
+ */
+@Deprecated
+public class RemappingClassAdapter extends ClassVisitor {
+
+ protected final Remapper remapper;
+
+ protected String className;
+
+ public RemappingClassAdapter(final ClassVisitor classVisitor, final Remapper remapper) {
+ this(Opcodes.ASM6, classVisitor, remapper);
+ }
+
+ protected RemappingClassAdapter(
+ final int api, final ClassVisitor classVisitor, final Remapper remapper) {
+ super(api, classVisitor);
+ this.remapper = remapper;
+ }
+
+ @Override
+ public void visit(
+ final int version,
+ final int access,
+ final String name,
+ final String signature,
+ final String superName,
+ final String[] interfaces) {
+ this.className = name;
+ super.visit(
+ version,
+ access,
+ remapper.mapType(name),
+ remapper.mapSignature(signature, false),
+ remapper.mapType(superName),
+ interfaces == null ? null : remapper.mapTypes(interfaces));
+ }
+
+ @Override
+ public ModuleVisitor visitModule(final String name, final int flags, final String version) {
+ throw new RuntimeException("RemappingClassAdapter is deprecated, use ClassRemapper instead");
+ }
+
+ @Override
+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitAnnotation(remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor);
+ }
+
+ @Override
+ public AnnotationVisitor visitTypeAnnotation(
+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor);
+ }
+
+ @Override
+ public FieldVisitor visitField(
+ final int access,
+ final String name,
+ final String descriptor,
+ final String signature,
+ final Object value) {
+ FieldVisitor fieldVisitor =
+ super.visitField(
+ access,
+ remapper.mapFieldName(className, name, descriptor),
+ remapper.mapDesc(descriptor),
+ remapper.mapSignature(signature, true),
+ remapper.mapValue(value));
+ return fieldVisitor == null ? null : createRemappingFieldAdapter(fieldVisitor);
+ }
+
+ @Override
+ public MethodVisitor visitMethod(
+ final int access,
+ final String name,
+ final String descriptor,
+ final String signature,
+ final String[] exceptions) {
+ String newDescriptor = remapper.mapMethodDesc(descriptor);
+ MethodVisitor methodVisitor =
+ super.visitMethod(
+ access,
+ remapper.mapMethodName(className, name, descriptor),
+ newDescriptor,
+ remapper.mapSignature(signature, false),
+ exceptions == null ? null : remapper.mapTypes(exceptions));
+ return methodVisitor == null
+ ? null
+ : createRemappingMethodAdapter(access, newDescriptor, methodVisitor);
+ }
+
+ @Override
+ public void visitInnerClass(
+ final String name, final String outerName, final String innerName, final int access) {
+ super.visitInnerClass(
+ remapper.mapType(name),
+ outerName == null ? null : remapper.mapType(outerName),
+ innerName,
+ access);
+ }
+
+ @Override
+ public void visitOuterClass(final String owner, final String name, final String descriptor) {
+ super.visitOuterClass(
+ remapper.mapType(owner),
+ name == null ? null : remapper.mapMethodName(owner, name, descriptor),
+ descriptor == null ? null : remapper.mapMethodDesc(descriptor));
+ }
+
+ protected FieldVisitor createRemappingFieldAdapter(final FieldVisitor fieldVisitor) {
+ return new RemappingFieldAdapter(fieldVisitor, remapper);
+ }
+
+ protected MethodVisitor createRemappingMethodAdapter(
+ final int access, final String newDescriptor, final MethodVisitor methodVisitior) {
+ return new RemappingMethodAdapter(access, newDescriptor, methodVisitior, remapper);
+ }
+
+ protected AnnotationVisitor createRemappingAnnotationAdapter(final AnnotationVisitor av) {
+ return new RemappingAnnotationAdapter(av, remapper);
+ }
+}
diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java
new file mode 100644
index 0000000..5f14f33
--- /dev/null
+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java
@@ -0,0 +1,74 @@
+// ASM: a very small and fast Java bytecode manipulation framework
+// Copyright (c) 2000-2011 INRIA, France Telecom
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the copyright holders nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+
+package org.objectweb.asm.commons;
+
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.TypePath;
+
+/**
+ * A {@link FieldVisitor} adapter for type remapping.
+ *
+ * @deprecated use {@link FieldRemapper} instead.
+ * @author Eugene Kuleshov
+ */
+@Deprecated
+public class RemappingFieldAdapter extends FieldVisitor {
+
+ private final Remapper remapper;
+
+ public RemappingFieldAdapter(final FieldVisitor fieldVisitor, final Remapper remapper) {
+ this(Opcodes.ASM6, fieldVisitor, remapper);
+ }
+
+ protected RemappingFieldAdapter(
+ final int api, final FieldVisitor fieldVisitor, final Remapper remapper) {
+ super(api, fieldVisitor);
+ this.remapper = remapper;
+ }
+
+ @Override
+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor = fv.visitAnnotation(remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? null
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public AnnotationVisitor visitTypeAnnotation(
+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? null
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+}
diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
new file mode 100644
index 0000000..cf21f18
--- /dev/null
+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
@@ -0,0 +1,279 @@
+// ASM: a very small and fast Java bytecode manipulation framework
+// Copyright (c) 2000-2011 INRIA, France Telecom
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the copyright holders nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+
+package org.objectweb.asm.commons;
+
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.Handle;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.TypePath;
+
+/**
+ * A {@link LocalVariablesSorter} for type mapping.
+ *
+ * @deprecated use {@link MethodRemapper} instead.
+ * @author Eugene Kuleshov
+ */
+@Deprecated
+public class RemappingMethodAdapter extends LocalVariablesSorter {
+
+ protected final Remapper remapper;
+
+ public RemappingMethodAdapter(
+ final int access,
+ final String descriptor,
+ final MethodVisitor methodVisitor,
+ final Remapper remapper) {
+ this(Opcodes.ASM6, access, descriptor, methodVisitor, remapper);
+ }
+
+ protected RemappingMethodAdapter(
+ final int api,
+ final int access,
+ final String descriptor,
+ final MethodVisitor methodVisitor,
+ final Remapper remapper) {
+ super(api, access, descriptor, methodVisitor);
+ this.remapper = remapper;
+ }
+
+ @Override
+ public AnnotationVisitor visitAnnotationDefault() {
+ AnnotationVisitor annotationVisitor = super.visitAnnotationDefault();
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitAnnotation(remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public AnnotationVisitor visitTypeAnnotation(
+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public AnnotationVisitor visitParameterAnnotation(
+ final int parameter, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitParameterAnnotation(parameter, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public void visitFrame(
+ final int type,
+ final int numLocal,
+ final Object[] local,
+ final int numStack,
+ final Object[] stack) {
+ super.visitFrame(
+ type, numLocal, remapEntries(numLocal, local), numStack, remapEntries(numStack, stack));
+ }
+
+ private Object[] remapEntries(final int numTypes, final Object[] entries) {
+ if (entries == null) {
+ return entries;
+ }
+ Object[] remappedEntries = null;
+ for (int i = 0; i < numTypes; ++i) {
+ if (entries[i] instanceof String) {
+ if (remappedEntries == null) {
+ remappedEntries = new Object[numTypes];
+ System.arraycopy(entries, 0, remappedEntries, 0, numTypes);
+ }
+ remappedEntries[i] = remapper.mapType((String) entries[i]);
+ }
+ }
+ return remappedEntries == null ? entries : remappedEntries;
+ }
+
+ @Override
+ public void visitFieldInsn(
+ final int opcode, final String owner, final String name, final String descriptor) {
+ super.visitFieldInsn(
+ opcode,
+ remapper.mapType(owner),
+ remapper.mapFieldName(owner, name, descriptor),
+ remapper.mapDesc(descriptor));
+ }
+
+ @Deprecated
+ @Override
+ public void visitMethodInsn(
+ final int opcode, final String owner, final String name, final String descriptor) {
+ if (api >= Opcodes.ASM5) {
+ super.visitMethodInsn(opcode, owner, name, descriptor);
+ return;
+ }
+ doVisitMethodInsn(opcode, owner, name, descriptor, opcode == Opcodes.INVOKEINTERFACE);
+ }
+
+ @Override
+ public void visitMethodInsn(
+ final int opcode,
+ final String owner,
+ final String name,
+ final String descriptor,
+ final boolean isInterface) {
+ if (api < Opcodes.ASM5) {
+ super.visitMethodInsn(opcode, owner, name, descriptor, isInterface);
+ return;
+ }
+ doVisitMethodInsn(opcode, owner, name, descriptor, isInterface);
+ }
+
+ private void doVisitMethodInsn(
+ final int opcode,
+ final String owner,
+ final String name,
+ final String descriptor,
+ final boolean isInterface) {
+ // Calling super.visitMethodInsn requires to call the correct version
+ // depending on this.api (otherwise infinite loops can occur). To
+ // simplify and to make it easier to automatically remove the backward
+ // compatibility code, we inline the code of the overridden method here.
+ // IMPORTANT: THIS ASSUMES THAT visitMethodInsn IS NOT OVERRIDDEN IN
+ // LocalVariableSorter.
+ if (mv != null) {
+ mv.visitMethodInsn(
+ opcode,
+ remapper.mapType(owner),
+ remapper.mapMethodName(owner, name, descriptor),
+ remapper.mapMethodDesc(descriptor),
+ isInterface);
+ }
+ }
+
+ @Override
+ public void visitInvokeDynamicInsn(
+ final String name,
+ final String descriptor,
+ final Handle bootstrapMethodHandle,
+ final Object... bootstrapMethodArguments) {
+ for (int i = 0; i < bootstrapMethodArguments.length; i++) {
+ bootstrapMethodArguments[i] = remapper.mapValue(bootstrapMethodArguments[i]);
+ }
+ super.visitInvokeDynamicInsn(
+ remapper.mapInvokeDynamicMethodName(name, descriptor),
+ remapper.mapMethodDesc(descriptor),
+ (Handle) remapper.mapValue(bootstrapMethodHandle),
+ bootstrapMethodArguments);
+ }
+
+ @Override
+ public void visitTypeInsn(final int opcode, final String type) {
+ super.visitTypeInsn(opcode, remapper.mapType(type));
+ }
+
+ @Override
+ public void visitLdcInsn(final Object value) {
+ super.visitLdcInsn(remapper.mapValue(value));
+ }
+
+ @Override
+ public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) {
+ super.visitMultiANewArrayInsn(remapper.mapDesc(descriptor), numDimensions);
+ }
+
+ @Override
+ public AnnotationVisitor visitInsnAnnotation(
+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitInsnAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public void visitTryCatchBlock(
+ final Label start, final Label end, final Label handler, final String type) {
+ super.visitTryCatchBlock(start, end, handler, type == null ? null : remapper.mapType(type));
+ }
+
+ @Override
+ public AnnotationVisitor visitTryCatchAnnotation(
+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitTryCatchAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+
+ @Override
+ public void visitLocalVariable(
+ final String name,
+ final String descriptor,
+ final String signature,
+ final Label start,
+ final Label end,
+ final int index) {
+ super.visitLocalVariable(
+ name,
+ remapper.mapDesc(descriptor),
+ remapper.mapSignature(signature, true),
+ start,
+ end,
+ index);
+ }
+
+ @Override
+ public AnnotationVisitor visitLocalVariableAnnotation(
+ final int typeRef,
+ final TypePath typePath,
+ final Label[] start,
+ final Label[] end,
+ final int[] index,
+ final String descriptor,
+ final boolean visible) {
+ AnnotationVisitor annotationVisitor =
+ super.visitLocalVariableAnnotation(
+ typeRef, typePath, start, end, index, remapper.mapDesc(descriptor), visible);
+ return annotationVisitor == null
+ ? annotationVisitor
+ : new RemappingAnnotationAdapter(annotationVisitor, remapper);
+ }
+}
diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java
new file mode 100644
index 0000000..1553cd5
--- /dev/null
+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java
@@ -0,0 +1,157 @@
+// ASM: a very small and fast Java bytecode manipulation framework
+// Copyright (c) 2000-2011 INRIA, France Telecom
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the copyright holders nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+// THE POSSIBILITY OF SUCH DAMAGE.
+
+package org.objectweb.asm.commons;
+
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.signature.SignatureVisitor;
+
+/**
+ * A {@link SignatureVisitor} adapter for type mapping.
+ *
+ * @deprecated use {@link SignatureRemapper} instead.
+ * @author Eugene Kuleshov
+ */
+@Deprecated
+public class RemappingSignatureAdapter extends SignatureVisitor {
+
+ private final SignatureVisitor signatureVisitor;
+
+ private final Remapper remapper;
+
+ private String className;
+
+ public RemappingSignatureAdapter(
+ final SignatureVisitor signatureVisitor, final Remapper remapper) {
+ this(Opcodes.ASM6, signatureVisitor, remapper);
+ }
+
+ protected RemappingSignatureAdapter(
+ final int api, final SignatureVisitor signatureVisitor, final Remapper remapper) {
+ super(api);
+ this.signatureVisitor = signatureVisitor;
+ this.remapper = remapper;
+ }
+
+ @Override
+ public void visitClassType(final String name) {
+ className = name;
+ signatureVisitor.visitClassType(remapper.mapType(name));
+ }
+
+ @Override
+ public void visitInnerClassType(final String name) {
+ String remappedOuter = remapper.mapType(className) + '$';
+ className = className + '$' + name;
+ String remappedName = remapper.mapType(className);
+ int index =
+ remappedName.startsWith(remappedOuter)
+ ? remappedOuter.length()
+ : remappedName.lastIndexOf('$') + 1;
+ signatureVisitor.visitInnerClassType(remappedName.substring(index));
+ }
+
+ @Override
+ public void visitFormalTypeParameter(final String name) {
+ signatureVisitor.visitFormalTypeParameter(name);
+ }
+
+ @Override
+ public void visitTypeVariable(final String name) {
+ signatureVisitor.visitTypeVariable(name);
+ }
+
+ @Override
+ public SignatureVisitor visitArrayType() {
+ signatureVisitor.visitArrayType();
+ return this;
+ }
+
+ @Override
+ public void visitBaseType(final char descriptor) {
+ signatureVisitor.visitBaseType(descriptor);
+ }
+
+ @Override
+ public SignatureVisitor visitClassBound() {
+ signatureVisitor.visitClassBound();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitExceptionType() {
+ signatureVisitor.visitExceptionType();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitInterface() {
+ signatureVisitor.visitInterface();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitInterfaceBound() {
+ signatureVisitor.visitInterfaceBound();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitParameterType() {
+ signatureVisitor.visitParameterType();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitReturnType() {
+ signatureVisitor.visitReturnType();
+ return this;
+ }
+
+ @Override
+ public SignatureVisitor visitSuperclass() {
+ signatureVisitor.visitSuperclass();
+ return this;
+ }
+
+ @Override
+ public void visitTypeArgument() {
+ signatureVisitor.visitTypeArgument();
+ }
+
+ @Override
+ public SignatureVisitor visitTypeArgument(final char wildcard) {
+ signatureVisitor.visitTypeArgument(wildcard);
+ return this;
+ }
+
+ @Override
+ public void visitEnd() {
+ signatureVisitor.visitEnd();
+ }
+}
--
2.26.0

@ -1,11 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>9.1</version>
<name>asm-util</name>
<description>Utilities for ASM, a very small and fast Java bytecode manipulation framework</description>
<artifactId>asm</artifactId>
<version>7.3.1</version>
<name>asm</name>
<description>ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
@ -70,26 +76,21 @@
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.1</version>
<scope>compile</scope>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>9.1</version>
<scope>compile</scope>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
<version>9.1</version>
<scope>compile</scope>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.1</version>
<name>asm</name>
<description>ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
<url>http://www.ow2.org/</url>
</organization>
<licenses>
<license>
<name>BSD-3-Clause</name>
<url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
<developer>
<id>ebruneton</id>
<name>Eric Bruneton</name>
<email>ebruneton@free.fr</email>
<roles>
<role>Creator</role>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<id>eu</id>
<name>Eugene Kuleshov</name>
<email>eu@javatx.org</email>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<id>forax</id>
<name>Remi Forax</name>
<email>forax@univ-mlv.fr</email>
<roles>
<role>Java Developer</role>
</roles>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>ASM Users List</name>
<subscribe>https://mail.ow2.org/wws/subscribe/asm</subscribe>
<post>asm@objectweb.org</post>
<archive>https://mail.ow2.org/wws/arc/asm/</archive>
</mailingList>
<mailingList>
<name>ASM Team List</name>
<subscribe>https://mail.ow2.org/wws/subscribe/asm-team</subscribe>
<post>asm-team@objectweb.org</post>
<archive>https://mail.ow2.org/wws/arc/asm-team/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://gitlab.ow2.org/asm/asm/</connection>
<developerConnection>scm:git:https://gitlab.ow2.org/asm/asm/</developerConnection>
<url>https://gitlab.ow2.org/asm/asm/</url>
</scm>
<issueManagement>
<url>https://gitlab.ow2.org/asm/asm/issues</url>
</issueManagement>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-all</artifactId>
<version>@VERSION@</version>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>@VERSION@</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<name>asm-analysis</name>
<description>Static code analysis API of ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
@ -71,13 +77,26 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<name>asm-commons</name>
<description>Usefull class adapters based on ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
@ -71,25 +77,44 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<name>asm-test</name>
<description>Utilities for testing ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
@ -71,19 +77,20 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<version>5.3.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.7.0</version>
<version>5.3.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<name>asm-tree</name>
<description>Tree API of ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
@ -71,13 +77,26 @@
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.1</version>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
</project>

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.ow2</groupId>
<artifactId>ow2</artifactId>
<version>1.5</version>
</parent>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>7.3.1</version>
<name>asm-util</name>
<description>Utilities for ASM, a very small and fast Java bytecode manipulation framework</description>
<url>http://asm.ow2.io/</url>
<inceptionYear>2000</inceptionYear>
<organization>
<name>OW2</name>
<url>http://www.ow2.org/</url>
</organization>
<licenses>
<license>
<name>BSD-3-Clause</name>
<url>https://asm.ow2.io/license.html</url>
</license>
</licenses>
<developers>
<developer>
<id>ebruneton</id>
<name>Eric Bruneton</name>
<email>ebruneton@free.fr</email>
<roles>
<role>Creator</role>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<id>eu</id>
<name>Eugene Kuleshov</name>
<email>eu@javatx.org</email>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<id>forax</id>
<name>Remi Forax</name>
<email>forax@univ-mlv.fr</email>
<roles>
<role>Java Developer</role>
</roles>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>ASM Users List</name>
<subscribe>https://mail.ow2.org/wws/subscribe/asm</subscribe>
<post>asm@objectweb.org</post>
<archive>https://mail.ow2.org/wws/arc/asm/</archive>
</mailingList>
<mailingList>
<name>ASM Team List</name>
<subscribe>https://mail.ow2.org/wws/subscribe/asm-team</subscribe>
<post>asm-team@objectweb.org</post>
<archive>https://mail.ow2.org/wws/arc/asm-team/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://gitlab.ow2.org/asm/asm/</connection>
<developerConnection>scm:git:https://gitlab.ow2.org/asm/asm/</developerConnection>
<url>https://gitlab.ow2.org/asm/asm/</url>
</scm>
<issueManagement>
<url>https://gitlab.ow2.org/asm/asm/issues</url>
</issueManagement>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-tree</artifactId>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-analysis</artifactId>
<version>7.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-test</artifactId>
<version>7.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

@ -6,15 +6,15 @@ version="$(sed -n 's/Version:\s*//p' *.spec)"
gittag="ASM_${version//./_}"
# RETRIEVE
wget "https://gitlab.ow2.org/asm/asm/-/archive/${gittag}/asm-${gittag}.tar.gz" -O "${name}-${version}.orig.tar.gz"
wget "https://gitlab.ow2.org/asm/asm/repository/${gittag}/archive.tar.gz#/${name}-${version}.tar.gz" -O "${name}-${version}.orig.tar.gz"
rm -rf tarball-tmp
mkdir tarball-tmp
pushd tarball-tmp
tar -xzf "../${name}-${version}.orig.tar.gz"
cd tarball-tmp
tar xf "../${name}-${version}.orig.tar.gz"
# Rename dir not to contain commit
mv asm-${gittag} ${name}-${version}
mv asm-${gittag}-* ${name}-${version}
# CLEAN TARBALL
# Remove all jar files
@ -23,6 +23,6 @@ find -name '*.jar' -delete
find */asm{,-analysis,-commons} -name '*.class' -delete
rm -r */gradle
tar -czf "../${name}-${version}.tar.gz" *
popd
tar cf "../${name}-${version}.tar.gz" *
cd ..
rm -r tarball-tmp "${name}-${version}.orig.tar.gz"

@ -13,7 +13,9 @@
<module>asm</module>
<module>asm-analysis</module>
<module>asm-commons</module>
<module>asm-test</module>
<module>asm-tree</module>
<module>asm-util</module>
<module>asm-all</module>
</modules>
</project>

@ -1,11 +1,12 @@
%bcond_with bootstrap
%bcond_without junit5
%bcond_without osgi
Name: objectweb-asm
Version: 9.1
Release: 6%{?dist}
Version: 7.3.1
Release: 3%{?dist}
Summary: Java bytecode manipulation and analysis framework
License: BSD
URL: https://asm.ow2.org/
URL: http://asm.ow2.org/
BuildArch: noarch
# ./generate-tarball.sh
@ -17,12 +18,33 @@ Source4: https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/%{version
Source5: https://repo1.maven.org/maven2/org/ow2/asm/asm-test/%{version}/asm-test-%{version}.pom
Source6: https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/%{version}/asm-tree-%{version}.pom
Source7: https://repo1.maven.org/maven2/org/ow2/asm/asm-util/%{version}/asm-util-%{version}.pom
# We still want to create an "all" uberjar, so this is a custom pom to generate it
# TODO: Fix other packages to no longer depend on "asm-all" so we can drop this
Source8: asm-all.pom
# The source contains binary jars that cannot be verified for licensing and could be proprietary
Source9: generate-tarball.sh
Source9: generate-tarball.sh
# Revert upstream change https://gitlab.ow2.org/asm/asm/-/commit/2a58bc9bcf2ea6eee03e973d1df4cf9312573c9d
# To restore some deprecations that were deleted and broke the API
Patch0: 0001-Revert-upstream-change-2a58bc9.patch
BuildRequires: maven-local
%if %{with bootstrap}
BuildRequires: javapackages-bootstrap
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
BuildRequires: mvn(org.ow2:ow2:pom:)
%if %{with junit5}
BuildRequires: mvn(org.codehaus.janino:janino)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter-api)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter-params)
BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform)
%endif
%if %{with osgi}
# asm-all needs to be in pluginpath for BND. If this self-dependency
# becomes a problem then ASM core will have to be build from source
# with javac before main maven build, just like bnd-module-plugin
BuildRequires: objectweb-asm >= 6
%endif
# Explicit javapackages-tools requires since asm-processor script uses
@ -45,22 +67,81 @@ This package provides %{summary}.
%prep
%setup -q
%patch0 -p1
# A custom parent pom to aggregate the build
cp -p %{SOURCE1} pom.xml
%if %{without junit5}
%pom_disable_module asm-test
%endif
# Insert poms into modules
for pom in asm asm-analysis asm-commons asm-test asm-tree asm-util; do
cp -p $RPM_SOURCE_DIR/${pom}-%{version}.pom $pom/pom.xml
%pom_remove_parent $pom
# Fix junit5 configuration
%if %{with junit5}
%pom_add_dep org.junit.jupiter:junit-jupiter-engine:5.1.0:test $pom
%pom_add_plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.0 $pom
%endif
%if %{with osgi}
if [ "$pom" != "asm-test" ] ; then
# Make into OSGi bundles
bsn="org.objectweb.${pom//-/.}"
%pom_xpath_inject pom:project "<packaging>bundle</packaging>" $pom
%pom_add_plugin org.apache.felix:maven-bundle-plugin:3.5.0 $pom \
" <extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>$bsn</Bundle-SymbolicName>
<Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
<_removeheaders>Bnd-LastModified,Build-By,Created-By,Include-Resource,Require-Capability,Tool</_removeheaders>
<_pluginpath>$(pwd)/tools/bnd-module-plugin/bnd-module-plugin.jar, $(find-jar objectweb-asm/asm-all)</_pluginpath>
<_plugin>org.objectweb.asm.tools.ModuleInfoBndPlugin;</_plugin>
</instructions>
</configuration>"
fi
%endif
done
# Disable tests that use unlicensed class files
sed -i -e '/testToByteArray_computeMaxs_largeSubroutines/i@org.junit.jupiter.api.Disabled("missing class file")' \
asm/src/test/java/org/objectweb/asm/ClassWriterTest.java
sed -i -e '/testAnalyze_mergeWithJsrReachableFromTwoDifferentPaths/i@org.junit.jupiter.api.Disabled("missing class file")' \
asm-analysis/src/test/java/org/objectweb/asm/tree/analysis/AnalyzerWithBasicInterpreterTest.java
sed -i -e '/testAllMethods_issue317586()/i@org.junit.jupiter.api.Disabled("missing class file")' \
asm-commons/src/test/java/org/objectweb/asm/commons/LocalVariablesSorterTest.java
# Remove failing test SerialVersionUidAdderTest due to missing class files
rm asm-commons/src/test/java/org/objectweb/asm/commons/SerialVersionUidAdderTest.java
# Insert asm-all pom
mkdir -p asm-all
sed 's/@VERSION@/%{version}/g' %{SOURCE8} > asm-all/pom.xml
# Remove invalid self-dependency
%pom_remove_dep org.ow2.asm:asm-test asm-test
# Compat aliases
%mvn_alias :asm-all org.ow2.asm:asm-debug-all
# No need to ship the custom parent pom
%mvn_package :asm-aggregator __noinstall
# Don't ship the test framework to avoid runtime dep on junit
%mvn_package :asm-test __noinstall
%build
# Must compile bnd plugin first, which is used to generate Java 9 module-info.class files
pushd tools/bnd-module-plugin
javac -sourcepath ../../asm/src/main/java/ -cp $(build-classpath aqute-bnd) $(find -name *.java)
jar cf bnd-module-plugin.jar -C src/main/java org
popd
%if %{with junit5}
%mvn_build -- -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
%else
%mvn_build -f -- -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
%endif
%install
%mvn_install
@ -75,49 +156,9 @@ done
%license LICENSE.txt
%changelog
* Tue Nov 19 2024 Marián Konček <mkoncek@redhat.com> - 9.1-6
- Rebuild with regenerated Requires on Java
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 9.1-5
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 09 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 9.1-4
- Rebuild to workaround DistroBaker issue
* Tue Jun 08 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 9.1-3
- Bootstrap Maven for CentOS Stream 9
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 9.1-2
- Bootstrap build
- Non-bootstrap build
* Fri May 14 2021 Marian Koncek <mkoncek@redhat.com> - 9.1-1
- Update to upstream version 9.1
* Fri Feb 19 2021 Mat Booth <mat.booth@redhat.com> - 9.1-1
- Update to latest upstream release
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Sep 25 2020 Marian Koncek <mkoncek@redhat.com> - 9.0-1
- Update to upstream version 9.0
* Fri Aug 14 2020 Jerry James <loganjerry@gmail.com> - 8.0.1-1
- Version 8.0.1
- Add 0002-Catch-CompileException-in-test.patch to fix compilation of a test
- Make generate-tarball.sh actually compress the tarball
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.3.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 7.3.1-3
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Mon Jun 22 2020 Marian Koncek <mkoncek@redhat.com> - 8.0.1-1
- Update to upstream version 8.0.1
* Wed May 06 2020 Mat Booth <mat.booth@redhat.com> - 7.3.1-2
- Revert an upstream change to prevent breaking API change
@ -127,24 +168,9 @@ done
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Jan 21 2020 Marian Koncek <mkoncek@redhat.com> - 7.3.1-1
- Update to upstream version 7.3.1
* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 7.2-2
- Mass rebuild for javapackages-tools 201902
* Thu Oct 17 2019 Marian Koncek <mkoncek@redhat.com> - 7.2-1
- Update to upstream version 7.2
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 7.1-2
- Mass rebuild for javapackages-tools 201901
* Mon May 06 2019 Severin Gehwolf <sgehwolf@redhat.com> - 7.1-1
- Update to latest upstream 7.1 release.
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
@ -338,4 +364,4 @@ done
- Upgrade to 2.1
* Fri Mar 11 2005 Sebastiano Vigna <vigna at acm.org> 0:2.0.RC1-1jpp
- First release of the 2.0 line.
- First release of the 2.0 line.
Loading…
Cancel
Save