Skip to content

Commit 89504ca

Browse files
authored
Merge pull request #378 from http4s/merge-0.24-to-0.25
2 parents a08877c + 6174fd4 commit 89504ca

File tree

13 files changed

+71
-59
lines changed

13 files changed

+71
-59
lines changed

.scala-steward.conf

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
11
updates.pin = [
2-
# Servlet 4 debuts in series/0.24
3-
{ groupId = "javax.servlet", version = "3." },
4-
# Jetty > 10 is a breaking change
5-
{ groupId = "org.eclipse.jetty", version = "10." },
6-
{ groupId = "org.eclipse.jetty.http2", version = "10." }
2+
# Servlet 6 will happen on another release series
3+
{ groupId = "jakarta.servlet", version = "5." }
4+
]
5+
6+
updates.ignore = [
7+
# Inherit from series/0.24
8+
{ groupId = "com.earldouglas", artifactId = "xsbt-web-plugin" },
9+
{ groupId = "org.http4s", artifactId = "http4s-dsl" },
10+
{ groupId = "org.http4s", artifactId = "http4s-server" },
11+
{ groupId = "org.http4s", artifactId = "http4s-scalafix-internal" },
12+
{ groupId = "org.http4s", artifactId = "sbt-http4s-org" },
13+
{ groupId = "org.scala-lang", artifactId = "scala-library" },
14+
{ groupId = "org.scala-lang", artifactId = "scala3-library" },
15+
{ groupId = "org.scala-sbt", artifactId = "sbt" },
16+
{ groupId = "org.scalameta", artifactId = "scalafmt-core" },
17+
{ groupId = "org.typelevel", artifactId = "munit-cats-effect-3" }
718
]

build.sbt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// https://typelevel.org/sbt-typelevel/faq.html#what-is-a-base-version-anyway
2-
ThisBuild / tlBaseVersion := "0.24" // your current series x.y
2+
ThisBuild / tlBaseVersion := "0.25" // your current series x.y
33

44
ThisBuild / licenses := Seq(License.Apache2)
55
ThisBuild / developers := List(
@@ -22,18 +22,18 @@ ThisBuild / startYear := Some(2013)
2222
lazy val root = tlCrossRootProject.aggregate(servlet, examples)
2323

2424
val asyncHttpClientVersion = "2.12.3"
25-
val jettyVersion = "10.0.25"
25+
val jettyVersion = "11.0.15"
2626
val http4sVersion = "0.23.30"
2727
val munitCatsEffectVersion = "2.1.0"
28-
val servletApiVersion = "4.0.1"
28+
val servletApiVersion = "5.0.0"
2929

3030
lazy val servlet = project
3131
.in(file("servlet"))
3232
.settings(
3333
name := "http4s-servlet",
3434
description := "Portable servlet implementation for http4s servers",
3535
libraryDependencies ++= Seq(
36-
"javax.servlet" % "javax.servlet-api" % servletApiVersion % Provided,
36+
"jakarta.servlet" % "jakarta.servlet-api" % servletApiVersion % Provided,
3737
"org.eclipse.jetty" % "jetty-client" % jettyVersion % Test,
3838
"org.eclipse.jetty" % "jetty-server" % jettyVersion % Test,
3939
"org.eclipse.jetty" % "jetty-servlet" % jettyVersion % Test,
@@ -54,7 +54,7 @@ lazy val examples = project
5454
fork := true,
5555
Jetty / containerLibs := List("org.eclipse.jetty" % "jetty-runner" % jettyVersion),
5656
libraryDependencies ++= Seq(
57-
"javax.servlet" % "javax.servlet-api" % servletApiVersion % Provided
57+
"jakarta.servlet" % "jakarta.servlet-api" % servletApiVersion % Provided
5858
),
5959
)
6060
.dependsOn(servlet)

examples/src/main/scala/com/example/Bootstrap.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,12 @@ package com.example
1919
import cats.effect.IO
2020
import cats.effect.std.Dispatcher
2121
import cats.effect.unsafe.implicits.global
22+
import jakarta.servlet.ServletContextEvent
23+
import jakarta.servlet.ServletContextListener
24+
import jakarta.servlet.annotation.WebListener
2225
import org.http4s._
2326
import org.http4s.servlet.syntax._
2427

25-
import javax.servlet.ServletContextEvent
26-
import javax.servlet.ServletContextListener
27-
import javax.servlet.annotation.WebListener
28-
2928
@WebListener
3029
/** 1. To start from sbt: `examples/Jetty/start`
3130
* 2. Browse to http://localhost:8080/http4s/

servlet/src/main/scala/org/http4s/servlet/AbstractAsyncListener.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
package org.http4s.servlet
1818

19-
import javax.servlet.AsyncEvent
20-
import javax.servlet.AsyncListener
19+
import jakarta.servlet.AsyncEvent
20+
import jakarta.servlet.AsyncListener
2121

2222
protected[servlet] abstract class AbstractAsyncListener extends AsyncListener {
2323
override def onComplete(event: AsyncEvent): Unit = {}

servlet/src/main/scala/org/http4s/servlet/AsyncHttp4sServlet.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ import cats.effect.kernel.Async
2121
import cats.effect.kernel.Deferred
2222
import cats.effect.std.Dispatcher
2323
import cats.syntax.all._
24+
import jakarta.servlet._
25+
import jakarta.servlet.http.HttpServletRequest
26+
import jakarta.servlet.http.HttpServletResponse
2427
import org.http4s.server._
2528

26-
import javax.servlet._
27-
import javax.servlet.http.HttpServletRequest
28-
import javax.servlet.http.HttpServletResponse
2929
import scala.annotation.nowarn
3030
import scala.concurrent.duration.Duration
3131

servlet/src/main/scala/org/http4s/servlet/BlockingHttp4sServlet.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ package servlet
2020
import cats.effect.kernel.Sync
2121
import cats.effect.std.Dispatcher
2222
import cats.syntax.all._
23+
import jakarta.servlet.http.HttpServletRequest
24+
import jakarta.servlet.http.HttpServletResponse
2325
import org.http4s.server._
2426

25-
import javax.servlet.http.HttpServletRequest
26-
import javax.servlet.http.HttpServletResponse
2727
import scala.annotation.nowarn
2828

2929
class BlockingHttp4sServlet[F[_]] private (

servlet/src/main/scala/org/http4s/servlet/Http4sServlet.scala

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ import cats.syntax.all._
2222
import com.comcast.ip4s.IpAddress
2323
import com.comcast.ip4s.Port
2424
import com.comcast.ip4s.SocketAddress
25+
import jakarta.servlet.ServletConfig
26+
import jakarta.servlet.http.HttpServlet
27+
import jakarta.servlet.http.HttpServletRequest
28+
import jakarta.servlet.http.HttpServletResponse
29+
import jakarta.servlet.http.HttpSession
2530
import org.http4s._
2631
import org.http4s.internal.CollectionCompat.CollectionConverters._
2732
import org.http4s.server.SecureSession
@@ -32,11 +37,6 @@ import org.typelevel.ci._
3237
import org.typelevel.vault._
3338

3439
import java.security.cert.X509Certificate
35-
import javax.servlet.ServletConfig
36-
import javax.servlet.http.HttpServlet
37-
import javax.servlet.http.HttpServletRequest
38-
import javax.servlet.http.HttpServletResponse
39-
import javax.servlet.http.HttpSession
4040

4141
abstract class Http4sServlet[F[_]](
4242
service: HttpApp[F],
@@ -140,12 +140,14 @@ abstract class Http4sServlet[F[_]](
140140
.insert(
141141
ServerRequestKeys.SecureSession,
142142
(
143-
Option(req.getAttribute("javax.servlet.request.ssl_session_id").asInstanceOf[String]),
144-
Option(req.getAttribute("javax.servlet.request.cipher_suite").asInstanceOf[String]),
145-
Option(req.getAttribute("javax.servlet.request.key_size").asInstanceOf[Int]),
143+
Option(
144+
req.getAttribute("jakarta.servlet.request.ssl_session_id").asInstanceOf[String]
145+
),
146+
Option(req.getAttribute("jakarta.servlet.request.cipher_suite").asInstanceOf[String]),
147+
Option(req.getAttribute("jakarta.servlet.request.key_size").asInstanceOf[Int]),
146148
Option(
147149
req
148-
.getAttribute("javax.servlet.request.X509Certificate")
150+
.getAttribute("jakarta.servlet.request.X509Certificate")
149151
.asInstanceOf[Array[X509Certificate]]
150152
),
151153
)

servlet/src/main/scala/org/http4s/servlet/ServletApiVersion.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717
package org.http4s.servlet
1818

19-
import javax.servlet.ServletContext
19+
import jakarta.servlet.ServletContext
20+
2021
import scala.math.Ordered.orderingToOrdered
2122

2223
final case class ServletApiVersion(major: Int, minor: Int) extends Ordered[ServletApiVersion] {

servlet/src/main/scala/org/http4s/servlet/ServletContainer.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ package org.http4s
1818
package servlet
1919

2020
import cats.effect._
21+
import jakarta.servlet.DispatcherType
22+
import jakarta.servlet.http.HttpFilter
23+
import jakarta.servlet.http.HttpServlet
2124
import org.http4s.server.ServerBuilder
2225

2326
import java.util
24-
import javax.servlet.DispatcherType
25-
import javax.servlet.http.HttpFilter
26-
import javax.servlet.http.HttpServlet
2727

2828
abstract class ServletContainer[F[_]] extends ServerBuilder[F] {
2929
type Self <: ServletContainer[F]

servlet/src/main/scala/org/http4s/servlet/ServletIo.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ import cats.effect.std.Dispatcher
2222
import cats.effect.std.Queue
2323
import cats.syntax.all._
2424
import fs2._
25+
import jakarta.servlet.ReadListener
26+
import jakarta.servlet.WriteListener
27+
import jakarta.servlet.http.HttpServletRequest
28+
import jakarta.servlet.http.HttpServletResponse
2529
import org.log4s.getLogger
2630

2731
import java.util.Arrays
28-
import javax.servlet.ReadListener
29-
import javax.servlet.WriteListener
30-
import javax.servlet.http.HttpServletRequest
31-
import javax.servlet.http.HttpServletResponse
3232

3333
/** Determines the mode of I/O used for reading request bodies and writing response bodies.
3434
*/

0 commit comments

Comments
 (0)