aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcelo Vanzin <vanzin@cloudera.com>2015-07-24 11:53:16 -0700
committerMarcelo Vanzin <vanzin@cloudera.com>2015-07-24 11:53:16 -0700
commit8399ba14873854ab2f80a0ccaf6adba499060365 (patch)
treec8be074bb7f9b0223564620d865f5a5801833396
parent6aceaf3d62ee335570ddc07ccaf07e8c3776f517 (diff)
downloadspark-8399ba14873854ab2f80a0ccaf6adba499060365.tar.gz
spark-8399ba14873854ab2f80a0ccaf6adba499060365.tar.bz2
spark-8399ba14873854ab2f80a0ccaf6adba499060365.zip
[SPARK-9261] [STREAMING] Avoid calling APIs that expose shaded classes.
Doing this may cause weird errors when tests are run on maven, depending on the flags used. Instead, expose the needed functionality through methods that do not expose shaded classes. Author: Marcelo Vanzin <vanzin@cloudera.com> Closes #7601 from vanzin/SPARK-9261 and squashes the following commits: 4f64a16 [Marcelo Vanzin] [SPARK-9261] [streaming] Avoid calling APIs that expose shaded classes.
-rw-r--r--core/src/main/scala/org/apache/spark/ui/WebUI.scala19
-rw-r--r--streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingTab.scala12
2 files changed, 22 insertions, 9 deletions
diff --git a/core/src/main/scala/org/apache/spark/ui/WebUI.scala b/core/src/main/scala/org/apache/spark/ui/WebUI.scala
index 2c84e44859..61449847ad 100644
--- a/core/src/main/scala/org/apache/spark/ui/WebUI.scala
+++ b/core/src/main/scala/org/apache/spark/ui/WebUI.scala
@@ -107,6 +107,25 @@ private[spark] abstract class WebUI(
}
}
+ /**
+ * Add a handler for static content.
+ *
+ * @param resourceBase Root of where to find resources to serve.
+ * @param path Path in UI where to mount the resources.
+ */
+ def addStaticHandler(resourceBase: String, path: String): Unit = {
+ attachHandler(JettyUtils.createStaticHandler(resourceBase, path))
+ }
+
+ /**
+ * Remove a static content handler.
+ *
+ * @param path Path in UI to unmount.
+ */
+ def removeStaticHandler(path: String): Unit = {
+ handlers.find(_.getContextPath() == path).foreach(detachHandler)
+ }
+
/** Initialize all components of the server. */
def initialize()
diff --git a/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingTab.scala b/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingTab.scala
index e0c0f57212..bc53f2a31f 100644
--- a/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingTab.scala
+++ b/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingTab.scala
@@ -17,11 +17,9 @@
package org.apache.spark.streaming.ui
-import org.eclipse.jetty.servlet.ServletContextHandler
-
import org.apache.spark.{Logging, SparkException}
import org.apache.spark.streaming.StreamingContext
-import org.apache.spark.ui.{JettyUtils, SparkUI, SparkUITab}
+import org.apache.spark.ui.{SparkUI, SparkUITab}
import StreamingTab._
@@ -42,18 +40,14 @@ private[spark] class StreamingTab(val ssc: StreamingContext)
attachPage(new StreamingPage(this))
attachPage(new BatchPage(this))
- var staticHandler: ServletContextHandler = null
-
def attach() {
getSparkUI(ssc).attachTab(this)
- staticHandler = JettyUtils.createStaticHandler(STATIC_RESOURCE_DIR, "/static/streaming")
- getSparkUI(ssc).attachHandler(staticHandler)
+ getSparkUI(ssc).addStaticHandler(STATIC_RESOURCE_DIR, "/static/streaming")
}
def detach() {
getSparkUI(ssc).detachTab(this)
- getSparkUI(ssc).detachHandler(staticHandler)
- staticHandler = null
+ getSparkUI(ssc).removeStaticHandler("/static/streaming")
}
}