-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
Hi there! Was checking out the library, which looks really nice. I added the dependency through Maven Central (using sbt 0.13.7) via libraryDependencies += "org.clapper" %% "classutil" % "1.0.5", so not sure if that would be an issue since the instructions reference bin-tray. I'm compiling with Scala 2.10.4, by the way.
Anyway, I seem to have encountered an exception when invoking mainClassFinder.getClasses() where mainClassFinder is a ClassFinder instance that is using the current classpath. I'm not sure if this is a problem from me adding the dependency from Maven central - FYI, I tried bin-tray afterwards with same result - or if it's an issue with my classpath or something else. Any guidance?
Code
import java.io.File
import org.clapper.classutil.{ClassInfo, ClassFinder}
class ModuleManager(extraClassPaths: Seq[String] = Nil) {
private lazy val mainClassFinder: ClassFinder = ClassFinder()
private lazy val extraClassFinder: Option[ClassFinder] = Option(
if (extraClassPaths.nonEmpty) ClassFinder(extraClassPaths.map(new File(_)))
else null
)
private lazy val allClasses = mainClassFinder.getClasses() ++
extraClassFinder.map(_.getClasses()).getOrElse(Stream.empty[ClassInfo])
private lazy val allClassMap =
ClassFinder.classInfoMap(allClasses.toIterator)
lazy val modules = ClassFinder.concreteSubclasses(
classOf[ModuleLike].getName,
allClassMap
)
modules.foreach(println)
}Exception
Exception in thread "main" java.lang.IncompatibleClassChangeError: class org.clapper.classutil.asm.EmptyVisitor has interface org.objectweb.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.clapper.classutil.asm.ClassFile$.load(ClassFinderImpl.scala:190)
at org.clapper.classutil.ClassFinder.org$clapper$classutil$ClassFinder$$classData(ClassFinder.scala:406)
at org.clapper.classutil.ClassFinder$$anonfun$2.apply(ClassFinder.scala:364)
at org.clapper.classutil.ClassFinder$$anonfun$2.apply(ClassFinder.scala:364)
at scala.collection.immutable.Stream.map(Stream.scala:376)
at org.clapper.classutil.ClassFinder.processOpenZip(ClassFinder.scala:364)
at org.clapper.classutil.ClassFinder.processJar(ClassFinder.scala:318)
at org.clapper.classutil.ClassFinder.findClassesIn(ClassFinder.scala:307)
at org.clapper.classutil.ClassFinder.find(ClassFinder.scala:299)
at org.clapper.classutil.ClassFinder.getClasses(ClassFinder.scala:289)
at com.ibm.spark.kernel.module.ModuleManager.allClasses$lzycompute(ModuleManager.scala:37)
at com.ibm.spark.kernel.module.ModuleManager.allClasses(ModuleManager.scala:37)
at com.ibm.spark.kernel.module.ModuleManager.allClassMap$lzycompute(ModuleManager.scala:40)
at com.ibm.spark.kernel.module.ModuleManager.allClassMap(ModuleManager.scala:39)
at com.ibm.spark.kernel.module.ModuleManager.modules$lzycompute(ModuleManager.scala:45)
at com.ibm.spark.kernel.module.ModuleManager.modules(ModuleManager.scala:42)
at com.ibm.spark.kernel.module.ModuleManager.<init>(ModuleManager.scala:48)Metadata
Metadata
Assignees
Labels
No labels