Skip to content

Commit 0e0f570

Browse files
committed
Small fix and removing directory listings
1 parent 647c547 commit 0e0f570

File tree

1 file changed

+4
-28
lines changed

1 file changed

+4
-28
lines changed

tools/src/main/scala/org/apache/spark/tools/GenerateMIMAIgnore.scala

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import java.util.jar.JarFile
2323
import scala.collection.mutable
2424
import scala.collection.JavaConversions._
2525
import scala.reflect.runtime.universe.runtimeMirror
26-
import scala.util.Try
2726

2827
/**
2928
* A tool for generating classes to be excluded during binary checking with MIMA. It is expected
@@ -113,31 +112,10 @@ object GenerateMIMAIgnore {
113112
val resources = classLoader.getResources(path)
114113

115114
val jars = resources.filter(x => x.getProtocol == "jar")
116-
.map(_.getFile.split(":")(1).split("!")(0))
115+
.map(_.getFile.split(":")(1).split("!")(0)).toSeq
117116
val classesFromJars = jars.map(getClassesFromJar(_, path)).flatten
118117

119-
val dirs = resources.filter(x => x.getProtocol == "file")
120-
.map(x => new File(x.getFile.split(":").last))
121-
val classFromDirs = dirs.map(getClassesFromDir(_, packageName)).flatten
122-
123-
(classFromDirs ++ classesFromJars).map(_.getName).filterNot(shouldExclude).toSet
124-
}
125-
126-
private def getClassesFromDir(directory: File, packageName: String): Seq[Class[_]] = {
127-
val classes = mutable.ArrayBuffer[Class[_]]()
128-
if (!directory.exists()) {
129-
return classes
130-
}
131-
val files = directory.listFiles()
132-
for (file <- files) {
133-
if (file.isDirectory) {
134-
classes ++= getClassesFromDir(file, packageName + "." + file.getName)
135-
} else if (file.getName.endsWith(".class")) {
136-
val className = file.getName.stripSuffix(".class")
137-
classes += Class.forName(packageName + '.' + className)
138-
}
139-
}
140-
classes
118+
classesFromJars.map(_.getName).filterNot(shouldExclude).toSet
141119
}
142120

143121
/**
@@ -146,10 +124,8 @@ object GenerateMIMAIgnore {
146124
private def getClassesFromJar(jarPath: String, packageName: String) = {
147125
val jar = new JarFile(new File(jarPath))
148126
val enums = jar.entries().map(_.getName).filter(_.startsWith(packageName))
149-
val classes = mutable.HashSet[Class[_]]()
150-
for (entry <- enums if entry.endsWith(".class")) {
151-
classes += Class.forName(entry.trim.replaceAll(".class", "").replace('/', '.'))
152-
}
127+
val classes = for (entry <- enums if entry.endsWith(".class"))
128+
yield Class.forName(entry.replace('/', '.').stripSuffix(".class"))
153129
classes
154130
}
155131
}

0 commit comments

Comments
 (0)