[XBEAN-327] asm9 support

git-svn-id: https://svn.apache.org/repos/asf/geronimo/xbean/trunk@1881759 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index d2c4621..b3522c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,7 @@
         -->
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
-        <asm.version>8.0.1</asm.version>
+        <asm.version>9.0-beta</asm.version>
 
         <xbean.automatic.module.name>${project.groupId}</xbean.automatic.module.name>
     </properties>
@@ -226,7 +226,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.xbean</groupId>
-                <artifactId>xbean-asm8-shaded</artifactId>
+                <artifactId>xbean-asm9-shaded</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
@@ -315,7 +315,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.12</version>
+            <version>4.13</version>
             <scope>test</scope>
         </dependency>
 
@@ -455,15 +455,15 @@
         <module>xbean-classpath</module>
         <module>xbean-bundleutils</module>
         <module>xbean-asm-util</module>
+        <module>xbean-asm9-shaded</module>
         <module>xbean-finder</module>
+        <module>xbean-finder-shaded</module>
         <module>xbean-naming</module>
         <module>xbean-reflect</module>
         <module>xbean-blueprint</module>
         <module>xbean-spring</module>
         <module>xbean-telnet</module>
         <module>maven-xbean-plugin</module>
-        <module>xbean-asm8-shaded</module>
-        <module>xbean-finder-shaded</module>
     </modules>
 
     <reporting>
diff --git a/xbean-asm-util/pom.xml b/xbean-asm-util/pom.xml
index 276727b..aaf44b0 100644
--- a/xbean-asm-util/pom.xml
+++ b/xbean-asm-util/pom.xml
@@ -30,7 +30,7 @@
   <name>Apache XBean :: ASM Util</name>
 
   <properties>
-    <xbean.automatic.module.name>${project.groupId}.asm8.util</xbean.automatic.module.name>
+    <xbean.automatic.module.name>${project.groupId}.asm9.util</xbean.automatic.module.name>
   </properties>
 
   <dependencies>
diff --git a/xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/AsmConstants.java b/xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/AsmConstants.java
similarity index 91%
rename from xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/AsmConstants.java
rename to xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/AsmConstants.java
index 20f28c3..313b08f 100644
--- a/xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/AsmConstants.java
+++ b/xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/AsmConstants.java
@@ -14,10 +14,10 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.xbean.asm8.original.commons;
+package org.apache.xbean.asm9.original.commons;
 
 import org.objectweb.asm.Opcodes;
 
 public interface AsmConstants {
-    int ASM_VERSION = Integer.getInteger(AsmConstants.class.getName() + ".ASM_VERSION", Opcodes.ASM8);
+    int ASM_VERSION = Integer.getInteger(AsmConstants.class.getName() + ".ASM_VERSION", Opcodes.ASM9);
 }
diff --git a/xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/EmptyVisitor.java b/xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/EmptyVisitor.java
similarity index 98%
rename from xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/EmptyVisitor.java
rename to xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/EmptyVisitor.java
index 5a70d9e..9bb5706 100644
--- a/xbean-asm-util/src/main/java/org/apache/xbean/asm8/original/commons/EmptyVisitor.java
+++ b/xbean-asm-util/src/main/java/org/apache/xbean/asm9/original/commons/EmptyVisitor.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.xbean.asm8.original.commons;
+package org.apache.xbean.asm9.original.commons;
 
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
@@ -25,7 +25,7 @@
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.TypePath;
 
-import static org.apache.xbean.asm8.original.commons.AsmConstants.ASM_VERSION;
+import static org.apache.xbean.asm9.original.commons.AsmConstants.ASM_VERSION;
 
 public class EmptyVisitor extends ClassVisitor {
     protected final AnnotationVisitor av = new AnnotationVisitor(ASM_VERSION) {
diff --git a/xbean-asm8-shaded/pom.xml b/xbean-asm9-shaded/pom.xml
similarity index 84%
rename from xbean-asm8-shaded/pom.xml
rename to xbean-asm9-shaded/pom.xml
index 8f52ab9..17095ad 100755
--- a/xbean-asm8-shaded/pom.xml
+++ b/xbean-asm9-shaded/pom.xml
@@ -27,7 +27,7 @@
         <groupId>org.apache.xbean</groupId>
         <version>4.18-SNAPSHOT</version>
     </parent>
-    <artifactId>xbean-asm8-shaded</artifactId>
+    <artifactId>xbean-asm9-shaded</artifactId>
     <packaging>bundle</packaging>
     <name>Apache XBean :: ASM shaded (repackaged)</name>
 
@@ -42,9 +42,9 @@
     </licenses>
 
     <properties>
-        <xbean.osgi.export>org.apache.xbean.asm8.shade.commons;version=${asm.version},org.apache.xbean.asm8;version=${asm.version},org.apache.xbean.asm8.signature;version=${asm.version},org.apache.xbean.asm8.commons;version=${asm.version},org.apache.xbean.asm8.tree;version=${asm.version}</xbean.osgi.export>
-        <xbean.osgi.import>org.apache.xbean.asm8.shade.commons;version="[${asm.version},${asm.version}]",org.apache.xbean.asm8;version="[${asm.version},${asm.version}]",org.apache.xbean.asm8.signature;version="[${asm.version},${asm.version}]",org.apache.xbean.asm8.commons;version="[${asm.version},${asm.version}]",org.apache.xbean.asm8.tree;version="[${asm.version},${asm.version}]"</xbean.osgi.import>
-        <xbean.automatic.module.name>${project.groupId}.asm8.shaded</xbean.automatic.module.name>
+        <xbean.osgi.export>org.apache.xbean.asm9.shade.commons;version=${asm.version},org.apache.xbean.asm9;version=${asm.version},org.apache.xbean.asm9.signature;version=${asm.version},org.apache.xbean.asm9.commons;version=${asm.version},org.apache.xbean.asm9.tree;version=${asm.version}</xbean.osgi.export>
+        <xbean.osgi.import>org.apache.xbean.asm9.shade.commons;version="[${asm.version},${asm.version}]",org.apache.xbean.asm9;version="[${asm.version},${asm.version}]",org.apache.xbean.asm9.signature;version="[${asm.version},${asm.version}]",org.apache.xbean.asm9.commons;version="[${asm.version},${asm.version}]",org.apache.xbean.asm9.tree;version="[${asm.version},${asm.version}]"</xbean.osgi.import>
+        <xbean.automatic.module.name>${project.groupId}.asm9.shaded</xbean.automatic.module.name>
     </properties>
 
     <build>
@@ -59,15 +59,16 @@
                             <goal>shade</goal>
                         </goals>
                         <configuration>
+                            <createDependencyReducedPom>false</createDependencyReducedPom>
                             <createSourcesJar>true</createSourcesJar>
                             <relocations>
                                 <relocation> <!-- we need a different package because we build against both -->
-                                    <pattern>org.apache.xbean.asm8.original.commons</pattern>
-                                    <shadedPattern>org.apache.xbean.asm8.shade.commons</shadedPattern>
+                                    <pattern>org.apache.xbean.asm9.original.commons</pattern>
+                                    <shadedPattern>org.apache.xbean.asm9.shade.commons</shadedPattern>
                                 </relocation>
                                 <relocation>
                                     <pattern>org.objectweb.asm</pattern>
-                                    <shadedPattern>org.apache.xbean.asm8</shadedPattern>
+                                    <shadedPattern>org.apache.xbean.asm9</shadedPattern>
                                 </relocation>
                             </relocations>
                             <filters>
@@ -87,7 +88,7 @@
                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                     <manifestEntries>
                                         <Bundle-License>http://asm.ow2.org/license.html</Bundle-License>
-                                        <Bundle-SymbolicName>org.apache.xbean.asm8-shaded</Bundle-SymbolicName>
+                                        <Bundle-SymbolicName>org.apache.xbean.asm9-shaded</Bundle-SymbolicName>
                                         <Export-Package>${xbean.osgi.export}</Export-Package>
                                         <Import-Package>${xbean.osgi.import}</Import-Package>
                                         <Automatic-Module-Name>${xbean.automatic.module.name}</Automatic-Module-Name>
diff --git a/xbean-asm8-shaded/src/main/resources/META-INF/xbean/README.adoc b/xbean-asm9-shaded/src/main/resources/META-INF/xbean/README.adoc
similarity index 100%
rename from xbean-asm8-shaded/src/main/resources/META-INF/xbean/README.adoc
rename to xbean-asm9-shaded/src/main/resources/META-INF/xbean/README.adoc
diff --git a/xbean-finder-shaded/pom.xml b/xbean-finder-shaded/pom.xml
index e550a42..102bdb0 100755
--- a/xbean-finder-shaded/pom.xml
+++ b/xbean-finder-shaded/pom.xml
@@ -33,7 +33,7 @@
 
     <properties>
         <xbean.osgi.export>org.apache.xbean.finder;version=${project.version}</xbean.osgi.export>
-        <xbean.osgi.import>org.apache.xbean.finder;version=${project.version},org.apache.xbean.asm8;version=8,org.apache.xbean.asm8.shade.commons;version=8</xbean.osgi.import>
+        <xbean.osgi.import>org.apache.xbean.finder;version=${project.version},org.apache.xbean.asm9;version=8,org.apache.xbean.asm9.shade.commons;version=8</xbean.osgi.import>
         <xbean.automatic.module.name>${project.groupId}.finder.shaded</xbean.automatic.module.name>
     </properties>
 
@@ -52,12 +52,12 @@
                             <createSourcesJar>true</createSourcesJar>
                             <relocations>
                                 <relocation>
-                                    <pattern>org.apache.xbean.asm8.original.commons.EmptyVisitor</pattern>
-                                    <shadedPattern>org.apache.xbean.asm8.shade.commons.EmptyVisitor</shadedPattern>
+                                    <pattern>org.apache.xbean.asm9.original.commons.EmptyVisitor</pattern>
+                                    <shadedPattern>org.apache.xbean.asm9.shade.commons.EmptyVisitor</shadedPattern>
                                 </relocation>
                                 <relocation>
                                     <pattern>org.objectweb.asm</pattern>
-                                    <shadedPattern>org.apache.xbean.asm8</shadedPattern>
+                                    <shadedPattern>org.apache.xbean.asm9</shadedPattern>
                                 </relocation>
                             </relocations>
                             <filters>
@@ -78,7 +78,7 @@
                                 </includes>
                                 <excludes>
                                     <exclude>*:*:sources</exclude>
-                                    <exclude>org.apache.xbean:xbean-asm8-shaded</exclude>
+                                    <exclude>org.apache.xbean:xbean-asm9-shaded</exclude>
                                     <exclude>org.apache.xbean:xbean-asm-util</exclude>
                                     <exclude>junit:junit</exclude>
                                 </excludes>
@@ -114,7 +114,7 @@
                             org.apache.xbean.finder.*;version=${project.version};-noimport:=true
                         </Export-Package>
                         <Import-Package>
-                            org.apache.xbean.asm8.*;version="[8.0,9.0)",
+                            org.apache.xbean.asm9.*;version="[9.0,10.0)",
                             *
                         </Import-Package>
                         <Private-Package />
@@ -143,7 +143,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.xbean</groupId>
-            <artifactId>xbean-asm8-shaded</artifactId>
+            <artifactId>xbean-asm9-shaded</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/xbean-finder/pom.xml b/xbean-finder/pom.xml
index fd772dd..8aac03c 100644
--- a/xbean-finder/pom.xml
+++ b/xbean-finder/pom.xml
@@ -79,10 +79,10 @@
                             org.apache.xbean.finder.*;version=${project.version};-noimport:=true
                         </Export-Package>
                         <Import-Package>
-                            org.objectweb.asm*;version="[8.0,9.0)",
+                            org.objectweb.asm*;version="[9.0,10.0)",
                             *
                         </Import-Package>
-                        <Private-Package>org.apache.xbean.asm8.original.commons</Private-Package>
+                        <Private-Package>org.apache.xbean.asm9.original.commons</Private-Package>
                         <_removeheaders>
                             Ignore-Package,Private-Package,Include-Resource,Embed-Dependency
                         </_removeheaders>
diff --git a/xbean-finder/src/main/java/org/apache/xbean/finder/AbstractFinder.java b/xbean-finder/src/main/java/org/apache/xbean/finder/AbstractFinder.java
index 37e866b..214c082 100644
--- a/xbean-finder/src/main/java/org/apache/xbean/finder/AbstractFinder.java
+++ b/xbean-finder/src/main/java/org/apache/xbean/finder/AbstractFinder.java
@@ -34,7 +34,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.xbean.asm8.original.commons.EmptyVisitor;
+import org.apache.xbean.asm9.original.commons.EmptyVisitor;
 import org.apache.xbean.finder.util.SingleLinkedList;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.ClassReader;
diff --git a/xbean-finder/src/main/java/org/apache/xbean/finder/AnnotationFinder.java b/xbean-finder/src/main/java/org/apache/xbean/finder/AnnotationFinder.java
index cdacb42..d2024b3 100644
--- a/xbean-finder/src/main/java/org/apache/xbean/finder/AnnotationFinder.java
+++ b/xbean-finder/src/main/java/org/apache/xbean/finder/AnnotationFinder.java
@@ -20,7 +20,7 @@
 
 package org.apache.xbean.finder;
 
-import org.apache.xbean.asm8.original.commons.EmptyVisitor;
+import org.apache.xbean.asm9.original.commons.EmptyVisitor;
 import org.apache.xbean.finder.archive.Archive;
 import org.apache.xbean.finder.util.Classes;
 import org.apache.xbean.finder.util.SingleLinkedList;
diff --git a/xbean-reflect/pom.xml b/xbean-reflect/pom.xml
index c8145e5..eecc3dd 100644
--- a/xbean-reflect/pom.xml
+++ b/xbean-reflect/pom.xml
@@ -51,7 +51,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.xbean</groupId>
-            <artifactId>xbean-asm8-shaded</artifactId>
+            <artifactId>xbean-asm9-shaded</artifactId>
             <version>${project.version}</version>
             <scope>provided</scope>
             <optional>true</optional>
@@ -88,15 +88,15 @@
                         <Import-Package>
                             org.apache.log4j;resolution:=optional,
                             org.apache.commons.logging;resolution:=optional,
-                            org.objectweb.asm;resolution:=optional;version="[8.0,9.0)",
-                            org.objectweb.asm.commons;resolution:=optional;version="[8.0,9.0)",
-                            org.apache.xbean.asm8;resolution:=optional;version="[8.0,9.0)",
-                            org.apache.xbean.asm8.commons;resolution:=optional;version="[8.0,9.0)",
-                            org.apache.xbean.asm8.shade.commons;resolution:=optional;version="[8.0,9.0)",
+                            org.objectweb.asm;resolution:=optional;version="[9.0,10.0)",
+                            org.objectweb.asm.commons;resolution:=optional;version="[9.0,10.0)",
+                            org.apache.xbean.asm9;resolution:=optional;version="[9.0,10.0)",
+                            org.apache.xbean.asm9.commons;resolution:=optional;version="[9.0,10.0)",
+                            org.apache.xbean.asm9.shade.commons;resolution:=optional;version="[9.0,10.0)",
                             javax.*
                         </Import-Package>
                         <Private-Package>
-                            org.apache.xbean.asm8.original.commons
+                            org.apache.xbean.asm9.original.commons
                         </Private-Package>
                         <_removeheaders>
                             Ignore-Package,Private-Package,Include-Resource,Embed-Dependency
diff --git a/xbean-reflect/src/main/java/org/apache/xbean/recipe/AsmParameterNameLoader.java b/xbean-reflect/src/main/java/org/apache/xbean/recipe/AsmParameterNameLoader.java
index ac63215..e0ad4aa 100644
--- a/xbean-reflect/src/main/java/org/apache/xbean/recipe/AsmParameterNameLoader.java
+++ b/xbean-reflect/src/main/java/org/apache/xbean/recipe/AsmParameterNameLoader.java
@@ -36,7 +36,7 @@
 import java.util.Map;
 import java.util.WeakHashMap;
 
-import static org.apache.xbean.asm8.original.commons.AsmConstants.ASM_VERSION;
+import static org.apache.xbean.asm9.original.commons.AsmConstants.ASM_VERSION;
 
 /**
  * Implementation of ParameterNameLoader that uses ASM to read the parameter names from the local variable table in the
diff --git a/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java b/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java
index f383bbf..1172a98 100644
--- a/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java
+++ b/xbean-reflect/src/main/java/org/apache/xbean/recipe/ReflectionUtil.java
@@ -43,7 +43,7 @@
     private static final class ParameterLoader {
         private static ParameterNameLoader PARAMETER_NAME_LOADER;
         static {
-            if (isClassAvailable("org.apache.xbean.asm8.ClassReader")) {
+            if (isClassAvailable("org.apache.xbean.asm9.ClassReader")) {
                 PARAMETER_NAME_LOADER = new XbeanAsmParameterNameLoader();
             } else if (isClassAvailable("org.objectweb.asm.ClassReader")) {
                 PARAMETER_NAME_LOADER = new AsmParameterNameLoader();
@@ -51,8 +51,9 @@
                     || isClassAvailable("org.apache.xbean.asm4.ClassReader")
                     || isClassAvailable("org.apache.xbean.asm5.ClassReader")
                     || isClassAvailable("org.apache.xbean.asm6.ClassReader")
+                    || isClassAvailable("org.apache.xbean.asm8.ClassReader")
                     || isClassAvailable("org.apache.xbean.asm7.ClassReader")) {
-                throw new RuntimeException("Your xbean-asm-shade is too old, please upgrade to xbean-asm8-shade");
+                throw new RuntimeException("Your xbean-asm-shade is too old, please upgrade to xbean-asm9-shaded");
             }
         }
     }
diff --git a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java
index 0da1987..8911860 100644
--- a/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java
+++ b/xbean-reflect/src/main/java/org/apache/xbean/recipe/XbeanAsmParameterNameLoader.java
@@ -17,11 +17,11 @@
  */
 package org.apache.xbean.recipe;
 
-import org.apache.xbean.asm8.ClassReader;
-import org.apache.xbean.asm8.ClassVisitor;
-import org.apache.xbean.asm8.Label;
-import org.apache.xbean.asm8.MethodVisitor;
-import org.apache.xbean.asm8.Type;
+import org.apache.xbean.asm9.ClassReader;
+import org.apache.xbean.asm9.ClassVisitor;
+import org.apache.xbean.asm9.Label;
+import org.apache.xbean.asm9.MethodVisitor;
+import org.apache.xbean.asm9.Type;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -36,7 +36,7 @@
 import java.util.Map;
 import java.util.WeakHashMap;
 
-import static org.apache.xbean.asm8.shade.commons.AsmConstants.ASM_VERSION;
+import static org.apache.xbean.asm9.shade.commons.AsmConstants.ASM_VERSION;
 
 /**
  * Implementation of ParameterNameLoader that uses ASM to read the parameter names from the local variable table in the