aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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")
}
}