summaryrefslogtreecommitdiffstats
path: root/bundle-plugin
diff options
context:
space:
mode:
authorgjoranv <gv@oath.com>2018-05-23 15:56:41 +0200
committergjoranv <gv@oath.com>2018-06-06 11:50:31 +0200
commit16ebaddef46202178d5c6757e466b20f339f7437 (patch)
tree618b4c52ae8697c7efb37ffd168c61800bc28d1e /bundle-plugin
parenta0ce77463abb05a794a09aba7d28d700b82eeec2 (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')
-rw-r--r--bundle-plugin/src/main/scala/com/yahoo/container/plugin/classanalysis/package.scala5
-rw-r--r--bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.scala7
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}
}