diff --git a/core/pom.xml b/core/pom.xml
index 99c841472b3e..4b26f59195fc 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -269,6 +269,37 @@
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.0
+
+
+ package
+
+ shade
+
+
+
+
+ org.objectweb.asm
+ org.apache.spark.shaded.org.objectweb.asm
+
+
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+
+
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/util/BytecodeUtils.scala b/core/src/main/scala/org/apache/spark/util/BytecodeUtils.scala
similarity index 97%
rename from graphx/src/main/scala/org/apache/spark/graphx/util/BytecodeUtils.scala
rename to core/src/main/scala/org/apache/spark/util/BytecodeUtils.scala
index d1528e2f07cf..c255259ad659 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/util/BytecodeUtils.scala
+++ b/core/src/main/scala/org/apache/spark/util/BytecodeUtils.scala
@@ -15,14 +15,12 @@
* limitations under the License.
*/
-package org.apache.spark.graphx.util
+package org.apache.spark.util
import java.io.{ByteArrayInputStream, ByteArrayOutputStream}
import scala.collection.mutable.HashSet
-import org.apache.spark.util.Utils
-
import org.objectweb.asm.{ClassReader, ClassVisitor, MethodVisitor}
import org.objectweb.asm.Opcodes._
@@ -31,7 +29,7 @@ import org.objectweb.asm.Opcodes._
* Includes an utility function to test whether a function accesses a specific attribute
* of an object.
*/
-private[graphx] object BytecodeUtils {
+private[spark] object BytecodeUtils {
/**
* Test whether the given closure invokes the specified method in the specified class.
diff --git a/graphx/src/test/scala/org/apache/spark/graphx/util/BytecodeUtilsSuite.scala b/core/src/test/scala/org/apache/spark/util/BytecodeUtilsSuite.scala
similarity index 99%
rename from graphx/src/test/scala/org/apache/spark/graphx/util/BytecodeUtilsSuite.scala
rename to core/src/test/scala/org/apache/spark/util/BytecodeUtilsSuite.scala
index f3b3738db0da..576f9d75bfbc 100644
--- a/graphx/src/test/scala/org/apache/spark/graphx/util/BytecodeUtilsSuite.scala
+++ b/core/src/test/scala/org/apache/spark/util/BytecodeUtilsSuite.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.spark.graphx.util
+package org.apache.spark.util
import org.scalatest.FunSuite
diff --git a/graphx/src/main/scala/org/apache/spark/graphx/impl/GraphImpl.scala b/graphx/src/main/scala/org/apache/spark/graphx/impl/GraphImpl.scala
index 1d029bf009e8..05ec1e2834ca 100644
--- a/graphx/src/main/scala/org/apache/spark/graphx/impl/GraphImpl.scala
+++ b/graphx/src/main/scala/org/apache/spark/graphx/impl/GraphImpl.scala
@@ -25,7 +25,7 @@ import org.apache.spark.SparkContext._
import org.apache.spark.graphx._
import org.apache.spark.graphx.impl.GraphImpl._
import org.apache.spark.graphx.impl.MsgRDDFunctions._
-import org.apache.spark.graphx.util.BytecodeUtils
+import org.apache.spark.util.BytecodeUtils
import org.apache.spark.rdd.{ShuffledRDD, RDD}
import org.apache.spark.storage.StorageLevel
import org.apache.spark.util.ClosureCleaner
diff --git a/repl/pom.xml b/repl/pom.xml
index aa01a1760285..d02047aae592 100644
--- a/repl/pom.xml
+++ b/repl/pom.xml
@@ -96,6 +96,10 @@
scalacheck_${scala.binary.version}
test
+
+ org.ow2.asm
+ asm
+
target/scala-${scala.binary.version}/classes
@@ -140,6 +144,37 @@
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.0
+
+
+ package
+
+ shade
+
+
+
+
+ org.objectweb.asm
+ org.apache.spark.shaded.org.objectweb.asm
+
+
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+
+