diff options
Diffstat (limited to 'bundle-plugin/src')
6 files changed, 15 insertions, 9 deletions
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} } |