diff options
15 files changed, 38 insertions, 33 deletions
diff --git a/bundle-plugin-test/pom.xml b/bundle-plugin-test/pom.xml index 5ae5496b1b0..53be71352c8 100644 --- a/bundle-plugin-test/pom.xml +++ b/bundle-plugin-test/pom.xml @@ -48,6 +48,14 @@ <artifactId>scala-library</artifactId> <scope>provided</scope> </dependency> + + <dependency> + <!-- Added to verify that module-info.class can be handled by bundle-plugin without throwing an exception. --> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>2.3.0</version> + </dependency> + </dependencies> <build> <plugins> diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.scala index 903ad94e9e8..539684f2024 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.scala @@ -9,7 +9,7 @@ import collection.mutable * Picks up classes used in class files. * @author tonytv */ -private class AnalyzeClassVisitor extends ClassVisitor(Opcodes.ASM5) with AnnotationVisitorTrait with AttributeVisitorTrait { +private class AnalyzeClassVisitor extends ClassVisitor(Opcodes.ASM6) with AnnotationVisitorTrait with AttributeVisitorTrait { private var name : String = null protected val imports : ImportsSet = mutable.Set() protected var exportPackageAnnotation: Option[ExportPackageAnnotation] = None @@ -32,7 +32,7 @@ private class AnalyzeClassVisitor extends ClassVisitor(Opcodes.ASM5) with Annota imports ++= getClassName(Type.getType(desc)).toList AnalyzeSignatureVisitor.analyzeField(signature, this) - new FieldVisitor(Opcodes.ASM5) with SubVisitorTrait with AttributeVisitorTrait with AnnotationVisitorTrait { + new FieldVisitor(Opcodes.ASM6) with SubVisitorTrait with AttributeVisitorTrait with AnnotationVisitorTrait { val analyzeClassVisitor = AnalyzeClassVisitor.this override def visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor = super.visitAnnotation(desc, visible) @@ -68,7 +68,7 @@ private class AnalyzeClassVisitor extends ClassVisitor(Opcodes.ASM5) with Annota def visitExportPackage(): AnnotationVisitor = { def defaultVersionValue[T](name: String) = classOf[Version].getMethod(name).getDefaultValue().asInstanceOf[T] - new AnnotationVisitor(Opcodes.ASM5) { + new AnnotationVisitor(Opcodes.ASM6) { var major: Int = defaultVersionValue("major") var minor: Int = defaultVersionValue("minor") var micro: Int = defaultVersionValue("micro") diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeMethodVisitor.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeMethodVisitor.scala index 535ee2832c8..a8032b6a912 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeMethodVisitor.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeMethodVisitor.scala @@ -8,7 +8,7 @@ import org.objectweb.asm._ * @author tonytv */ private class AnalyzeMethodVisitor(val analyzeClassVisitor : AnalyzeClassVisitor) - extends MethodVisitor(Opcodes.ASM5) with AnnotationVisitorTrait with AttributeVisitorTrait with SubVisitorTrait { + extends MethodVisitor(Opcodes.ASM6) with AnnotationVisitorTrait with AttributeVisitorTrait with SubVisitorTrait { override def visitParameterAnnotation(parameter: Int, desc: String, visible: Boolean): AnnotationVisitor = super.visitParameterAnnotation(parameter, desc, visible) diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeSignatureVisitor.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeSignatureVisitor.scala index 58a43b04d20..5bb8304cf1e 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeSignatureVisitor.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnalyzeSignatureVisitor.scala @@ -10,7 +10,7 @@ import org.objectweb.asm.signature.{SignatureReader, SignatureVisitor} */ private class AnalyzeSignatureVisitor(val analyzeClassVisitor: AnalyzeClassVisitor) - extends SignatureVisitor(Opcodes.ASM5) + extends SignatureVisitor(Opcodes.ASM6) with SubVisitorTrait { diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnnotationVisitorTrait.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnnotationVisitorTrait.scala index 0ceaced1440..0bf6ee4a6b4 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnnotationVisitorTrait.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/AnnotationVisitorTrait.scala @@ -17,7 +17,7 @@ private trait AnnotationVisitorTrait { } def visitAnnotationDefault(): AnnotationVisitor = - new AnnotationVisitor(Opcodes.ASM5) { + new AnnotationVisitor(Opcodes.ASM6) { override def visit(name: String, value: AnyRef) {} override def visitEnum(name: String, desc: String, value: String) { diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala index d217f720d1a..631884c58e3 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala @@ -8,7 +8,10 @@ package object classanalysis { type ImportsSet = mutable.Set[String] def internalNameToClassName(internalClassName: String) : Option[String] = { - getClassName(Type.getObjectType(internalClassName)) + internalClassName match { + case null => None + case _ => getClassName(Type.getObjectType(internalClassName)) + } } def getClassName(aType: Type): Option[String] = { diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala index d66edf88702..67ce45ed7c6 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala @@ -210,7 +210,7 @@ class GenerateOsgiManifestMojo extends AbstractMojo { private def analyzeProjectClasses() : PackageTally = { val outputDirectory = new File(project.getBuild.getOutputDirectory) - val analyzedClasses = allDescendantFiles(outputDirectory).filter(_.getName.endsWith(".class")). + val analyzedClasses = allDescendantFiles(outputDirectory).filter(file => isClassToAnalyze(file.getName)). map(Analyze.analyzeClass) PackageTally.fromAnalyzedClassFiles(analyzedClasses) @@ -230,7 +230,7 @@ class GenerateOsgiManifestMojo extends AbstractMojo { for { entry <- toStream(jarFile.entries()) if !entry.isDirectory - if entry.getName.endsWith(".class") + if isClassToAnalyze(entry.getName) metaData = analyzeClass(jarFile, entry) } yield metaData @@ -278,6 +278,9 @@ object GenerateOsgiManifestMojo { } } + def isClassToAnalyze(name: String): Boolean = + name.endsWith(".class") && ! name.endsWith("module-info.class") + def emptyToNone(str: String) = Option(str) map {_.trim} filterNot {_.isEmpty} } diff --git a/config-model-fat/pom.xml b/config-model-fat/pom.xml index 3ef9925510c..649d8a37bf6 100644 --- a/config-model-fat/pom.xml +++ b/config-model-fat/pom.xml @@ -25,6 +25,13 @@ <artifactId>guava</artifactId> <version>13.0.1</version> </dependency> + <dependency> + <!-- TODO: can probably be removed. Added to get the same set of embedded deps with maven-bundle-plugin 3.5 as with 2.4. --> + <groupId>com.yahoo.vespa</groupId> + <artifactId>annotations</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>com.yahoo.vespa</groupId> @@ -114,8 +121,6 @@ <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> - <!-- version >= 2.5.0 causes java.lang.ArrayIndexOutOfBoundsException: 176 --> - <version>2.4.0</version> <extensions>true</extensions> <configuration> <instructions> diff --git a/container-dev/pom.xml b/container-dev/pom.xml index 53153a05c4a..ff67e8db9fe 100644 --- a/container-dev/pom.xml +++ b/container-dev/pom.xml @@ -123,10 +123,6 @@ <version>${project.version}</version> <exclusions> <exclusion> - <groupId>org.ow2.asm</groupId> - <artifactId>asm</artifactId> - </exclusion> - <exclusion> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> </exclusion> diff --git a/container-jersey2/pom.xml b/container-jersey2/pom.xml index 26dfa762032..76ff21dc028 100644 --- a/container-jersey2/pom.xml +++ b/container-jersey2/pom.xml @@ -52,7 +52,6 @@ <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> - <version>5.0.3</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> diff --git a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/ResourceOrProviderClassVisitor.scala b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/ResourceOrProviderClassVisitor.scala index c015f11360e..52674026c25 100644 --- a/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/ResourceOrProviderClassVisitor.scala +++ b/container-jersey2/src/main/scala/com/yahoo/container/servlet/jersey/ResourceOrProviderClassVisitor.scala @@ -10,7 +10,7 @@ import org.objectweb.asm.{ClassVisitor, Opcodes, Type, AnnotationVisitor, ClassR /** * @author tonytv */ -class ResourceOrProviderClassVisitor private () extends ClassVisitor(Opcodes.ASM5) { +class ResourceOrProviderClassVisitor private () extends ClassVisitor(Opcodes.ASM6) { private var className: String = null private var isPublic: Boolean = false private var isAbstract = false diff --git a/container/pom.xml b/container/pom.xml index d252a5eee4a..32a7947d6d5 100644 --- a/container/pom.xml +++ b/container/pom.xml @@ -21,6 +21,12 @@ <groupId>com.yahoo.vespa</groupId> <artifactId>container-dev</artifactId> <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.ow2.asm</groupId> + <artifactId>asm</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>com.yahoo.vespa</groupId> diff --git a/jdisc_http_service/pom.xml b/jdisc_http_service/pom.xml index 6373189e738..f41994c4916 100644 --- a/jdisc_http_service/pom.xml +++ b/jdisc_http_service/pom.xml @@ -175,7 +175,6 @@ <extensions>true</extensions> <configuration> <discPreInstallBundle> - asm-debug-all-${asm-debug-all.version}.jar, bcpkix-jdk15on-${bouncycastle.version}.jar, bcprov-jdk15on-${bouncycastle.version}.jar, javax.servlet-api-3.1.0.jar, @@ -188,8 +187,6 @@ jetty-servlet-${jetty.version}.jar, jetty-servlets-${jetty.version}.jar, jetty-util-${jetty.version}.jar, - org.apache.aries.spifly.dynamic.bundle-${aries.spifly.version}.jar, - org.apache.aries.util-${aries.util.version}.jar, component-jar-with-dependencies.jar </discPreInstallBundle> </configuration> diff --git a/jdisc_jetty/pom.xml b/jdisc_jetty/pom.xml index 0f8a5ba19e2..404476f7bf2 100644 --- a/jdisc_jetty/pom.xml +++ b/jdisc_jetty/pom.xml @@ -16,10 +16,6 @@ <packaging>jar</packaging> <dependencies> <dependency> - <groupId>org.apache.aries.spifly</groupId> - <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId> - </dependency> - <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-continuation</artifactId> </dependency> diff --git a/parent/pom.xml b/parent/pom.xml index 411cc5ede9e..10e93d4ffbf 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -81,7 +81,7 @@ <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> - <version>2.4.0</version> + <version>3.5.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -498,11 +498,6 @@ <version>${antlr4.version}</version> </dependency> <dependency> - <groupId>org.apache.aries.spifly</groupId> - <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId> - <version>${aries.spifly.version}</version> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> @@ -686,9 +681,6 @@ <properties> <antlr.version>3.5.2</antlr.version> <antlr4.version>4.5</antlr4.version> - <aries.spifly.version>1.0.8</aries.spifly.version> - <aries.util.version>1.0.0</aries.util.version> - <asm-debug-all.version>5.0.3</asm-debug-all.version> <!-- Athenz dependencies. Make sure these dependencies matches those in Vespa's internal repositories --> <athenz.version>1.7.43</athenz.version> <commons-lang.version>2.6</commons-lang.version> |