From 9a7d503e6ddbf32ddcdf95cfc760e5f080f0abf4 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Mon, 30 Sep 2024 23:29:38 +0100 Subject: [PATCH 1/4] release notes for v1.1.0 (#591) --- .github/workflows/publish-1.1-docs.yml | 12 ++++++------ docs/src/main/paradox/release-notes/releases-1.1.md | 11 +++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish-1.1-docs.yml b/.github/workflows/publish-1.1-docs.yml index ba3791df0..cf8bac87c 100644 --- a/.github/workflows/publish-1.1-docs.yml +++ b/.github/workflows/publish-1.1-docs.yml @@ -43,22 +43,22 @@ jobs: - name: Build Documentation run: |- - sbt -Dpekko.genjavadoc.enabled=true "set ThisBuild / version := \"1.1.0-M1\"; docs/paradox; unidoc" + sbt -Dpekko.genjavadoc.enabled=true "set ThisBuild / version := \"1.1.0\"; docs/paradox; unidoc" env: JAVA_OPTS: "-verbose:gc -Xmx4g" # Create directory structure upfront since rsync does not create intermediate directories otherwise - name: Create directory structure run: |- - mkdir -p target/nightly-docs/docs/pekko-http/1.1.0-M1/ + mkdir -p target/nightly-docs/docs/pekko-http/1.1.0/ mkdir -p target/nightly-docs/docs/pekko-http/1.1/ - cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko-http/1.1.0-M1/docs + cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko-http/1.1.0/docs cp -r docs/target/paradox/site/main/ target/nightly-docs/docs/pekko-http/1.1/docs rm -r docs/target/paradox/site/main/ - cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko-http/1.1.0-M1/api + cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko-http/1.1.0/api cp -r target/scala-2.13/unidoc target/nightly-docs/docs/pekko-http/1.1/api rm -r target/scala-2.13/unidoc - cp -r target/javaunidoc target/nightly-docs/docs/pekko-http/1.1.0-M1/japi + cp -r target/javaunidoc target/nightly-docs/docs/pekko-http/1.1.0/japi cp -r target/javaunidoc target/nightly-docs/docs/pekko-http/1.1/japi rm -r target/javaunidoc @@ -67,7 +67,7 @@ jobs: with: upload: true switches: --archive --compress --update --delete --progress --relative - local_path: target/nightly-docs/./docs/pekko-http/1.1.0-M1 # The intermediate dot is to show `--relative` which paths to operate on + local_path: target/nightly-docs/./docs/pekko-http/1.1.0 # The intermediate dot is to show `--relative` which paths to operate on remote_path: ${{ secrets.NIGHTLIES_RSYNC_PATH }}/pekko/ remote_host: ${{ secrets.NIGHTLIES_RSYNC_HOST }} remote_port: ${{ secrets.NIGHTLIES_RSYNC_PORT }} diff --git a/docs/src/main/paradox/release-notes/releases-1.1.md b/docs/src/main/paradox/release-notes/releases-1.1.md index aa3f8b7c3..13c1f956e 100644 --- a/docs/src/main/paradox/release-notes/releases-1.1.md +++ b/docs/src/main/paradox/release-notes/releases-1.1.md @@ -1,17 +1,20 @@ # 0. Release Notes (1.1.x) -## 1.1.0-M1 +## 1.1.0 -Release notes for Apache Pekko HTTP 1.1.0-M1. See [GitHub Milestone](https://github.com/apache/pekko-http/milestone/1?closed=1) for fuller list of changes. -As with all milestone releases, this release is not recommended for production use - it is designed to allow users to try out the changes in a test environment. +Release notes for Apache Pekko HTTP 1.1.0. See [GitHub Milestone for 1.1.0-M1](https://github.com/apache/pekko-http/milestone/1?closed=1) and [GitHub Milestone for 1.1.0](https://github.com/apache/pekko-http/milestone/4?closed=1) for a fuller list of changes. It is strongly recommended that you avoid using Pekko 1.0.x jars with this release, you should use Pekko 1.1.x jars where possible. We don't expect there to be problems running with Pekko 1.0.x jars but Pekko HTTP 1.1 jars are built with Pekko 1.1 jars. All the changes in the @ref:[1.0.x releases](releases-1.0.md) up to and including v1.0.1. +### Bug Fix +* fix parse broken when header value is null ([PR575](https://github.com/apache/pekko-http/pull/575)) (not in v1.1.0-M1) + ### Changes * Changed names of HTTP status codes 413 and 422 ([PR87](https://github.com/apache/pekko-http/pull/87)) * Parse entire HTTP chunk size ([PR528](https://github.com/apache/pekko-http/pull/528)) +* handle invalid Accept-Charset in requests - default to UTF-8 ([PR584](https://github.com/apache/pekko-http/pull/584)) (not in v1.1.0-M1) ### Additions * Add UnsupportedContentTypeException Java DSL ([PR376](https://github.com/apache/pekko-http/pull/376)) @@ -22,4 +25,4 @@ All the changes in the @ref:[1.0.x releases](releases-1.0.md) up to and includin Most of the dependency changes are small patch level upgrades. Some exceptions include: * slf4j was updated to v2 -* Jackson 2.17.1 +* Jackson 2.17.2 From 7412c4365cf5382ce5199a882a207d40a1d30a4d Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Tue, 1 Oct 2024 13:44:38 +0100 Subject: [PATCH 2/4] use convertIterable to wrap java Iterables (#613) * use convertIterable to wrap java Iterables * Update ConnectionContext.scala * Update MediaTypes.java * Update MediaTypes.java --- .../pekko/http/javadsl/model/MediaTypes.java | 38 ++++++++--------- .../http/javadsl/ConnectionContext.scala | 10 ++--- .../http/javadsl/server/Rejections.scala | 5 ++- .../http/javadsl/server/RouteResult.scala | 5 +-- .../server/directives/BasicDirectives.scala | 41 ++++++++++--------- .../http/scaladsl/server/Rejection.scala | 6 ++- 6 files changed, 52 insertions(+), 53 deletions(-) diff --git a/http-core/src/main/java/org/apache/pekko/http/javadsl/model/MediaTypes.java b/http-core/src/main/java/org/apache/pekko/http/javadsl/model/MediaTypes.java index dcae80ca8..ae1f0c7b8 100644 --- a/http-core/src/main/java/org/apache/pekko/http/javadsl/model/MediaTypes.java +++ b/http-core/src/main/java/org/apache/pekko/http/javadsl/model/MediaTypes.java @@ -467,7 +467,7 @@ public static MediaType.Binary applicationBinary( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.applicationBinary(subType, comp, fileEx); } @@ -478,7 +478,7 @@ public static MediaType.Binary applicationBinary( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.applicationBinary(subType, comp, fileEx); } @@ -489,7 +489,7 @@ public static MediaType.WithFixedCharset applicationWithFixedCharset( (org.apache.pekko.http.scaladsl.model.HttpCharset) charset; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.applicationWithFixedCharset( subType, cs, fileEx); @@ -498,7 +498,7 @@ public static MediaType.WithFixedCharset applicationWithFixedCharset( public static MediaType.WithOpenCharset applicationWithOpenCharset( String subType, String... fileExtensions) { scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.applicationWithOpenCharset( subType, fileEx); @@ -512,7 +512,7 @@ public static MediaType.Binary audio( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.audio(subType, comp, fileEx); } @@ -523,7 +523,7 @@ public static MediaType.Binary audio( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.audio(subType, comp, fileEx); } @@ -536,7 +536,7 @@ public static MediaType.Binary image( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.image(subType, comp, fileEx); } @@ -547,7 +547,7 @@ public static MediaType.Binary image( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.image(subType, comp, fileEx); } @@ -560,7 +560,7 @@ public static MediaType.Binary message( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.message(subType, comp, fileEx); } @@ -571,14 +571,14 @@ public static MediaType.Binary message( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.message(subType, comp, fileEx); } public static MediaType.WithOpenCharset text(String subType, String... fileExtensions) { scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.text(subType, fileEx); } @@ -591,7 +591,7 @@ public static MediaType.Binary video( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.video(subType, comp, fileEx); } @@ -602,7 +602,7 @@ public static MediaType.Binary video( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.Seq fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)); return org.apache.pekko.http.scaladsl.model.MediaType.video(subType, comp, fileEx); } @@ -638,8 +638,7 @@ public static MediaType.Binary customBinary( : org.apache.pekko.http.scaladsl.model.MediaType.NotCompressible$.MODULE$; scala.collection.immutable.List fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)) - .toList(); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)).toList(); scala.collection.immutable.Map p = Util.convertMapToScala(params); @@ -658,8 +657,7 @@ public static MediaType.Binary customBinary( (org.apache.pekko.http.scaladsl.model.MediaType.Compressibility) compressibility; scala.collection.immutable.List fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)) - .toList(); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)).toList(); scala.collection.immutable.Map p = Util.convertMapToScala(params); @@ -678,8 +676,7 @@ public static MediaType.WithFixedCharset customWithFixedCharset( (org.apache.pekko.http.scaladsl.model.HttpCharset) charset; scala.collection.immutable.List fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)) - .toList(); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)).toList(); scala.collection.immutable.Map p = Util.convertMapToScala(params); @@ -694,8 +691,7 @@ public static MediaType.WithOpenCharset customWithOpenCharset( boolean allowArbitrarySubtypes, String... fileExtensions) { scala.collection.immutable.List fileEx = - org.apache.pekko.japi.Util.immutableSeq(java.util.Arrays.asList(fileExtensions)) - .toList(); + Util.convertIterable(java.util.Arrays.asList(fileExtensions)).toList(); scala.collection.immutable.Map p = Util.convertMapToScala(params); diff --git a/http-core/src/main/scala/org/apache/pekko/http/javadsl/ConnectionContext.scala b/http-core/src/main/scala/org/apache/pekko/http/javadsl/ConnectionContext.scala index 61e6010d6..5124ee194 100644 --- a/http-core/src/main/scala/org/apache/pekko/http/javadsl/ConnectionContext.scala +++ b/http-core/src/main/scala/org/apache/pekko/http/javadsl/ConnectionContext.scala @@ -17,8 +17,8 @@ import java.util.{ Collection => JCollection, Optional } import org.apache.pekko import pekko.annotation.{ ApiMayChange, DoNotInherit } +import pekko.http.impl.util.Util import pekko.http.scaladsl -import pekko.japi.Util import pekko.stream.TLSClientAuth import pekko.util.OptionConverters._ import com.typesafe.sslconfig.pekko.PekkoSSLConfig @@ -80,8 +80,8 @@ object ConnectionContext { scaladsl.ConnectionContext.https( sslContext, sslConfig.toScala, - enabledCipherSuites.toScala.map(Util.immutableSeq(_)), - enabledProtocols.toScala.map(Util.immutableSeq(_)), + enabledCipherSuites.toScala.map(Util.convertIterable[String, String](_)), + enabledProtocols.toScala.map(Util.convertIterable[String, String](_)), clientAuth.toScala, sslParameters.toScala) @@ -97,8 +97,8 @@ object ConnectionContext { scaladsl.ConnectionContext.https( sslContext, None, - enabledCipherSuites.toScala.map(Util.immutableSeq(_)), - enabledProtocols.toScala.map(Util.immutableSeq(_)), + enabledCipherSuites.toScala.map(Util.convertIterable[String, String](_)), + enabledProtocols.toScala.map(Util.convertIterable[String, String](_)), clientAuth.toScala, sslParameters.toScala) diff --git a/http/src/main/scala/org/apache/pekko/http/javadsl/server/Rejections.scala b/http/src/main/scala/org/apache/pekko/http/javadsl/server/Rejections.scala index c1864701a..7580861aa 100644 --- a/http/src/main/scala/org/apache/pekko/http/javadsl/server/Rejections.scala +++ b/http/src/main/scala/org/apache/pekko/http/javadsl/server/Rejections.scala @@ -25,7 +25,7 @@ import java.lang.{ Iterable => JIterable } import pekko.annotation.DoNotInherit import pekko.http.scaladsl -import pekko.japi.Util +import pekko.http.impl.util.Util import pekko.pattern.CircuitBreakerOpenException import pekko.util.OptionConverters._ @@ -416,7 +416,8 @@ object Rejections { s.UnsupportedRequestEncodingRejection(supported.asScala) def unsatisfiableRange(unsatisfiableRanges: java.lang.Iterable[ByteRange], actualEntityLength: Long) = - UnsatisfiableRangeRejection(Util.immutableSeq(unsatisfiableRanges).map(_.asScala), actualEntityLength) + UnsatisfiableRangeRejection(Util.convertIterable[ByteRange, ByteRange](unsatisfiableRanges).map(_.asScala), + actualEntityLength) def tooManyRanges(maxRanges: Int) = TooManyRangesRejection(maxRanges) diff --git a/http/src/main/scala/org/apache/pekko/http/javadsl/server/RouteResult.scala b/http/src/main/scala/org/apache/pekko/http/javadsl/server/RouteResult.scala index 2201d6ef2..757c0a0d5 100644 --- a/http/src/main/scala/org/apache/pekko/http/javadsl/server/RouteResult.scala +++ b/http/src/main/scala/org/apache/pekko/http/javadsl/server/RouteResult.scala @@ -28,8 +28,7 @@ trait Rejected extends RouteResult { object RouteResults { import pekko.http.scaladsl.{ server => s } - import pekko.japi.Util - import pekko.http.impl.util.JavaMapping + import pekko.http.impl.util.{ JavaMapping, Util } import JavaMapping.Implicits._ import RoutingJavaMapping._ @@ -38,7 +37,7 @@ object RouteResults { } def rejected(rejections: java.lang.Iterable[Rejection]): Rejected = { - s.RouteResult.Rejected(Util.immutableSeq(rejections).map(_.asScala)) + s.RouteResult.Rejected(Util.convertIterable[Rejection, Rejection](rejections).map(_.asScala)) } } diff --git a/http/src/main/scala/org/apache/pekko/http/javadsl/server/directives/BasicDirectives.scala b/http/src/main/scala/org/apache/pekko/http/javadsl/server/directives/BasicDirectives.scala index 2af03fedb..72605e383 100644 --- a/http/src/main/scala/org/apache/pekko/http/javadsl/server/directives/BasicDirectives.scala +++ b/http/src/main/scala/org/apache/pekko/http/javadsl/server/directives/BasicDirectives.scala @@ -17,39 +17,36 @@ import java.util.function.{ Function => JFunction } import org.apache.pekko import pekko.actor.ActorSystem -import pekko.http.impl.util.JavaMapping -import pekko.http.javadsl.settings.ParserSettings -import pekko.http.javadsl.settings.RoutingSettings +import pekko.dispatch.ExecutionContexts +import pekko.event.LoggingAdapter import pekko.japi.Util +import pekko.stream.Materializer import pekko.stream.javadsl.Source import pekko.util.ByteString +import pekko.util.FutureConverters._ -import scala.concurrent.ExecutionContextExecutor import pekko.http.impl.model.JavaUri -import pekko.http.javadsl.model.HttpRequest -import pekko.http.javadsl.model.HttpEntity -import pekko.http.javadsl.model.RequestEntity -import pekko.http.javadsl.model.Uri +import pekko.http.impl.util.JavaMapping +import pekko.http.impl.util.Util.convertIterable +import pekko.http.javadsl.model.{ HttpEntity, HttpRequest, RequestEntity, Uri } import pekko.http.javadsl.server._ -import pekko.http.scaladsl.server.{ Directives => D } +import pekko.http.javadsl.settings.{ ParserSettings, RoutingSettings } import pekko.http.scaladsl -import pekko.stream.Materializer -import java.util.function.Supplier -import java.util.{ List => JList } +import pekko.http.scaladsl.server.{ Directives => D } import pekko.http.javadsl.model.HttpResponse import pekko.http.javadsl.model.ResponseEntity import pekko.http.javadsl.model.HttpHeader import pekko.http.scaladsl.util.FastFuture._ +import pekko.http.javadsl.server + import java.lang.{ Iterable => JIterable } +import java.util.function.Supplier +import java.util.{ List => JList } import java.util.concurrent.CompletionStage import java.util.function.Predicate -import pekko.dispatch.ExecutionContexts -import pekko.event.LoggingAdapter -import pekko.http.javadsl.server -import pekko.util.FutureConverters._ - +import scala.concurrent.ExecutionContextExecutor import scala.concurrent.duration.FiniteDuration abstract class BasicDirectives { @@ -66,7 +63,8 @@ abstract class BasicDirectives { def mapRejections(f: JFunction[JList[Rejection], JList[Rejection]], inner: Supplier[Route]): Route = RouteAdapter { D.mapRejections(rejections => - Util.immutableSeq(f.apply(Util.javaArrayList(rejections.map(_.asJava)))).map(_.asScala)) { inner.get.delegate } + convertIterable[Rejection, Rejection](f.apply(Util.javaArrayList(rejections.map(_.asJava)))).map( + _.asScala)) { inner.get.delegate } } def mapResponse(f: JFunction[HttpResponse, HttpResponse], inner: Supplier[Route]): Route = RouteAdapter { @@ -79,7 +77,10 @@ abstract class BasicDirectives { def mapResponseHeaders(f: JFunction[JList[HttpHeader], JList[HttpHeader]], inner: Supplier[Route]): Route = RouteAdapter { - D.mapResponseHeaders(l => Util.immutableSeq(f.apply(Util.javaArrayList(l))).map(_.asScala)) { inner.get.delegate } // TODO try to remove map() + D.mapResponseHeaders(l => + convertIterable[HttpHeader, HttpHeader](f.apply(Util.javaArrayList(l))).map(_.asScala)) { + inner.get.delegate + } // TODO try to remove map() } def mapInnerRoute(f: JFunction[Route, Route], inner: Supplier[Route]): Route = RouteAdapter { @@ -155,7 +156,7 @@ abstract class BasicDirectives { * to the list of rejections potentially coming back from the inner route. */ def cancelRejections(classes: JIterable[Class[_]], inner: Supplier[Route]): Route = RouteAdapter { - D.cancelRejections(Util.immutableSeq(classes): _*) { inner.get.delegate } + D.cancelRejections(convertIterable[Class[_], Class[_]](classes): _*) { inner.get.delegate } } /** diff --git a/http/src/main/scala/org/apache/pekko/http/scaladsl/server/Rejection.scala b/http/src/main/scala/org/apache/pekko/http/scaladsl/server/Rejection.scala index 21e4cfd8e..37a1c74e1 100644 --- a/http/src/main/scala/org/apache/pekko/http/scaladsl/server/Rejection.scala +++ b/http/src/main/scala/org/apache/pekko/http/scaladsl/server/Rejection.scala @@ -18,7 +18,7 @@ import java.util.Optional import java.util.function.Function import org.apache.pekko -import pekko.japi.Util +import pekko.http.impl.util.Util import pekko.http.scaladsl.model._ import pekko.http.scaladsl.model.headers.{ ByteRange, HttpChallenge, HttpEncoding } import pekko.http.javadsl.{ model, server => jserver } @@ -335,7 +335,9 @@ final case class TransformationRejection(transform: immutable.Seq[Rejection] => override def apply(t: Iterable[jserver.Rejection]): Iterable[jserver.Rejection] = { // explicit collects assignment is because of unidoc failing compilation on .asScala and .asJava here val transformed: Seq[jserver.Rejection] = - transform(Util.immutableSeq(t).collect { case r: Rejection => r }).collect { case j: jserver.Rejection => j } + transform(Util.convertIterable[jserver.Rejection, jserver.Rejection](t).collect { case r: Rejection => + r + }).collect { case j: jserver.Rejection => j } transformed.asJava // TODO "asJavaDeep" and optimise? } } From 42bd3bf9d27792ea644032bdbc4e9e229eb5b74e Mon Sep 17 00:00:00 2001 From: "scala-steward-asf[bot]" <147768647+scala-steward-asf[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 01:26:44 +0100 Subject: [PATCH 3/4] Update scala-library, scala-reflect to 2.13.15 (#611) * Update scala-library, scala-reflect to 2.13.15 * Update link-validator.conf --------- Co-authored-by: scala-steward-asf[bot] <147768647+scala-steward-asf[bot]@users.noreply.github.com> Co-authored-by: PJ Fanning --- project/Dependencies.scala | 2 +- scripts/link-validator.conf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index f97d0e5db..b8499335d 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -34,7 +34,7 @@ object Dependencies { val scalafixVersion = _root_.scalafix.sbt.BuildInfo.scalafixVersion // grab from plugin val scala212Version = "2.12.20" - val scala213Version = "2.13.14" + val scala213Version = "2.13.15" val scala3Version = "3.3.3" val allScalaVersions = Seq(scala213Version, scala212Version, scala3Version) diff --git a/scripts/link-validator.conf b/scripts/link-validator.conf index 1170532e9..a6e433678 100644 --- a/scripts/link-validator.conf +++ b/scripts/link-validator.conf @@ -55,9 +55,9 @@ site-link-validator { # apparent cert issue failing the build "https://www.reactivemanifesto.org" # Problematic link generated by scaladoc - "https://www.scala-lang.org/api/2.13.14/scala/runtime/AbstractFunction1.html" - "https://www.scala-lang.org/api/2.13.14/scala/runtime/AbstractFunction2.html" - "https://www.scala-lang.org/api/2.13.14/scala/runtime/AbstractFunction3.html" + "https://www.scala-lang.org/api/2.13.15/scala/runtime/AbstractFunction1.html" + "https://www.scala-lang.org/api/2.13.15/scala/runtime/AbstractFunction2.html" + "https://www.scala-lang.org/api/2.13.15/scala/runtime/AbstractFunction3.html" # Bug, see https://github.com/scala/bug/issues/12807 and https://github.com/lampepfl/dotty/issues/17973 "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/StandardOpenOption$.html" # Occasionally returns a 500 Internal Server Error From 64f031c9d6d8e12286425abcfbbd9c3e66b0d02d Mon Sep 17 00:00:00 2001 From: "scala-steward-asf[bot]" <147768647+scala-steward-asf[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2024 01:41:13 +0100 Subject: [PATCH 4/4] Update sbt-scalafix, scalafix-core to 0.13.0 (#610) Co-authored-by: scala-steward-asf[bot] <147768647+scala-steward-asf[bot]@users.noreply.github.com> --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index c3dada2e5..8f232b39b 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -25,7 +25,7 @@ addSbtPlugin("org.apache.pekko" % "pekko-sbt-paradox" % "1.0.1") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.32") -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.1") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.13.0") addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.0.1") addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.12") addSbtPlugin("com.github.pjfanning" % "sbt-pekko-build" % "0.4.0")