diff --git a/connector/connect/server/pom.xml b/connector/connect/server/pom.xml index bdea8a627000..1a90138df295 100644 --- a/connector/connect/server/pom.xml +++ b/connector/connect/server/pom.xml @@ -156,6 +156,16 @@ org.scala-lang.modules scala-parallel-collections_${scala.binary.version} + + jakarta.servlet + jakarta.servlet-api + compile + + + javax.servlet + javax.servlet-api + compile + com.google.guava guava diff --git a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPage.scala b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPage.scala index bc92014b12b7..bf9293ef1488 100644 --- a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPage.scala +++ b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPage.scala @@ -19,10 +19,11 @@ package org.apache.spark.sql.connect.ui import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.sql.connect.ui.ToolTips._ import org.apache.spark.ui._ diff --git a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerSessionPage.scala b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerSessionPage.scala index fde6e8da8b63..c35eb58edfbe 100644 --- a/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerSessionPage.scala +++ b/connector/connect/server/src/main/scala/org/apache/spark/sql/connect/ui/SparkConnectServerSessionPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.sql.connect.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ diff --git a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPageSuite.scala b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPageSuite.scala index d352f4e2c32f..3fda38723025 100644 --- a/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPageSuite.scala +++ b/connector/connect/server/src/test/scala/org/apache/spark/sql/connect/ui/SparkConnectServerPageSuite.scala @@ -18,8 +18,8 @@ package org.apache.spark.sql.connect.ui import java.util.{Calendar, Locale} -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when, RETURNS_SMART_NULLS} import org.scalatest.BeforeAndAfter diff --git a/core/pom.xml b/core/pom.xml index 9b5297cb8543..6468f500db04 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -166,10 +166,13 @@ jetty-servlets compile + + javax.servlet + javax.servlet-api + jakarta.servlet jakarta.servlet-api - ${jakartaservlet.version} commons-codec diff --git a/core/src/main/scala/org/apache/spark/deploy/Utils.scala b/core/src/main/scala/org/apache/spark/deploy/Utils.scala index 32328ae1e07a..9eb5a0042e51 100644 --- a/core/src/main/scala/org/apache/spark/deploy/Utils.scala +++ b/core/src/main/scala/org/apache/spark/deploy/Utils.scala @@ -18,7 +18,8 @@ package org.apache.spark.deploy import java.io.File -import javax.servlet.http.HttpServletRequest + +import jakarta.servlet.http.HttpServletRequest import org.apache.spark.SparkConf import org.apache.spark.internal.Logging diff --git a/core/src/main/scala/org/apache/spark/deploy/history/ApplicationCache.scala b/core/src/main/scala/org/apache/spark/deploy/history/ApplicationCache.scala index 96313c58ad28..662746cf0c78 100644 --- a/core/src/main/scala/org/apache/spark/deploy/history/ApplicationCache.scala +++ b/core/src/main/scala/org/apache/spark/deploy/history/ApplicationCache.scala @@ -18,14 +18,14 @@ package org.apache.spark.deploy.history import java.util.concurrent.{ConcurrentHashMap, CountDownLatch, ExecutionException} -import javax.servlet.{DispatcherType, Filter, FilterChain, FilterConfig, ServletException, ServletRequest, ServletResponse} -import javax.servlet.http.{HttpServletRequest, HttpServletResponse} import scala.jdk.CollectionConverters._ import com.codahale.metrics.{Counter, MetricRegistry, Timer} import com.google.common.cache.{CacheBuilder, CacheLoader, LoadingCache, RemovalListener, RemovalNotification} import com.google.common.util.concurrent.UncheckedExecutionException +import jakarta.servlet.{DispatcherType, Filter, FilterChain, FilterConfig, ServletException, ServletRequest, ServletResponse} +import jakarta.servlet.http.{HttpServletRequest, HttpServletResponse} import org.eclipse.jetty.servlet.FilterHolder import org.apache.spark.internal.Logging diff --git a/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala b/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala index 9ad255527c87..aa1d76bafc53 100644 --- a/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/history/HistoryPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.deploy.history -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.status.api.v1.ApplicationInfo import org.apache.spark.ui.{UIUtils, WebUIPage} import org.apache.spark.ui.UIUtils.formatImportJavaScript diff --git a/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala b/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala index 25b16b3ec836..7362634d5b09 100644 --- a/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala +++ b/core/src/main/scala/org/apache/spark/deploy/history/HistoryServer.scala @@ -18,11 +18,11 @@ package org.apache.spark.deploy.history import java.util.zip.ZipOutputStream -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import scala.util.control.NonFatal import scala.xml.Node +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.apache.spark.{SecurityManager, SparkConf} diff --git a/core/src/main/scala/org/apache/spark/deploy/history/LogPage.scala b/core/src/main/scala/org/apache/spark/deploy/history/LogPage.scala index be5dae0ffbaf..3507ebd101ae 100644 --- a/core/src/main/scala/org/apache/spark/deploy/history/LogPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/history/LogPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.deploy.history -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkConf import org.apache.spark.deploy.Utils.{getLog, DEFAULT_BYTES} import org.apache.spark.internal.Logging diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/ApplicationPage.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/ApplicationPage.scala index 3087d5e8c966..98cc99c1a24b 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/ApplicationPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/ApplicationPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.deploy.master.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.deploy.DeployMessages.{MasterStateResponse, RequestMasterState} import org.apache.spark.deploy.ExecutorState import org.apache.spark.deploy.StandaloneResourceUtils.{formatResourceRequirements, formatResourcesAddresses} diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/LogPage.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/LogPage.scala index e199049c9c1b..6d3ff1906d17 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/LogPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/LogPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.deploy.master.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.deploy.Utils.{getLog, DEFAULT_BYTES} import org.apache.spark.internal.Logging import org.apache.spark.ui.{UIUtils, WebUIPage} diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala index cbeda23013ac..d07f299d52ba 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterPage.scala @@ -17,10 +17,9 @@ package org.apache.spark.deploy.master.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.json4s.JValue import org.apache.spark.deploy.DeployMessages.{KillDriverResponse, MasterStateResponse, RequestKillDriver, RequestMasterState} diff --git a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala index 9f5738ce4863..da3c91956689 100644 --- a/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala +++ b/core/src/main/scala/org/apache/spark/deploy/master/ui/MasterWebUI.scala @@ -18,7 +18,8 @@ package org.apache.spark.deploy.master.ui import java.net.{InetAddress, NetworkInterface, SocketException} -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} + +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.apache.spark.deploy.DeployMessages.{DecommissionWorkersOnHosts, MasterStateResponse, RequestMasterState} import org.apache.spark.deploy.Utils.addRenderLogHandler diff --git a/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionClient.scala b/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionClient.scala index ea05b042bb12..71c07ce33d3d 100644 --- a/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionClient.scala +++ b/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionClient.scala @@ -21,7 +21,6 @@ import java.io.{DataOutputStream, FileNotFoundException} import java.net.{ConnectException, HttpURLConnection, SocketException, URL} import java.nio.charset.StandardCharsets import java.util.concurrent.TimeoutException -import javax.servlet.http.HttpServletResponse import scala.collection.mutable import scala.concurrent.{Await, Future} @@ -30,6 +29,7 @@ import scala.io.Source import scala.util.control.NonFatal import com.fasterxml.jackson.core.JsonProcessingException +import jakarta.servlet.http.HttpServletResponse import org.apache.spark.{SPARK_VERSION => sparkVersion, SparkConf, SparkException} import org.apache.spark.deploy.SparkApplication diff --git a/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionServer.scala b/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionServer.scala index 4e871393f0be..bb91c7e7f4a2 100644 --- a/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionServer.scala +++ b/core/src/main/scala/org/apache/spark/deploy/rest/RestSubmissionServer.scala @@ -17,11 +17,10 @@ package org.apache.spark.deploy.rest -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} - import scala.io.Source import com.fasterxml.jackson.core.JsonProcessingException +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.eclipse.jetty.server.{HttpConnectionFactory, Server, ServerConnector} import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.eclipse.jetty.util.thread.{QueuedThreadPool, ScheduledExecutorScheduler} diff --git a/core/src/main/scala/org/apache/spark/deploy/rest/StandaloneRestServer.scala b/core/src/main/scala/org/apache/spark/deploy/rest/StandaloneRestServer.scala index e53d3ecefeda..8e3dcdc9d378 100644 --- a/core/src/main/scala/org/apache/spark/deploy/rest/StandaloneRestServer.scala +++ b/core/src/main/scala/org/apache/spark/deploy/rest/StandaloneRestServer.scala @@ -18,7 +18,8 @@ package org.apache.spark.deploy.rest import java.io.File -import javax.servlet.http.HttpServletResponse + +import jakarta.servlet.http.HttpServletResponse import org.apache.spark.{SPARK_VERSION => sparkVersion, SparkConf} import org.apache.spark.deploy.{Command, DeployMessages, DriverDescription} diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/ui/LogPage.scala b/core/src/main/scala/org/apache/spark/deploy/worker/ui/LogPage.scala index 991c791cc79e..c4a15095ec40 100644 --- a/core/src/main/scala/org/apache/spark/deploy/worker/ui/LogPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/ui/LogPage.scala @@ -18,10 +18,11 @@ package org.apache.spark.deploy.worker.ui import java.io.File -import javax.servlet.http.HttpServletRequest import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.ui.{UIUtils, WebUIPage} import org.apache.spark.util.Utils diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerPage.scala b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerPage.scala index 3dd5ebea471c..bfc402811451 100644 --- a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerPage.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerPage.scala @@ -17,10 +17,9 @@ package org.apache.spark.deploy.worker.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.json4s.JValue import org.apache.spark.deploy.{ExecutorState, JsonProtocol} diff --git a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala index 0f5e96c55849..4fd50378ffc2 100644 --- a/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala +++ b/core/src/main/scala/org/apache/spark/deploy/worker/ui/WorkerWebUI.scala @@ -18,7 +18,8 @@ package org.apache.spark.deploy.worker.ui import java.io.File -import javax.servlet.http.HttpServletRequest + +import jakarta.servlet.http.HttpServletRequest import org.apache.spark.deploy.worker.Worker import org.apache.spark.internal.Logging diff --git a/core/src/main/scala/org/apache/spark/metrics/sink/MetricsServlet.scala b/core/src/main/scala/org/apache/spark/metrics/sink/MetricsServlet.scala index 46d2c6821fea..7d676cd2c27b 100644 --- a/core/src/main/scala/org/apache/spark/metrics/sink/MetricsServlet.scala +++ b/core/src/main/scala/org/apache/spark/metrics/sink/MetricsServlet.scala @@ -19,11 +19,11 @@ package org.apache.spark.metrics.sink import java.util.Properties import java.util.concurrent.TimeUnit -import javax.servlet.http.HttpServletRequest import com.codahale.metrics.MetricRegistry import com.codahale.metrics.json.MetricsModule import com.fasterxml.jackson.databind.ObjectMapper +import jakarta.servlet.http.HttpServletRequest import org.eclipse.jetty.servlet.ServletContextHandler import org.apache.spark.SparkConf diff --git a/core/src/main/scala/org/apache/spark/metrics/sink/PrometheusServlet.scala b/core/src/main/scala/org/apache/spark/metrics/sink/PrometheusServlet.scala index 2b672f89686e..757139528996 100644 --- a/core/src/main/scala/org/apache/spark/metrics/sink/PrometheusServlet.scala +++ b/core/src/main/scala/org/apache/spark/metrics/sink/PrometheusServlet.scala @@ -18,9 +18,9 @@ package org.apache.spark.metrics.sink import java.util.Properties -import javax.servlet.http.HttpServletRequest import com.codahale.metrics.MetricRegistry +import jakarta.servlet.http.HttpServletRequest import org.eclipse.jetty.servlet.ServletContextHandler import org.apache.spark.SparkConf diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala index cc21c1488f67..66fac8a9d105 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala @@ -17,11 +17,11 @@ package org.apache.spark.status.api.v1 import java.util.zip.ZipOutputStream -import javax.servlet.ServletContext -import javax.servlet.http.HttpServletRequest -import javax.ws.rs._ -import javax.ws.rs.core.{Context, Response} +import jakarta.servlet.ServletContext +import jakarta.servlet.http.HttpServletRequest +import jakarta.ws.rs._ +import jakarta.ws.rs.core.{Context, Response} import org.eclipse.jetty.server.handler.ContextHandler import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.glassfish.jersey.server.ServerProperties diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationListResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationListResource.scala index 6eb8b2bfd55a..2d5dd97b501f 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationListResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/ApplicationListResource.scala @@ -17,8 +17,9 @@ package org.apache.spark.status.api.v1 import java.util.{List => JList} -import javax.ws.rs.{DefaultValue, GET, Produces, QueryParam} -import javax.ws.rs.core.MediaType + +import jakarta.ws.rs.{DefaultValue, GET, Produces, QueryParam} +import jakarta.ws.rs.core.MediaType @Produces(Array(MediaType.APPLICATION_JSON)) private[v1] class ApplicationListResource extends ApiRequestContext { diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/JacksonMessageWriter.scala b/core/src/main/scala/org/apache/spark/status/api/v1/JacksonMessageWriter.scala index 846e4f9cc94e..259d0aacc575 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/JacksonMessageWriter.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/JacksonMessageWriter.scala @@ -21,12 +21,12 @@ import java.lang.annotation.Annotation import java.lang.reflect.Type import java.text.SimpleDateFormat import java.util.{Calendar, Locale, SimpleTimeZone} -import javax.ws.rs.Produces -import javax.ws.rs.core.{MediaType, MultivaluedMap} -import javax.ws.rs.ext.{MessageBodyWriter, Provider} import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.databind.{ObjectMapper, SerializationFeature} +import jakarta.ws.rs.Produces +import jakarta.ws.rs.core.{MediaType, MultivaluedMap} +import jakarta.ws.rs.ext.{MessageBodyWriter, Provider} /** * This class converts the POJO metric responses into json, using jackson. diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/OneApplicationResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/OneApplicationResource.scala index bfe43fde17d0..604a5017db3b 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/OneApplicationResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/OneApplicationResource.scala @@ -19,11 +19,12 @@ package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.{List => JList} import java.util.zip.ZipOutputStream -import javax.ws.rs.{NotFoundException => _, _} -import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal +import jakarta.ws.rs.{NotFoundException => _, _} +import jakarta.ws.rs.core.{MediaType, Response, StreamingOutput} + import org.apache.spark.{JobExecutionStatus, SparkContext} import org.apache.spark.status.api.v1 import org.apache.spark.util.Utils diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/PrometheusResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/PrometheusResource.scala index c4e3bdc64ee3..6efe3106ba56 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/PrometheusResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/PrometheusResource.scala @@ -16,9 +16,8 @@ */ package org.apache.spark.status.api.v1 -import javax.ws.rs._ -import javax.ws.rs.core.MediaType - +import jakarta.ws.rs._ +import jakarta.ws.rs.core.MediaType import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.glassfish.jersey.server.ServerProperties import org.glassfish.jersey.servlet.ServletContainer diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/SimpleDateParam.scala b/core/src/main/scala/org/apache/spark/status/api/v1/SimpleDateParam.scala index d8d5e8958b23..e947fbf281df 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/SimpleDateParam.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/SimpleDateParam.scala @@ -18,9 +18,10 @@ package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.{Locale, TimeZone} -import javax.ws.rs.WebApplicationException -import javax.ws.rs.core.Response -import javax.ws.rs.core.Response.Status + +import jakarta.ws.rs.WebApplicationException +import jakarta.ws.rs.core.Response +import jakarta.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/StagesResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/StagesResource.scala index e199dd94e610..ee18d5044ea7 100644 --- a/core/src/main/scala/org/apache/spark/status/api/v1/StagesResource.scala +++ b/core/src/main/scala/org/apache/spark/status/api/v1/StagesResource.scala @@ -17,11 +17,12 @@ package org.apache.spark.status.api.v1 import java.util.{HashMap, List => JList, Locale} -import javax.ws.rs.{NotFoundException => _, _} -import javax.ws.rs.core.{Context, MediaType, MultivaluedMap, UriInfo} import scala.jdk.CollectionConverters._ +import jakarta.ws.rs.{NotFoundException => _, _} +import jakarta.ws.rs.core.{Context, MediaType, MultivaluedMap, UriInfo} + import org.apache.spark.status.api.v1.TaskStatus._ import org.apache.spark.ui.UIUtils import org.apache.spark.ui.jobs.ApiHelper._ diff --git a/core/src/main/scala/org/apache/spark/ui/DriverLogPage.scala b/core/src/main/scala/org/apache/spark/ui/DriverLogPage.scala index 4a0e311fc6f0..83a8fd628cd7 100644 --- a/core/src/main/scala/org/apache/spark/ui/DriverLogPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/DriverLogPage.scala @@ -16,10 +16,10 @@ */ package org.apache.spark.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkConf import org.apache.spark.internal.Logging import org.apache.spark.internal.config.DRIVER_LOG_LOCAL_DIR diff --git a/core/src/main/scala/org/apache/spark/ui/GraphUIData.scala b/core/src/main/scala/org/apache/spark/ui/GraphUIData.scala index 0e3f691807dc..9dcbb9d3c329 100644 --- a/core/src/main/scala/org/apache/spark/ui/GraphUIData.scala +++ b/core/src/main/scala/org/apache/spark/ui/GraphUIData.scala @@ -19,13 +19,14 @@ package org.apache.spark.ui import java.{util => ju} import java.lang.{Long => JLong} -import javax.servlet.http.HttpServletRequest import scala.collection.mutable import scala.collection.mutable.ArrayBuffer import scala.jdk.CollectionConverters._ import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.ui.UIUtils.formatImportJavaScript /** diff --git a/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala b/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala index ec37cd6cc5e6..551f0eb98cb8 100644 --- a/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala +++ b/core/src/main/scala/org/apache/spark/ui/HttpSecurityFilter.scala @@ -18,11 +18,11 @@ package org.apache.spark.ui import java.util.{Enumeration, Map => JMap} -import javax.servlet._ -import javax.servlet.http.{HttpServletRequest, HttpServletRequestWrapper, HttpServletResponse} import scala.jdk.CollectionConverters._ +import jakarta.servlet._ +import jakarta.servlet.http.{HttpServletRequest, HttpServletRequestWrapper, HttpServletResponse} import org.apache.commons.text.StringEscapeUtils import org.apache.spark.{SecurityManager, SparkConf} diff --git a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala index a0f65606e60d..5e567a891d58 100644 --- a/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala +++ b/core/src/main/scala/org/apache/spark/ui/JettyUtils.scala @@ -19,13 +19,13 @@ package org.apache.spark.ui import java.net.{URI, URL, URLDecoder} import java.util.EnumSet -import javax.servlet.DispatcherType -import javax.servlet.http._ import scala.language.implicitConversions import scala.util.Try import scala.xml.Node +import jakarta.servlet.DispatcherType +import jakarta.servlet.http._ import org.eclipse.jetty.client.HttpClient import org.eclipse.jetty.client.api.Response import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP diff --git a/core/src/main/scala/org/apache/spark/ui/PagedTable.scala b/core/src/main/scala/org/apache/spark/ui/PagedTable.scala index 4fa9cd2c1e1d..a7c74e74d284 100644 --- a/core/src/main/scala/org/apache/spark/ui/PagedTable.scala +++ b/core/src/main/scala/org/apache/spark/ui/PagedTable.scala @@ -19,12 +19,12 @@ package org.apache.spark.ui import java.net.{URLDecoder, URLEncoder} import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.jdk.CollectionConverters._ import scala.xml.{Node, Unparsed} import com.google.common.base.Splitter +import jakarta.servlet.http.HttpServletRequest import org.apache.spark.util.Utils diff --git a/core/src/main/scala/org/apache/spark/ui/SparkUI.scala b/core/src/main/scala/org/apache/spark/ui/SparkUI.scala index 44ec92915317..099e47abf408 100644 --- a/core/src/main/scala/org/apache/spark/ui/SparkUI.scala +++ b/core/src/main/scala/org/apache/spark/ui/SparkUI.scala @@ -18,8 +18,8 @@ package org.apache.spark.ui import java.util.Date -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.eclipse.jetty.servlet.ServletContextHandler import org.apache.spark.{SecurityManager, SparkConf, SparkContext} diff --git a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala index 1c29041f2183..c7e375849278 100644 --- a/core/src/main/scala/org/apache/spark/ui/UIUtils.scala +++ b/core/src/main/scala/org/apache/spark/ui/UIUtils.scala @@ -24,14 +24,14 @@ import java.nio.charset.StandardCharsets.UTF_8 import java.time.{Instant, ZoneId} import java.time.format.DateTimeFormatter import java.util.{Date, Locale, TimeZone} -import javax.servlet.http.HttpServletRequest -import javax.ws.rs.core.{MediaType, MultivaluedMap, Response} import scala.jdk.CollectionConverters._ import scala.util.control.NonFatal import scala.xml._ import scala.xml.transform.{RewriteRule, RuleTransformer} +import jakarta.servlet.http.HttpServletRequest +import jakarta.ws.rs.core.{MediaType, MultivaluedMap, Response} import org.glassfish.jersey.internal.util.collection.MultivaluedStringMap import org.apache.spark.internal.Logging 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 b23247c5ee19..2c937e71f64b 100644 --- a/core/src/main/scala/org/apache/spark/ui/WebUI.scala +++ b/core/src/main/scala/org/apache/spark/ui/WebUI.scala @@ -18,13 +18,13 @@ package org.apache.spark.ui import java.util.EnumSet -import javax.servlet.DispatcherType -import javax.servlet.http.{HttpServlet, HttpServletRequest} import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.HashMap import scala.xml.Node +import jakarta.servlet.DispatcherType +import jakarta.servlet.http.{HttpServlet, HttpServletRequest} import org.eclipse.jetty.servlet.{FilterHolder, FilterMapping, ServletContextHandler, ServletHolder} import org.json4s.JsonAST.{JNothing, JValue} diff --git a/core/src/main/scala/org/apache/spark/ui/env/EnvironmentPage.scala b/core/src/main/scala/org/apache/spark/ui/env/EnvironmentPage.scala index 4aaa04019cc1..f2718c6bf8d7 100644 --- a/core/src/main/scala/org/apache/spark/ui/env/EnvironmentPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/env/EnvironmentPage.scala @@ -17,11 +17,11 @@ package org.apache.spark.ui.env -import javax.servlet.http.HttpServletRequest - import scala.collection.mutable.StringBuilder import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkConf import org.apache.spark.resource.{ExecutorResourceRequest, TaskResourceRequest} import org.apache.spark.status.AppStatusStore diff --git a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorHeapHistogramPage.scala b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorHeapHistogramPage.scala index 6964711a7889..2c9467300bd3 100644 --- a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorHeapHistogramPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorHeapHistogramPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.exec -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Text} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkContext import org.apache.spark.ui.{SparkUITab, UIUtils, WebUIPage} diff --git a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorThreadDumpPage.scala b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorThreadDumpPage.scala index 900f8ca8f675..ef26a02a406a 100644 --- a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorThreadDumpPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorThreadDumpPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.exec -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Text, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkContext import org.apache.spark.internal.config.UI.UI_FLAMEGRAPH_ENABLED import org.apache.spark.status.api.v1.ThreadStackTrace diff --git a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala index ea7459dae6d5..db18b02f23d8 100644 --- a/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/exec/ExecutorsTab.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.exec -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.config.UI._ import org.apache.spark.ui.{SparkUI, SparkUITab, UIUtils, WebUIPage} diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala index 0b51fe90417a..4d65aba31021 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/AllJobsPage.scala @@ -20,11 +20,11 @@ package org.apache.spark.ui.jobs import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 import java.util.{Date, Locale} -import javax.servlet.http.HttpServletRequest import scala.collection.mutable.ListBuffer import scala.xml._ +import jakarta.servlet.http.HttpServletRequest import org.apache.commons.text.StringEscapeUtils import org.apache.spark.JobExecutionStatus diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala index 39c7f8ba2271..ae8337179627 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/AllStagesPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.jobs -import javax.servlet.http.HttpServletRequest - import scala.xml.{Attribute, Elem, Node, NodeSeq, Null, Text} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.scheduler.Schedulable import org.apache.spark.status.{AppSummary, PoolData} import org.apache.spark.status.api.v1.{StageData, StageStatus} diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala index 382e11357499..793e65f44ba9 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobPage.scala @@ -18,11 +18,11 @@ package org.apache.spark.ui.jobs import java.util.Locale -import javax.servlet.http.HttpServletRequest import scala.collection.mutable.{Buffer, ListBuffer} import scala.xml.{Node, NodeSeq, Unparsed, Utility} +import jakarta.servlet.http.HttpServletRequest import org.apache.commons.text.StringEscapeUtils import org.apache.spark.JobExecutionStatus diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/JobsTab.scala b/core/src/main/scala/org/apache/spark/ui/jobs/JobsTab.scala index f5a2721ca4f5..ce7698a59ae9 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/JobsTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/JobsTab.scala @@ -17,7 +17,7 @@ package org.apache.spark.ui.jobs -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.apache.spark.JobExecutionStatus import org.apache.spark.internal.config.SCHEDULER_MODE diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala index e10385cbca41..15592adc57ce 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/PoolPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.jobs -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.status.PoolData import org.apache.spark.ui.{UIUtils, WebUIPage} diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/PoolTable.scala b/core/src/main/scala/org/apache/spark/ui/jobs/PoolTable.scala index e36df511541f..a6b2a029f71e 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/PoolTable.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/PoolTable.scala @@ -19,10 +19,11 @@ package org.apache.spark.ui.jobs import java.net.URLEncoder import java.nio.charset.StandardCharsets -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.scheduler.Schedulable import org.apache.spark.status.PoolData import org.apache.spark.ui.UIUtils diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala index c6ff62b122c5..257f7b37758a 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagePage.scala @@ -18,11 +18,12 @@ package org.apache.spark.ui.jobs import java.util.Date -import javax.servlet.http.HttpServletRequest import scala.collection.mutable.HashSet import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.config.UI._ import org.apache.spark.scheduler.TaskLocality import org.apache.spark.status._ diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala index 0f611c7472eb..124e41ce56d8 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/StageTable.scala @@ -20,10 +20,11 @@ package org.apache.spark.ui.jobs import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 import java.util.Date -import javax.servlet.http.HttpServletRequest import scala.xml._ +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.status.AppStatusStore import org.apache.spark.status.api.v1 import org.apache.spark.ui._ diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/StagesTab.scala b/core/src/main/scala/org/apache/spark/ui/jobs/StagesTab.scala index cb87d9329417..8be4998827ac 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/StagesTab.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/StagesTab.scala @@ -17,7 +17,7 @@ package org.apache.spark.ui.jobs -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.apache.spark.internal.config.SCHEDULER_MODE import org.apache.spark.internal.config.UI.UI_THREAD_DUMPS_ENABLED diff --git a/core/src/main/scala/org/apache/spark/ui/jobs/TaskThreadDumpPage.scala b/core/src/main/scala/org/apache/spark/ui/jobs/TaskThreadDumpPage.scala index 7b6da1147c59..49b919ce0de9 100644 --- a/core/src/main/scala/org/apache/spark/ui/jobs/TaskThreadDumpPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/jobs/TaskThreadDumpPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.ui.jobs -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Text} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.SparkContext import org.apache.spark.ui.{SparkUITab, UIUtils, WebUIPage} diff --git a/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala b/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala index 481b49d6a198..d21ea3732f3b 100644 --- a/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala +++ b/core/src/main/scala/org/apache/spark/ui/storage/RDDPage.scala @@ -19,10 +19,11 @@ package org.apache.spark.ui.storage import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.status.AppStatusStore import org.apache.spark.status.api.v1.{ExecutorSummary, RDDDataDistribution, RDDPartitionInfo} import org.apache.spark.ui._ diff --git a/core/src/main/scala/org/apache/spark/ui/storage/StoragePage.scala b/core/src/main/scala/org/apache/spark/ui/storage/StoragePage.scala index 726622673650..23d95560243d 100644 --- a/core/src/main/scala/org/apache/spark/ui/storage/StoragePage.scala +++ b/core/src/main/scala/org/apache/spark/ui/storage/StoragePage.scala @@ -17,11 +17,11 @@ package org.apache.spark.ui.storage -import javax.servlet.http.HttpServletRequest - import scala.collection.SortedMap import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.status.{AppStatusStore, StreamBlockData} import org.apache.spark.status.api.v1 import org.apache.spark.ui._ diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala index 25b03a2c5d6d..e1ced9f8b41d 100644 --- a/core/src/main/scala/org/apache/spark/util/Utils.scala +++ b/core/src/main/scala/org/apache/spark/util/Utils.scala @@ -32,7 +32,6 @@ import java.util.{Locale, Properties, Random, UUID} import java.util.concurrent._ import java.util.concurrent.TimeUnit.NANOSECONDS import java.util.zip.{GZIPInputStream, ZipInputStream} -import javax.ws.rs.core.UriBuilder import scala.annotation.tailrec import scala.collection.Map @@ -49,6 +48,7 @@ import com.google.common.cache.{CacheBuilder, CacheLoader, LoadingCache} import com.google.common.collect.Interners import com.google.common.io.{ByteStreams, Files => GFiles} import com.google.common.net.InetAddresses +import jakarta.ws.rs.core.UriBuilder import org.apache.commons.codec.binary.Hex import org.apache.commons.io.IOUtils import org.apache.commons.lang3.{JavaVersion, SystemUtils} diff --git a/core/src/test/scala/org/apache/spark/deploy/history/ApplicationCacheSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/ApplicationCacheSuite.scala index 1d5ec57a55b5..d27c07c36c0d 100644 --- a/core/src/test/scala/org/apache/spark/deploy/history/ApplicationCacheSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/history/ApplicationCacheSuite.scala @@ -19,11 +19,11 @@ package org.apache.spark.deploy.history import java.util.{Date, NoSuchElementException} import java.util.concurrent.{CountDownLatch, Executors, TimeoutException, TimeUnit} -import javax.servlet.http.{HttpServletRequest, HttpServletResponse} import scala.collection.mutable import com.codahale.metrics.Counter +import jakarta.servlet.http.{HttpServletRequest, HttpServletResponse} import org.apache.hadoop.conf.Configuration import org.eclipse.jetty.servlet.ServletContextHandler import org.mockito.ArgumentMatchers.any diff --git a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerPageSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerPageSuite.scala index f6ef4f7b4f61..83ef300460b9 100644 --- a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerPageSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerPageSuite.scala @@ -18,8 +18,8 @@ package org.apache.spark.deploy.history import java.net.URL -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.http.HttpServletResponse import org.json4s.DefaultFormats import org.json4s.JsonAST._ import org.json4s.jackson.JsonMethods.parse diff --git a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala index 9131934207b7..0d739b647eab 100644 --- a/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/history/HistoryServerSuite.scala @@ -20,13 +20,13 @@ import java.io.{File, FileInputStream, FileWriter, InputStream, IOException} import java.net.{HttpURLConnection, URL} import java.nio.charset.StandardCharsets import java.util.zip.ZipInputStream -import javax.servlet._ -import javax.servlet.http.{HttpServletRequest, HttpServletRequestWrapper, HttpServletResponse} import scala.concurrent.duration._ import scala.jdk.CollectionConverters._ import com.google.common.io.{ByteStreams, Files} +import jakarta.servlet._ +import jakarta.servlet.http.{HttpServletRequest, HttpServletRequestWrapper, HttpServletResponse} import org.apache.commons.io.{FileUtils, IOUtils} import org.apache.hadoop.fs.{FileStatus, FileSystem, Path} import org.json4s.JsonAST._ diff --git a/core/src/test/scala/org/apache/spark/deploy/history/RealBrowserUIHistoryServerSuite.scala b/core/src/test/scala/org/apache/spark/deploy/history/RealBrowserUIHistoryServerSuite.scala index 5eeb2c7a8053..7effeee3424b 100644 --- a/core/src/test/scala/org/apache/spark/deploy/history/RealBrowserUIHistoryServerSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/history/RealBrowserUIHistoryServerSuite.scala @@ -17,8 +17,7 @@ package org.apache.spark.deploy.history -import javax.servlet.http.HttpServletRequest - +import jakarta.servlet.http.HttpServletRequest import org.eclipse.jetty.proxy.ProxyServlet import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.openqa.selenium.WebDriver diff --git a/core/src/test/scala/org/apache/spark/deploy/master/ui/ApplicationPageSuite.scala b/core/src/test/scala/org/apache/spark/deploy/master/ui/ApplicationPageSuite.scala index 9890ac24e168..a9b96f85808d 100644 --- a/core/src/test/scala/org/apache/spark/deploy/master/ui/ApplicationPageSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/master/ui/ApplicationPageSuite.scala @@ -18,8 +18,8 @@ package org.apache.spark.deploy.master.ui import java.util.Date -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when} import org.apache.spark.SparkFunSuite diff --git a/core/src/test/scala/org/apache/spark/deploy/master/ui/ReadOnlyMasterWebUISuite.scala b/core/src/test/scala/org/apache/spark/deploy/master/ui/ReadOnlyMasterWebUISuite.scala index ab323aaf7999..d7f05754a7cd 100644 --- a/core/src/test/scala/org/apache/spark/deploy/master/ui/ReadOnlyMasterWebUISuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/master/ui/ReadOnlyMasterWebUISuite.scala @@ -17,8 +17,7 @@ package org.apache.spark.deploy.master.ui -import javax.servlet.http.HttpServletResponse.SC_METHOD_NOT_ALLOWED - +import jakarta.servlet.http.HttpServletResponse.SC_METHOD_NOT_ALLOWED import org.mockito.Mockito.{mock, when} import org.apache.spark.{SecurityManager, SparkConf, SparkFunSuite} diff --git a/core/src/test/scala/org/apache/spark/deploy/rest/StandaloneRestSubmitSuite.scala b/core/src/test/scala/org/apache/spark/deploy/rest/StandaloneRestSubmitSuite.scala index 04281dcd0b43..43a5f7a784f5 100644 --- a/core/src/test/scala/org/apache/spark/deploy/rest/StandaloneRestSubmitSuite.scala +++ b/core/src/test/scala/org/apache/spark/deploy/rest/StandaloneRestSubmitSuite.scala @@ -20,10 +20,10 @@ package org.apache.spark.deploy.rest import java.io.DataOutputStream import java.net.{HttpURLConnection, URL} import java.nio.charset.StandardCharsets -import javax.servlet.http.HttpServletResponse import scala.collection.mutable +import jakarta.servlet.http.HttpServletResponse import org.json4s.JsonAST._ import org.json4s.jackson.JsonMethods._ diff --git a/core/src/test/scala/org/apache/spark/status/api/v1/SimpleDateParamSuite.scala b/core/src/test/scala/org/apache/spark/status/api/v1/SimpleDateParamSuite.scala index ff2060e27846..206db1c0b232 100644 --- a/core/src/test/scala/org/apache/spark/status/api/v1/SimpleDateParamSuite.scala +++ b/core/src/test/scala/org/apache/spark/status/api/v1/SimpleDateParamSuite.scala @@ -16,8 +16,7 @@ */ package org.apache.spark.status.api.v1 -import javax.ws.rs.WebApplicationException - +import jakarta.ws.rs.WebApplicationException import org.scalatest.matchers.must.Matchers import org.scalatest.matchers.should.Matchers._ diff --git a/core/src/test/scala/org/apache/spark/ui/DriverLogPageSuite.scala b/core/src/test/scala/org/apache/spark/ui/DriverLogPageSuite.scala index db8e06cb0403..1a26aa53dcbf 100644 --- a/core/src/test/scala/org/apache/spark/ui/DriverLogPageSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/DriverLogPageSuite.scala @@ -19,8 +19,8 @@ package org.apache.spark.ui import java.io.File import java.nio.charset.StandardCharsets -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.apache.commons.io.FileUtils import org.mockito.Mockito.{mock, when} diff --git a/core/src/test/scala/org/apache/spark/ui/HttpSecurityFilterSuite.scala b/core/src/test/scala/org/apache/spark/ui/HttpSecurityFilterSuite.scala index e69359a6573a..72936646fb73 100644 --- a/core/src/test/scala/org/apache/spark/ui/HttpSecurityFilterSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/HttpSecurityFilterSuite.scala @@ -18,11 +18,11 @@ package org.apache.spark.ui import java.util.UUID -import javax.servlet.FilterChain -import javax.servlet.http.{HttpServletRequest, HttpServletResponse} import scala.jdk.CollectionConverters._ +import jakarta.servlet.FilterChain +import jakarta.servlet.http.{HttpServletRequest, HttpServletResponse} import org.mockito.ArgumentCaptor import org.mockito.ArgumentMatchers.{any, eq => meq} import org.mockito.Mockito.{mock, times, verify, when} diff --git a/core/src/test/scala/org/apache/spark/ui/StagePageSuite.scala b/core/src/test/scala/org/apache/spark/ui/StagePageSuite.scala index 6565b9b50a92..c76c97d07141 100644 --- a/core/src/test/scala/org/apache/spark/ui/StagePageSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/StagePageSuite.scala @@ -17,10 +17,9 @@ package org.apache.spark.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when, RETURNS_SMART_NULLS} import org.apache.spark._ diff --git a/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala b/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala index 7e49cbce6ec1..327715b5fa2b 100644 --- a/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala @@ -19,11 +19,11 @@ package org.apache.spark.ui import java.net.URL import java.util.Locale -import javax.servlet.http.{HttpServletRequest, HttpServletResponse} import scala.io.Source import scala.xml.Node +import jakarta.servlet.http.{HttpServletRequest, HttpServletResponse} import org.glassfish.jersey.internal.util.collection.MultivaluedStringMap import org.htmlunit.DefaultCssErrorHandler import org.htmlunit.cssparser.parser.CSSParseException diff --git a/core/src/test/scala/org/apache/spark/ui/UISuite.scala b/core/src/test/scala/org/apache/spark/ui/UISuite.scala index cb5fbda3e58a..10681f22fa62 100644 --- a/core/src/test/scala/org/apache/spark/ui/UISuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/UISuite.scala @@ -20,11 +20,11 @@ package org.apache.spark.ui import java.net.{BindException, ServerSocket} import java.net.{URI, URL} import java.util.Locale -import javax.servlet._ -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import scala.io.Source +import jakarta.servlet._ +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.eclipse.jetty.servlet.{ServletContextHandler, ServletHolder} import org.eclipse.jetty.util.thread.QueuedThreadPool import org.mockito.Mockito.{mock, when} diff --git a/core/src/test/scala/org/apache/spark/ui/env/EnvironmentPageSuite.scala b/core/src/test/scala/org/apache/spark/ui/env/EnvironmentPageSuite.scala index a318e08d23d6..d8074bf879dd 100644 --- a/core/src/test/scala/org/apache/spark/ui/env/EnvironmentPageSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/env/EnvironmentPageSuite.scala @@ -17,8 +17,7 @@ package org.apache.spark.ui.env -import javax.servlet.http.HttpServletRequest - +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito._ import org.apache.spark.SparkConf diff --git a/core/src/test/scala/org/apache/spark/ui/storage/StoragePageSuite.scala b/core/src/test/scala/org/apache/spark/ui/storage/StoragePageSuite.scala index ccaa836e48f9..7f8cba0c3918 100644 --- a/core/src/test/scala/org/apache/spark/ui/storage/StoragePageSuite.scala +++ b/core/src/test/scala/org/apache/spark/ui/storage/StoragePageSuite.scala @@ -17,10 +17,9 @@ package org.apache.spark.ui.storage -import javax.servlet.http.HttpServletRequest - import scala.xml.{Node, Text} +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito._ import org.apache.spark.SparkFunSuite diff --git a/dev/deps/spark-deps-hadoop-3-hive-2.3 b/dev/deps/spark-deps-hadoop-3-hive-2.3 index 97205011e265..2d9035afebed 100644 --- a/dev/deps/spark-deps-hadoop-3-hive-2.3 +++ b/dev/deps/spark-deps-hadoop-3-hive-2.3 @@ -13,7 +13,7 @@ aliyun-sdk-oss/3.13.0//aliyun-sdk-oss-3.13.0.jar annotations/17.0.0//annotations-17.0.0.jar antlr-runtime/3.5.2//antlr-runtime-3.5.2.jar antlr4-runtime/4.13.1//antlr4-runtime-4.13.1.jar -aopalliance-repackaged/2.6.1//aopalliance-repackaged-2.6.1.jar +aopalliance-repackaged/3.0.3//aopalliance-repackaged-3.0.3.jar arpack/3.0.3//arpack-3.0.3.jar arpack_combined_all/0.1//arpack_combined_all-0.1.jar arrow-format/15.0.0//arrow-format-15.0.0.jar @@ -94,9 +94,9 @@ hive-shims-common/2.3.9//hive-shims-common-2.3.9.jar hive-shims-scheduler/2.3.9//hive-shims-scheduler-2.3.9.jar hive-shims/2.3.9//hive-shims-2.3.9.jar hive-storage-api/2.8.1//hive-storage-api-2.8.1.jar -hk2-api/2.6.1//hk2-api-2.6.1.jar -hk2-locator/2.6.1//hk2-locator-2.6.1.jar -hk2-utils/2.6.1//hk2-utils-2.6.1.jar +hk2-api/3.0.3//hk2-api-3.0.3.jar +hk2-locator/3.0.3//hk2-locator-3.0.3.jar +hk2-utils/3.0.3//hk2-utils-3.0.3.jar httpclient/4.5.14//httpclient-4.5.14.jar httpcore/4.4.16//httpcore-4.4.16.jar icu4j/72.1//icu4j-72.1.jar @@ -112,30 +112,32 @@ jackson-dataformat-yaml/2.16.1//jackson-dataformat-yaml-2.16.1.jar jackson-datatype-jsr310/2.16.1//jackson-datatype-jsr310-2.16.1.jar jackson-mapper-asl/1.9.13//jackson-mapper-asl-1.9.13.jar jackson-module-scala_2.13/2.16.1//jackson-module-scala_2.13-2.16.1.jar -jakarta.annotation-api/1.3.5//jakarta.annotation-api-1.3.5.jar -jakarta.inject/2.6.1//jakarta.inject-2.6.1.jar -jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar -jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar -jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar +jakarta.annotation-api/2.0.0//jakarta.annotation-api-2.0.0.jar +jakarta.inject-api/2.0.1//jakarta.inject-api-2.0.1.jar +jakarta.servlet-api/5.0.0//jakarta.servlet-api-5.0.0.jar +jakarta.validation-api/3.0.2//jakarta.validation-api-3.0.2.jar +jakarta.ws.rs-api/3.0.0//jakarta.ws.rs-api-3.0.0.jar jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar janino/3.1.9//janino-3.1.9.jar java-diff-utils/4.12//java-diff-utils-4.12.jar javassist/3.29.2-GA//javassist-3.29.2-GA.jar javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar +javax.servlet-api/4.0.1//javax.servlet-api-4.0.1.jar javolution/5.5.1//javolution-5.5.1.jar +jaxb-api/2.2.11//jaxb-api-2.2.11.jar jaxb-runtime/2.3.2//jaxb-runtime-2.3.2.jar jcl-over-slf4j/2.0.11//jcl-over-slf4j-2.0.11.jar jdo-api/3.0.1//jdo-api-3.0.1.jar jdom2/2.0.6//jdom2-2.0.6.jar -jersey-client/2.41//jersey-client-2.41.jar -jersey-common/2.41//jersey-common-2.41.jar -jersey-container-servlet-core/2.41//jersey-container-servlet-core-2.41.jar -jersey-container-servlet/2.41//jersey-container-servlet-2.41.jar -jersey-hk2/2.41//jersey-hk2-2.41.jar -jersey-server/2.41//jersey-server-2.41.jar +jersey-client/3.0.12//jersey-client-3.0.12.jar +jersey-common/3.0.12//jersey-common-3.0.12.jar +jersey-container-servlet-core/3.0.12//jersey-container-servlet-core-3.0.12.jar +jersey-container-servlet/3.0.12//jersey-container-servlet-3.0.12.jar +jersey-hk2/3.0.12//jersey-hk2-3.0.12.jar +jersey-server/3.0.12//jersey-server-3.0.12.jar jettison/1.5.4//jettison-1.5.4.jar -jetty-util-ajax/10.0.19//jetty-util-ajax-10.0.19.jar -jetty-util/10.0.19//jetty-util-10.0.19.jar +jetty-util-ajax/11.0.19//jetty-util-ajax-11.0.19.jar +jetty-util/11.0.19//jetty-util-11.0.19.jar jline/2.14.6//jline-2.14.6.jar jline/3.22.0//jline-3.22.0.jar jna/5.13.0//jna-5.13.0.jar diff --git a/docs/core-migration-guide.md b/docs/core-migration-guide.md index 26e6b0f1f444..b80d1441dab4 100644 --- a/docs/core-migration-guide.md +++ b/docs/core-migration-guide.md @@ -24,6 +24,8 @@ license: | ## Upgrading from Core 3.5 to 4.0 +- Since Spark 4.0, Spark migrated all its internal reference of servlet API from `javax` to `jakarta` + - Since Spark 4.0, Spark will roll event logs to archive them incrementally. To restore the behavior before Spark 4.0, you can set `spark.eventLog.rolling.enabled` to `false`. - Since Spark 4.0, Spark will compress event logs. To restore the behavior before Spark 4.0, you can set `spark.eventLog.compress` to `false`. diff --git a/mllib/pom.xml b/mllib/pom.xml index 49a53e9a994f..4f983a325a0c 100644 --- a/mllib/pom.xml +++ b/mllib/pom.xml @@ -34,6 +34,10 @@ https://spark.apache.org/ + + javax.xml.bind + jaxb-api + org.scala-lang.modules scala-parser-combinators_${scala.binary.version} diff --git a/pom.xml b/pom.xml index 124552a42ff7..eccbd3846655 100644 --- a/pom.xml +++ b/pom.xml @@ -143,8 +143,10 @@ 1.13.1 1.9.2 shaded-protobuf - 10.0.19 - 4.0.3 + 11.0.19 + 5.0.0 + + 4.0.1 0.10.0 - 2.41 + 3.0.12 2.12.7 3.5.2 3.0.0 + 2.2.11 0.12.0 4.13.1 1.1 @@ -562,6 +561,7 @@ + @@ -1083,7 +1083,7 @@ javax.xml.bind jaxb-api - 2.2.11 + ${jaxb.version} org.scalanlp @@ -2841,6 +2841,16 @@ datasketches-java ${datasketches.version} + + jakarta.servlet + jakarta.servlet-api + ${jakartaservlet.version} + + + javax.servlet + javax.servlet-api + ${javaxservlet.version} + diff --git a/project/MimaExcludes.scala b/project/MimaExcludes.scala index 3e1391317eab..225a13cd3537 100644 --- a/project/MimaExcludes.scala +++ b/project/MimaExcludes.scala @@ -79,7 +79,10 @@ object MimaExcludes { // TODO(SPARK-46878): Invalid Mima report for StringType extension ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.sql.types.StringType.this"), // SPARK-47011: Remove deprecated BinaryClassificationMetrics.scoreLabelsWeight - ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.mllib.evaluation.BinaryClassificationMetrics.scoreLabelsWeight") + ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.spark.mllib.evaluation.BinaryClassificationMetrics.scoreLabelsWeight"), + // SPARK-46938: Javax -> Jakarta namespace change. + ProblemFilters.exclude[MissingTypesProblem]("org.apache.spark.ui.ProxyRedirectHandler$ResponseWrapper"), + ProblemFilters.exclude[IncompatibleMethTypeProblem]("org.apache.spark.ui.ProxyRedirectHandler#ResponseWrapper.this") ) // Default exclude rules diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index af7a7905377d..9ca53f46eec0 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -243,7 +243,9 @@ object SparkBuild extends PomBuild { // SPARK-45627 `enum`, `export` and `given` will become keywords in Scala 3, // so they are prohibited from being used as variable names in Scala 2.13 to // reduce the cost of migration in subsequent versions. - "-Wconf:cat=deprecation&msg=it will become a keyword in Scala 3:e" + "-Wconf:cat=deprecation&msg=it will become a keyword in Scala 3:e", + // SPARK-46938 to prevent enum scan on pmml-model, under spark-mllib module. + "-Wconf:cat=other&site=org.dmg.pmml.*:w" ) } ) diff --git a/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilter.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilter.scala index ae625df75362..22c71dd59494 100644 --- a/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilter.scala +++ b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilter.scala @@ -17,8 +17,8 @@ package org.apache.spark.deploy.yarn -import javax.servlet._ -import javax.servlet.http.{HttpServletRequest, HttpServletResponse} +import jakarta.servlet._ +import jakarta.servlet.http.{HttpServletRequest, HttpServletResponse} import org.apache.spark.internal.Logging diff --git a/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala index 8b88d38f033b..1e3bec628d90 100644 --- a/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala +++ b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala @@ -19,12 +19,12 @@ package org.apache.spark.scheduler.cluster import java.util.EnumSet import java.util.concurrent.atomic.AtomicBoolean -import javax.servlet.DispatcherType import scala.concurrent.{ExecutionContext, Future} import scala.util.{Failure, Success} import scala.util.control.NonFatal +import jakarta.servlet.DispatcherType import org.apache.hadoop.yarn.api.records.{ApplicationAttemptId, ApplicationId} import org.apache.spark.SparkContext diff --git a/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilterSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilterSuite.scala index 54dbe9d50a68..d4058cc67e1b 100644 --- a/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilterSuite.scala +++ b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnProxyRedirectFilterSuite.scala @@ -18,9 +18,9 @@ package org.apache.spark.deploy.yarn import java.io.{PrintWriter, StringWriter} -import javax.servlet.FilterChain -import javax.servlet.http.{Cookie, HttpServletRequest, HttpServletResponse} +import jakarta.servlet.FilterChain +import jakarta.servlet.http.{Cookie, HttpServletRequest, HttpServletResponse} import org.mockito.Mockito._ import org.apache.spark.SparkFunSuite diff --git a/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackendSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackendSuite.scala index 7959bb55d7ff..1e0de9d6db31 100644 --- a/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackendSuite.scala +++ b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackendSuite.scala @@ -18,8 +18,8 @@ package org.apache.spark.scheduler.cluster import java.net.URL import java.util.concurrent.atomic.AtomicReference -import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} +import jakarta.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse} import org.mockito.Mockito.when import org.scalatestplus.mockito.MockitoSugar diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/AllExecutionsPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/AllExecutionsPage.scala index c9090cacdb3e..3a25f5770c9d 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/AllExecutionsPage.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/AllExecutionsPage.scala @@ -19,11 +19,12 @@ package org.apache.spark.sql.execution.ui import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.collection.mutable import scala.xml.{Node, NodeSeq} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.JobExecutionStatus import org.apache.spark.internal.Logging import org.apache.spark.internal.config.UI.UI_SQL_GROUP_SUB_EXECUTION_ENABLED diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala index cbec837762b7..2a6c15df5d1d 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/ui/ExecutionPage.scala @@ -17,10 +17,9 @@ package org.apache.spark.sql.execution.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.json4s.JNull import org.json4s.JsonAST.{JBool, JString} import org.json4s.jackson.JsonMethods.parse diff --git a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPage.scala index e16a09b38743..8c9993602b8e 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPage.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPage.scala @@ -19,11 +19,12 @@ package org.apache.spark.sql.streaming.ui import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.collection.mutable import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.sql.streaming.ui.UIUtils._ import org.apache.spark.ui.{PagedDataSource, PagedTable, UIUtils => SparkUIUtils, WebUIPage} diff --git a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala index ebd7f925de42..4c0195b81947 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/streaming/ui/StreamingQueryStatisticsPage.scala @@ -20,11 +20,12 @@ package org.apache.spark.sql.streaming.ui import java.{util => ju} import java.lang.{Long => JLong} import java.util.Locale -import javax.servlet.http.HttpServletRequest import scala.jdk.CollectionConverters._ import scala.xml.{Node, NodeBuffer, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.sql.execution.streaming.state.StateStoreProvider import org.apache.spark.sql.internal.SQLConf.STATE_STORE_PROVIDER_CLASS diff --git a/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/ApiSqlRootResource.scala b/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/ApiSqlRootResource.scala index 747c05b9b062..e8a20d0a97d4 100644 --- a/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/ApiSqlRootResource.scala +++ b/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/ApiSqlRootResource.scala @@ -17,7 +17,7 @@ package org.apache.spark.status.api.v1.sql -import javax.ws.rs.{Path, PathParam} +import jakarta.ws.rs.{Path, PathParam} import org.apache.spark.status.api.v1.ApiRequestContext diff --git a/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/SqlResource.scala b/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/SqlResource.scala index fa5bea5f9bbe..eb74d7e7131d 100644 --- a/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/SqlResource.scala +++ b/sql/core/src/main/scala/org/apache/spark/status/api/v1/sql/SqlResource.scala @@ -18,11 +18,12 @@ package org.apache.spark.status.api.v1.sql import java.util.Date -import javax.ws.rs._ -import javax.ws.rs.core.MediaType import scala.util.{Failure, Success, Try} +import jakarta.ws.rs._ +import jakarta.ws.rs.core.MediaType + import org.apache.spark.JobExecutionStatus import org.apache.spark.sql.execution.ui.{SparkPlanGraph, SparkPlanGraphCluster, SparkPlanGraphNode, SQLAppStatusStore, SQLExecutionUIData} import org.apache.spark.status.api.v1.{BaseAppResource, NotFoundException} diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/ui/AllExecutionsPageSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/ui/AllExecutionsPageSuite.scala index 17a5e0daaaff..b98f3c41f78d 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/ui/AllExecutionsPageSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/ui/AllExecutionsPageSuite.scala @@ -19,10 +19,10 @@ package org.apache.spark.sql.execution.ui import java.util import java.util.{Locale, Properties} -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when, RETURNS_SMART_NULLS} import org.scalatest.BeforeAndAfter diff --git a/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryHistorySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryHistorySuite.scala index 160535ea4d04..5ee4d9d80f3f 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryHistorySuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryHistorySuite.scala @@ -18,8 +18,8 @@ package org.apache.spark.sql.streaming.ui import java.util.Locale -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when} import org.scalatest.BeforeAndAfter diff --git a/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPageSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPageSuite.scala index 0f390dde2634..530ff0faa2d6 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPageSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/streaming/ui/StreamingQueryPageSuite.scala @@ -18,10 +18,10 @@ package org.apache.spark.sql.streaming.ui import java.util.{Locale, UUID} -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when, RETURNS_SMART_NULLS} import org.scalatest.BeforeAndAfter diff --git a/sql/core/src/test/scala/org/apache/spark/status/api/v1/sql/SqlResourceWithActualMetricsSuite.scala b/sql/core/src/test/scala/org/apache/spark/status/api/v1/sql/SqlResourceWithActualMetricsSuite.scala index fc9e4513d12e..1b7909534a03 100644 --- a/sql/core/src/test/scala/org/apache/spark/status/api/v1/sql/SqlResourceWithActualMetricsSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/status/api/v1/sql/SqlResourceWithActualMetricsSuite.scala @@ -19,8 +19,8 @@ package org.apache.spark.status.api.v1.sql import java.net.URL import java.text.SimpleDateFormat -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.http.HttpServletResponse import org.json4s.DefaultFormats import org.json4s.jackson.JsonMethods import org.scalatest.time.SpanSugar._ diff --git a/sql/hive-thriftserver/pom.xml b/sql/hive-thriftserver/pom.xml index 04d77209bb39..d9b16f64970e 100644 --- a/sql/hive-thriftserver/pom.xml +++ b/sql/hive-thriftserver/pom.xml @@ -95,6 +95,11 @@ jetty-servlet provided + + javax.servlet + javax.servlet-api + provided + org.seleniumhq.selenium diff --git a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/TServlet.java b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/TServlet.java new file mode 100644 index 000000000000..904e7bcf665d --- /dev/null +++ b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/TServlet.java @@ -0,0 +1,138 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hive.service.cli.thrift; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; + +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import org.apache.thrift.TException; +import org.apache.thrift.TProcessor; +import org.apache.thrift.protocol.TProtocol; +import org.apache.thrift.protocol.TProtocolFactory; +import org.apache.thrift.transport.TIOStreamTransport; +import org.apache.thrift.transport.TTransport; + +/** + * Servlet implementation class ThriftServer Copied from LIbThrift, + * This class serve as a temporary workaround due to the JavaX Servlet namespace change + * and should be removed when Hive upgrade to 3.x.x with LibThrift v0.19.0. + */ +public class TServlet extends HttpServlet { + + private final TProcessor processor; + + private final TProtocolFactory inProtocolFactory; + + private final TProtocolFactory outProtocolFactory; + + private final Collection> customHeaders; + + /** + * @see HttpServlet#HttpServlet() + */ + public TServlet(TProcessor processor, TProtocolFactory inProtocolFactory, + TProtocolFactory outProtocolFactory) { + super(); + this.processor = processor; + this.inProtocolFactory = inProtocolFactory; + this.outProtocolFactory = outProtocolFactory; + this.customHeaders = new ArrayList>(); + } + + /** + * @see HttpServlet#HttpServlet() + */ + public TServlet(TProcessor processor, TProtocolFactory protocolFactory) { + this(processor, protocolFactory, protocolFactory); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse + * response) + */ + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + TTransport inTransport = null; + TTransport outTransport = null; + + try { + response.setContentType("application/x-thrift"); + + if (null != this.customHeaders) { + for (Map.Entry header : this.customHeaders) { + response.addHeader(header.getKey(), header.getValue()); + } + } + InputStream in = request.getInputStream(); + OutputStream out = response.getOutputStream(); + + TTransport transport = new TIOStreamTransport(in, out); + inTransport = transport; + outTransport = transport; + + TProtocol inProtocol = inProtocolFactory.getProtocol(inTransport); + TProtocol outProtocol = outProtocolFactory.getProtocol(outTransport); + + processor.process(inProtocol, outProtocol); + out.flush(); + } catch (TException te) { + throw new ServletException(te); + } + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse + * response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + doPost(request, response); + } + + public void addCustomHeader(final String key, final String value) { + this.customHeaders.add(new Map.Entry() { + public String getKey() { + return key; + } + + public String getValue() { + return value; + } + + public String setValue(String value) { + return null; + } + }); + } + + public void setCustomHeaders(Collection> headers) { + this.customHeaders.clear(); + this.customHeaders.addAll(headers); + } +} diff --git a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpCLIService.java b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpCLIService.java index 3fe60aa681f9..9592bffcf1bf 100644 --- a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpCLIService.java +++ b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpCLIService.java @@ -37,7 +37,6 @@ import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocolFactory; -import org.apache.thrift.server.TServlet; import org.eclipse.jetty.server.AbstractConnectionFactory; import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.HttpConnectionFactory; diff --git a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java index 712b1d49eacb..b0bede741cb1 100644 --- a/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java +++ b/sql/hive-thriftserver/src/main/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java @@ -25,11 +25,11 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.NewCookie; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.NewCookie; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.StringUtils; @@ -49,7 +49,6 @@ import org.apache.hive.service.cli.session.SessionManager; import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TProtocolFactory; -import org.apache.thrift.server.TServlet; import org.ietf.jgss.GSSContext; import org.ietf.jgss.GSSCredential; import org.ietf.jgss.GSSException; @@ -550,7 +549,7 @@ private static String getDoAsQueryParam(String queryString) { if (queryString == null) { return null; } - Map params = javax.servlet.http.HttpUtils.parseQueryString( queryString ); + Map params = jakarta.servlet.http.HttpUtils.parseQueryString( queryString ); Set keySet = params.keySet(); for (String key: keySet) { if (key.equalsIgnoreCase("doAs")) { diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala index d47a99466a54..442d3cfa6a41 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPage.scala @@ -19,10 +19,11 @@ package org.apache.spark.sql.hive.thriftserver.ui import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.sql.hive.thriftserver.ui.ToolTips._ import org.apache.spark.ui._ diff --git a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala index 1ccb297b75c2..50a4530de905 100644 --- a/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala +++ b/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerSessionPage.scala @@ -17,10 +17,10 @@ package org.apache.spark.sql.hive.thriftserver.ui -import javax.servlet.http.HttpServletRequest - import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.ui._ import org.apache.spark.ui.UIUtils._ diff --git a/sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPageSuite.scala b/sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPageSuite.scala index 1245e6740ebb..7cf17a089ea6 100644 --- a/sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPageSuite.scala +++ b/sql/hive-thriftserver/src/test/scala/org/apache/spark/sql/hive/thriftserver/ui/ThriftServerPageSuite.scala @@ -19,8 +19,8 @@ package org.apache.spark.sql.hive.thriftserver.ui import java.io.File import java.util.{Calendar, Locale} -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.mockito.Mockito.{mock, when, RETURNS_SMART_NULLS} import org.scalatest.BeforeAndAfter diff --git a/sql/hive/pom.xml b/sql/hive/pom.xml index 42618fe5bc22..b9770a211750 100644 --- a/sql/hive/pom.xml +++ b/sql/hive/pom.xml @@ -135,6 +135,10 @@ jackson-mapper-asl + + javax.servlet + javax.servlet-api + commons-codec commons-codec diff --git a/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingApp.scala b/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingApp.scala index 07d8164e1d2c..53e1a5acebb5 100644 --- a/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingApp.scala +++ b/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingApp.scala @@ -17,7 +17,7 @@ package org.apache.spark.status.api.v1.streaming -import javax.ws.rs.{Path, PathParam} +import jakarta.ws.rs.{Path, PathParam} import org.apache.spark.status.api.v1._ import org.apache.spark.streaming.ui.StreamingJobProgressListener diff --git a/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingRootResource.scala b/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingRootResource.scala index 99d59e4a1447..d1dad1ae2570 100644 --- a/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingRootResource.scala +++ b/streaming/src/main/scala/org/apache/spark/status/api/v1/streaming/ApiStreamingRootResource.scala @@ -18,8 +18,9 @@ package org.apache.spark.status.api.v1.streaming import java.util.{Arrays => JArrays, Collections, Date, List => JList} -import javax.ws.rs.{GET, Path, PathParam, Produces, QueryParam} -import javax.ws.rs.core.MediaType + +import jakarta.ws.rs.{GET, Path, PathParam, Produces, QueryParam} +import jakarta.ws.rs.core.MediaType import org.apache.spark.status.api.v1.NotFoundException import org.apache.spark.streaming.Time diff --git a/streaming/src/main/scala/org/apache/spark/streaming/ui/AllBatchesTable.scala b/streaming/src/main/scala/org/apache/spark/streaming/ui/AllBatchesTable.scala index c0eec0e0b0a8..8fda57e5b289 100644 --- a/streaming/src/main/scala/org/apache/spark/streaming/ui/AllBatchesTable.scala +++ b/streaming/src/main/scala/org/apache/spark/streaming/ui/AllBatchesTable.scala @@ -19,10 +19,11 @@ package org.apache.spark.streaming.ui import java.net.URLEncoder import java.nio.charset.StandardCharsets.UTF_8 -import javax.servlet.http.HttpServletRequest import scala.xml.Node +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.ui.{PagedDataSource, PagedTable, UIUtils => SparkUIUtils} private[ui] class StreamingPagedTable( diff --git a/streaming/src/main/scala/org/apache/spark/streaming/ui/BatchPage.scala b/streaming/src/main/scala/org/apache/spark/streaming/ui/BatchPage.scala index 949f47783ed2..40a5f184ab24 100644 --- a/streaming/src/main/scala/org/apache/spark/streaming/ui/BatchPage.scala +++ b/streaming/src/main/scala/org/apache/spark/streaming/ui/BatchPage.scala @@ -17,10 +17,9 @@ package org.apache.spark.streaming.ui -import javax.servlet.http.HttpServletRequest - import scala.xml._ +import jakarta.servlet.http.HttpServletRequest import org.apache.commons.text.StringEscapeUtils import org.apache.spark.status.api.v1.{JobData, StageData} diff --git a/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingPage.scala b/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingPage.scala index 43a903ab99f2..3a9b2c10da18 100644 --- a/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingPage.scala +++ b/streaming/src/main/scala/org/apache/spark/streaming/ui/StreamingPage.scala @@ -18,11 +18,12 @@ package org.apache.spark.streaming.ui import java.util.concurrent.TimeUnit -import javax.servlet.http.HttpServletRequest import scala.collection.mutable import scala.xml.{Node, Unparsed} +import jakarta.servlet.http.HttpServletRequest + import org.apache.spark.internal.Logging import org.apache.spark.ui.{GraphUIData, JsCollector, UIUtils => SparkUIUtils, WebUIPage} import org.apache.spark.util.Utils