-
Notifications
You must be signed in to change notification settings - Fork 594
Support for scala 2.13.0-M5 #2298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
7c55090
akka-http-core scalafix
raboof 85da038
Dependencies
raboof 1833f2b
akka-parsing scalafix
raboof c103bde
Use unapply to get value
raboof 0ca8219
Manual changes to compile
raboof 27a172f
Add akka snapshot repository
raboof 6915e29
akka-http-core test:scalafix
raboof 3437fe8
Compile fixes
raboof 10655cb
Make akka-http-core/test succeed
raboof 765822d
Make Uri.Query compile on 2.12 as well
raboof b150432
Add ccompat for scala 2.11
raboof 55a09ba
make akka-http2-support compile
raboof 2023f95
akka-http scalafix
raboof 744b989
akka-http fixes
raboof 7518902
Make all modules compile under 2.13.0-M5
raboof 8cb07ab
Add copyright headers
raboof 498e744
Separate MiMa for 2.13
raboof 6498111
'Internal API' markers
raboof ffd4e8b
Remove dependency on scala-collection-compat
raboof 645c386
Rename akka.http.impl.util.SettingsCompanion to SettingsCompanionImpl
raboof 85e5b64
Try dealing with varargs via macro
raboof eebcacd
Use an empty tree rather than unit
raboof 767a517
No bincompat for 2.13.0-M5 yet
raboof ff323c9
Replace VASeq everywhere
raboof 63b904f
Remove comment
raboof d372732
Remove Akka snapshot repository
raboof 20160e3
Move jsr305 to 'Provided' section
raboof 25e30ed
Only provide a single fork for 2.11 and 2.12 source files (#2407)
jrudolph b3d8a3a
Merge branch 'scala-2.13.0-M5' of github.com:akka/akka-http into scal…
raboof 6391ccd
Add copyright headers
raboof a9a485c
Remove duplication in scala macro sbt config
raboof 089b1b1
Fix MultiNodeConfig imports
raboof d070c2b
Cosmetic changes to remove some warnings
jrudolph ca0fb00
Add missing builder implemenation of 2.13 QuerySeqOptimized impl
jrudolph a6d3321
Several more warnings fixed
jrudolph 901832e
Fix formatting
jrudolph ce0ee63
remove unused imports
jrudolph c17bf0b
Fix 2.13 Stream incompatability
jrudolph 75abac5
Don't rely on exact Map.toString
jrudolph File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
2 changes: 2 additions & 0 deletions
2
akka-http-caching/src/main/mima-filters/10.1.7.backwards.excludes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Scala 2.13.0-M5 | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.caching.scaladsl.CachingSettings$") | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
akka-http-core/src/main/mima-filters/10.1.7.backwards.excludes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# 2.13.0-M5 support: | ||
ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.util.SettingsCompanion") | ||
ProblemFilters.exclude[MissingClassProblem]("akka.http.impl.util.SettingsCompanion$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.ConnectionPoolSettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.HttpsProxySettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.ParserSettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.ServerSettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.PreviewServerSettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.settings.ClientConnectionSettingsImpl$") | ||
ProblemFilters.exclude[MissingTypesProblem]("akka.http.scaladsl.settings.Http2ServerSettings$Http2ServerSettingsImpl$") |
12 changes: 12 additions & 0 deletions
12
akka-http-core/src/main/scala-2.13+/akka/http/ccompat/MapHelpers.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.ccompat | ||
|
||
object MapHelpers { | ||
def convertMapToScala[K, V](jmap: java.util.Map[K, V]): scala.collection.immutable.Map[K, V] = { | ||
import scala.collection.JavaConverters._ | ||
Map.empty.concat(jmap.asScala) | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
akka-http-core/src/main/scala-2.13+/akka/http/ccompat/imm/package.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.ccompat | ||
|
||
import scala.collection.immutable | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
package object imm { | ||
// Nothing yet, but present to be source-compatible with 2.13- | ||
} |
26 changes: 26 additions & 0 deletions
26
akka-http-core/src/main/scala-2.13+/akka/http/ccompat/package.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
package object ccompat { | ||
|
||
type Builder[-A, +To] = scala.collection.mutable.Builder[A, To] | ||
} | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
package ccompat { | ||
import akka.http.scaladsl.model.Uri.Query | ||
trait QuerySeqOptimized extends scala.collection.immutable.LinearSeq[(String, String)] with scala.collection.StrictOptimizedLinearSeqOps[(String, String), scala.collection.immutable.LinearSeq, Query] { | ||
override protected def fromSpecific(coll: IterableOnce[(String, String)]): Query = | ||
Query(coll.iterator.to(Seq): _*) | ||
|
||
def newBuilder: Any = akka.http.scaladsl.model.Uri.Query.newBuilder | ||
} | ||
} |
124 changes: 124 additions & 0 deletions
124
akka-http-core/src/main/scala-2.13+/akka/http/scaladsl/util/FastFuture.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
/* | ||
* Copyright (C) 2009-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.scaladsl.util | ||
|
||
import scala.language.higherKinds | ||
import scala.util.control.NonFatal | ||
import scala.util.{ Failure, Success, Try } | ||
import scala.collection.BuildFrom | ||
import scala.concurrent.duration.Duration | ||
import scala.concurrent._ | ||
|
||
/** | ||
* Provides alternative implementations of the basic transformation operations defined on [[scala.concurrent.Future]], | ||
* which try to avoid scheduling to an [[scala.concurrent.ExecutionContext]] if possible, i.e. if the given future | ||
* value is already present. | ||
*/ | ||
class FastFuture[A](val future: Future[A]) extends AnyVal { | ||
import FastFuture._ | ||
|
||
def map[B](f: A ⇒ B)(implicit ec: ExecutionContext): Future[B] = | ||
transformWith(a ⇒ FastFuture.successful(f(a)), FastFuture.failed) | ||
|
||
def flatMap[B](f: A ⇒ Future[B])(implicit ec: ExecutionContext): Future[B] = | ||
transformWith(f, FastFuture.failed) | ||
|
||
def filter(pred: A ⇒ Boolean)(implicit executor: ExecutionContext): Future[A] = | ||
flatMap { r ⇒ | ||
if (pred(r)) future | ||
else throw new NoSuchElementException("Future.filter predicate is not satisfied") | ||
} | ||
|
||
def foreach(f: A ⇒ Unit)(implicit ec: ExecutionContext): Unit = map(f) | ||
|
||
def transformWith[B](f: Try[A] ⇒ Future[B])(implicit executor: ExecutionContext): Future[B] = | ||
transformWith(a ⇒ f(Success(a)), e ⇒ f(Failure(e))) | ||
|
||
def transformWith[B](s: A ⇒ Future[B], f: Throwable ⇒ Future[B])(implicit executor: ExecutionContext): Future[B] = { | ||
def strictTransform[T](x: T, f: T ⇒ Future[B]) = | ||
try f(x) | ||
catch { case NonFatal(e) ⇒ ErrorFuture(e) } | ||
|
||
future match { | ||
case FulfilledFuture(a) ⇒ strictTransform(a, s) | ||
case ErrorFuture(e) ⇒ strictTransform(e, f) | ||
case _ ⇒ future.value match { | ||
case None ⇒ | ||
val p = Promise[B]() | ||
future.onComplete { | ||
case Success(a) ⇒ p completeWith strictTransform(a, s) | ||
case Failure(e) ⇒ p completeWith strictTransform(e, f) | ||
} | ||
p.future | ||
case Some(Success(a)) ⇒ strictTransform(a, s) | ||
case Some(Failure(e)) ⇒ strictTransform(e, f) | ||
} | ||
} | ||
} | ||
|
||
def recover[B >: A](pf: PartialFunction[Throwable, B])(implicit ec: ExecutionContext): Future[B] = | ||
transformWith(FastFuture.successful, t ⇒ if (pf isDefinedAt t) FastFuture.successful(pf(t)) else future) | ||
|
||
def recoverWith[B >: A](pf: PartialFunction[Throwable, Future[B]])(implicit ec: ExecutionContext): Future[B] = | ||
transformWith(FastFuture.successful, t ⇒ pf.applyOrElse(t, (_: Throwable) ⇒ future)) | ||
} | ||
|
||
object FastFuture { | ||
def apply[T](value: Try[T]): Future[T] = value match { | ||
case Success(t) ⇒ FulfilledFuture(t) | ||
case Failure(e) ⇒ ErrorFuture(e) | ||
} | ||
private[this] val _successful: Any ⇒ Future[Any] = FulfilledFuture.apply | ||
def successful[T]: T ⇒ Future[T] = _successful.asInstanceOf[T ⇒ Future[T]] | ||
val failed: Throwable ⇒ Future[Nothing] = ErrorFuture.apply | ||
|
||
private case class FulfilledFuture[+A](a: A) extends Future[A] { | ||
def value = Some(Success(a)) | ||
def onComplete[U](f: Try[A] ⇒ U)(implicit executor: ExecutionContext) = Future.successful(a).onComplete(f) | ||
def isCompleted = true | ||
def result(atMost: Duration)(implicit permit: CanAwait) = a | ||
def ready(atMost: Duration)(implicit permit: CanAwait) = this | ||
def transform[S](f: scala.util.Try[A] ⇒ scala.util.Try[S])(implicit executor: scala.concurrent.ExecutionContext): scala.concurrent.Future[S] = | ||
FastFuture(f(Success(a))) | ||
def transformWith[S](f: scala.util.Try[A] ⇒ scala.concurrent.Future[S])(implicit executor: scala.concurrent.ExecutionContext): scala.concurrent.Future[S] = | ||
new FastFuture(this).transformWith(f) | ||
} | ||
private case class ErrorFuture(error: Throwable) extends Future[Nothing] { | ||
def value = Some(Failure(error)) | ||
def onComplete[U](f: Try[Nothing] ⇒ U)(implicit executor: ExecutionContext) = Future.failed(error).onComplete(f) | ||
def isCompleted = true | ||
def result(atMost: Duration)(implicit permit: CanAwait) = throw error | ||
def ready(atMost: Duration)(implicit permit: CanAwait) = this | ||
def transform[S](f: scala.util.Try[Nothing] ⇒ scala.util.Try[S])(implicit executor: scala.concurrent.ExecutionContext): scala.concurrent.Future[S] = | ||
FastFuture(f(Failure(error))) | ||
def transformWith[S](f: scala.util.Try[Nothing] ⇒ scala.concurrent.Future[S])(implicit executor: scala.concurrent.ExecutionContext): scala.concurrent.Future[S] = | ||
new FastFuture(this).transformWith(f) | ||
} | ||
|
||
implicit class EnhancedFuture[T](val future: Future[T]) extends AnyVal { | ||
def fast: FastFuture[T] = new FastFuture[T](future) | ||
} | ||
|
||
def sequence[T, M[_] <: IterableOnce[_]](in: M[Future[T]])(implicit cbf: BuildFrom[M[Future[T]], T, M[T]], executor: ExecutionContext): Future[M[T]] = | ||
in.iterator.foldLeft(successful(cbf.newBuilder(in))) { | ||
(fr, fa) ⇒ for (r ← fr.fast; a ← fa.asInstanceOf[Future[T]].fast) yield r += a | ||
}.fast.map(_.result()) | ||
|
||
/* FIXME | ||
def fold[T, R](futures: IterableOnce[Future[T]])(zero: R)(f: (R, T) ⇒ R)(implicit executor: ExecutionContext): Future[R] = | ||
if (futures.isEmpty) successful(zero) | ||
else sequence(futures).fast.map(_.foldLeft(zero)(f)) | ||
|
||
def reduce[T, R >: T](futures: IterableOnce[Future[T]])(op: (R, T) ⇒ R)(implicit executor: ExecutionContext): Future[R] = | ||
if (futures.isEmpty) failed(new NoSuchElementException("reduce attempted on empty collection")) | ||
else sequence(futures).fast.map(_ reduceLeft op) | ||
*/ | ||
|
||
def traverse[A, B, M[_] <: IterableOnce[_]](in: M[A])(fn: A ⇒ Future[B])(implicit cbf: BuildFrom[M[A], B, M[B]], executor: ExecutionContext): Future[M[B]] = | ||
in.iterator.foldLeft(successful(cbf.newBuilder(in))) { (fr, a) ⇒ | ||
val fb = fn(a.asInstanceOf[A]) | ||
for (r ← fr.fast; b ← fb.fast) yield r += b | ||
}.fast.map(_.result()) | ||
} |
22 changes: 22 additions & 0 deletions
22
akka-http-core/src/main/scala-2.13-/akka/http/ccompat/CompatImpl.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
/* | ||
* Copyright (C) 2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.ccompat | ||
|
||
import scala.collection.generic.CanBuildFrom | ||
import scala.collection.mutable | ||
|
||
/** | ||
* INTERNAL API | ||
* | ||
* Based on https://github.com/scala/scala-collection-compat/blob/master/compat/src/main/scala-2.11_2.12/scala/collection/compat/CompatImpl.scala | ||
* but reproduced here so we don't need to add a dependency on this library. It contains much more than we need right now, and is | ||
* not promising binary compatibility yet at the time of writing. | ||
*/ | ||
private[ccompat] object CompatImpl { | ||
def simpleCBF[A, C](f: ⇒ mutable.Builder[A, C]): CanBuildFrom[Any, A, C] = new CanBuildFrom[Any, A, C] { | ||
def apply(from: Any): mutable.Builder[A, C] = apply() | ||
def apply(): mutable.Builder[A, C] = f | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
akka-http-core/src/main/scala-2.13-/akka/http/ccompat/MapHelpers.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.ccompat | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
object MapHelpers { | ||
def convertMapToScala[K, V](jmap: java.util.Map[K, V]): scala.collection.immutable.Map[K, V] = { | ||
import scala.collection.JavaConverters._ | ||
Map.empty ++ jmap.asScala | ||
} | ||
} |
21 changes: 21 additions & 0 deletions
21
akka-http-core/src/main/scala-2.13-/akka/http/ccompat/imm/package.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http.ccompat | ||
|
||
import scala.collection.immutable | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
package object imm { | ||
implicit class SortedSetOps[A](val real: immutable.SortedSet[A]) extends AnyVal { | ||
def unsorted: immutable.Set[A] = real | ||
} | ||
|
||
implicit class StreamOps[A](val underlying: immutable.Stream[A]) extends AnyVal { | ||
// renamed in 2.13 | ||
def lazyAppendedAll[B >: A](rest: ⇒ TraversableOnce[B]): Stream[B] = underlying.append(rest) | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
akka-http-core/src/main/scala-2.13-/akka/http/ccompat/package.scala
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
/* | ||
* Copyright (C) 2018-2019 Lightbend Inc. <https://www.lightbend.com> | ||
*/ | ||
|
||
package akka.http | ||
|
||
import scala.collection.generic.{ CanBuildFrom, GenericCompanion } | ||
import scala.collection.{ GenTraversable, mutable } | ||
import scala.{ collection ⇒ c } | ||
|
||
/** | ||
* INTERNAL API | ||
* | ||
* Partly based on https://github.com/scala/scala-collection-compat/blob/master/compat/src/main/scala-2.11_2.12/scala/collection/compat/PackageShared.scala | ||
* but reproduced here so we don't need to add a dependency on this library. It contains much more than we need right now, and is | ||
* not promising binary compatibility yet at the time of writing. | ||
*/ | ||
package object ccompat { | ||
import CompatImpl._ | ||
|
||
implicit def genericCompanionToCBF[A, CC[X] <: GenTraversable[X]]( | ||
fact: GenericCompanion[CC]): CanBuildFrom[Any, A, CC[A]] = | ||
simpleCBF(fact.newBuilder[A]) | ||
|
||
// This really belongs into scala.collection but there's already a package object | ||
// in scala-library so we can't add to it | ||
type IterableOnce[+X] = c.TraversableOnce[X] | ||
val IterableOnce = c.TraversableOnce | ||
} | ||
|
||
/** | ||
* INTERNAL API | ||
*/ | ||
package ccompat { | ||
trait Builder[-Elem, +To] extends mutable.Builder[Elem, To] { self ⇒ | ||
// This became final in 2.13 so cannot be overridden there anymore | ||
final override def +=(elem: Elem): this.type = addOne(elem) | ||
def addOne(elem: Elem): this.type = self.+=(elem) | ||
} | ||
|
||
trait QuerySeqOptimized extends scala.collection.immutable.LinearSeq[(String, String)] with scala.collection.LinearSeqOptimized[(String, String), akka.http.scaladsl.model.Uri.Query] { | ||
self: akka.http.scaladsl.model.Uri.Query ⇒ | ||
override def newBuilder: mutable.Builder[(String, String), akka.http.scaladsl.model.Uri.Query] = akka.http.scaladsl.model.Uri.Query.newBuilder | ||
} | ||
} |
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happened here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We renamed
akka.http.impl.util.SettingsCompanion
toakka.http.impl.util.SettingsCompanionImpl
, andCachingSettings$
inherits from that, causing a MiMa warning about the type hierarchy.MissingTypesProblem
looks a bit weird indeed.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that settings class doesn't seem to follow the usual pattern anyway. Shouldn't it derive from the public
akka.http.scaladsl.settings.SettingsCompanion
? Not really related to this one here. So, let's create a ticket for that and fix that afterwards.