diff options
author | gjoranv <gv@oath.com> | 2018-05-23 15:56:41 +0200 |
---|---|---|
committer | gjoranv <gv@oath.com> | 2018-06-06 11:50:31 +0200 |
commit | 16ebaddef46202178d5c6757e466b20f339f7437 (patch) | |
tree | 618b4c52ae8697c7efb37ffd168c61800bc28d1e /bundle-plugin/src | |
parent | a0ce77463abb05a794a09aba7d28d700b82eeec2 (diff) |
Java 9: Do not analyze module-info.class
+ Guard against null internalClassName.
(occurred when module-info.class was visited)
Diffstat (limited to 'bundle-plugin/src')
-rw-r--r-- | bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala | 5 | ||||
-rw-r--r-- | bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala | 7 |
2 files changed, 9 insertions, 3 deletions
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} } |