From 10697402648696827fe0782b031456e38657a9bb Mon Sep 17 00:00:00 2001 From: Matei Zaharia <matei@eecs.berkeley.edu> Date: Mon, 29 Aug 2011 23:27:10 -0700 Subject: [PATCH] Added a jarOfObject method to get the JAR of the class that an object belongs to, which seems like a more common case. --- core/src/main/scala/spark/SparkContext.scala | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/scala/spark/SparkContext.scala b/core/src/main/scala/spark/SparkContext.scala index 598432c94a..f044da1e21 100644 --- a/core/src/main/scala/spark/SparkContext.scala +++ b/core/src/main/scala/spark/SparkContext.scala @@ -356,21 +356,23 @@ object SparkContext { // Find the JAR from which a given class was loaded, to make it easy for users to pass // their JARs to SparkContext - def jarOfClass[T: ClassManifest]: Option[String] = { - val cls = classManifest[T].erasure + def jarOfClass(cls: Class[_]): Seq[String] = { val uri = cls.getResource("/" + cls.getName.replace('.', '/') + ".class") if (uri != null) { val uriStr = uri.toString if (uriStr.startsWith("jar:file:")) { // URI will be of the form "jar:file:/path/foo.jar!/package/cls.class", so pull out the /path/foo.jar - Some(uriStr.substring("jar:file:".length, uriStr.indexOf('!'))) + List(uriStr.substring("jar:file:".length, uriStr.indexOf('!'))) } else { - None + Nil } } else { - None + Nil } } + + // Find the JAR that contains the class of a particular object + def jarOfObject(obj: AnyRef): Seq[String] = jarOfClass(obj.getClass) } -- GitLab