softwaremill / tapir

Rapid development of self-documenting APIs
https://tapir.softwaremill.com
Apache License 2.0
1.36k stars 411 forks source link

[BUG] java.lang.NoClassDefFoundError: sttp/model/headers/CookieWithMeta when updating from 0.17.1 to 0.17.2 #957

Closed oschrenk closed 3 years ago

oschrenk commented 3 years ago

Tapir version: 0.17.2

Scala version: 2.13.4

A change in 0.17.2 broke existing test code written against tapir 0.17.1 with akka http backing, stating that sttp/model/headers/CookieWithMeta can't be found. Since I don't use it, I am slightly stumped.

What is the problem?

When upgrading from tapir 0.17.1 to 0.17.2 I run into a class loading issue when running tests:

[error] Test suite rest.EndpointsSpec failed with java.lang.NoClassDefFoundError: sttp/model/headers/CookieWithMeta.
[error] This may be due to the ClassLoaderLayeringStrategy (ScalaLibrary) used by your task.
[error] To improve performance and reduce memory, sbt attempts to cache the class loaders used to load the project dependencies.
[error] The project class files are loaded in a separate class loader that is created for each test run.
[error] The test class loader accesses the project dependency classes using the cached project dependency classloader.
[error] With this approach, class loading may fail under the following conditions:
[error]
[error]  * Dependencies use reflection to access classes in your project's classpath.
[error]    Java serialization/deserialization may cause this.
[error]  * An open package is accessed across layers. If the project's classes access or extend
[error]    jvm package private classes defined in a project dependency, it may cause an IllegalAccessError
[error]    because the jvm enforces package private at the classloader level.
[error]
[error] These issues, along with others that were not enumerated above, may be resolved by changing the class loader layering strategy.
[error] The Flat and ScalaLibrary strategies bundle the full project classpath in the same class loader.
[error] To use one of these strategies, set the  ClassLoaderLayeringStrategy key
[error] in your configuration, for example:
[error]
[error] set root / Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.ScalaLibrary
[error] set root / Test / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat
[error]
[error] See ClassLoaderLayeringStrategy.scala for the full list of options.

(This error persists through all version up until and including 0.17.6)

Maybe you can provide code to reproduce the problem?

The actual source code does not have any direct mention of the class in question, neither the test code, nor the main source code. I do make use import akka.http.scaladsl.model.headers.Cookie in conjunction with akka-http-testkit in the test code and I do mix in a cookie based directive in the main source like so

val routes: Route = {
  import akka.http.scaladsl.server.Directives._
  concat(
    AkkaHttpServerInterpreter.toRoute(acme.server.logic)
  ) ~ optionalCookie("qic-session-key") { maybeCookie =>
    if (auth(maybeCookie.map(_.value))) {
      acme.swagger.routes
    } else {
      complete( ... )
    }
  }
}
adamw commented 3 years ago

Do you have an explicit dependency on sttp-model or sttp-client somewhere maybe?

oschrenk commented 3 years ago

No. sbt-depedency-graph tells me:

 com.acme:upload_service_2.13:7e309762f44adc18e8ebbc016205cadb7..
   +-com.beachape:enumeratum_2.13:1.6.1
   | +-com.beachape:enumeratum-macros_2.13:1.6.1
   |   +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.lightbend.akka:akka-stream-alpakka-s3_2.13:2.0.2
   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   | |
   | +-com.typesafe.akka:akka-http-xml_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | | |   +-com.twitter:hpack:1.0.2
   | | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | | |
   | | +-org.scala-lang.modules:scala-xml_2.13:1.3.0
   | |
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | | |
   | | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | | |
   | | +-org.reactivestreams:reactive-streams:1.0.3
   | |
   | +-software.amazon.awssdk:auth:2.11.14
   |   +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   |
   |   +-software.amazon.awssdk:annotations:2.11.14
   |   +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:profiles:2.11.14
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:regions:2.11.14
   |   | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | |
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:profiles:2.11.14
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:sdk-core:2.11.14
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | | |
   |   | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | +-org.slf4j:slf4j-api:1.7.30
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | | +-software.amazon.awssdk:utils:2.11.14
   |   | | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | | |   +-org.slf4j:slf4j-api:1.7.30
   |   | | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | | |
   |   | | +-software.amazon.awssdk:profiles:2.11.14
   |   | | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | | +-software.amazon.awssdk:utils:2.11.14
   |   | | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | | |   +-org.slf4j:slf4j-api:1.7.30
   |   | | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | | |
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:sdk-core:2.11.14
   |   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | |
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:profiles:2.11.14
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:utils:2.11.14
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.eventstream:eventstream:1.0.1
   |
   +-com.pauldijou:jwt-circe_2.13:4.3.0
   | +-com.pauldijou:jwt-json-common_2.13:4.3.0
   | | +-com.pauldijou:jwt-core_2.13:4.3.0
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-com.softwaremill.quicklens:quicklens_2.13:1.6.1
   +-com.softwaremill.sttp.tapir:tapir-akka-http-server_2.13:0.17.1
   | +-com.softwaremill.sttp.shared:akka_2.13:1.0.0-RC9
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   |   +-com.typesafe.akka:akka-actor_2.13:2.6.11
   |   | +-com.typesafe:config:1.4.1
   |   | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   |   |
   |   +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   |   +-com.typesafe:ssl-config-core_2.13:0.4.2
   |   | +-com.typesafe:config:1.4.1
   |   | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   |   |
   |   +-org.reactivestreams:reactive-streams:1.0.3
   |
   +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   | +-com.propensive:magnolia_2.13:0.17.0
   | | +-com.propensive:mercator_2.13:0.2.1
   | |
   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | |
   | +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.softwaremill.sttp.tapir:tapir-enumeratum_2.13:0.17.1
   | +-com.beachape:enumeratum_2.13:1.6.1
   | | +-com.beachape:enumeratum-macros_2.13:1.6.1
   | |   +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   |   +-com.propensive:magnolia_2.13:0.17.0
   |   | +-com.propensive:mercator_2.13:0.2.1
   |   |
   |   +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   |   +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   |   +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   |   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   |   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   |   |
   |   +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.softwaremill.sttp.tapir:tapir-json-circe_2.13:0.17.1
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-com.softwaremill.sttp.tapir:tapir-openapi-circe-yaml_2.13:0.17.1
   | +-com.softwaremill.sttp.tapir:tapir-openapi-circe_2.13:0.17.1
   | | +-com.softwaremill.sttp.tapir:tapir-openapi-model_2.13:0.17.1
   | | | +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.1
   | | |
   | | +-io.circe:circe-core_2.13:0.13.0
   | | | +-io.circe:circe-numbers_2.13:0.13.0
   | | | +-org.typelevel:cats-core_2.13:2.1.0
   | | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | | |
   | | +-io.circe:circe-generic_2.13:0.13.0
   | | | +-com.chuusai:shapeless_2.13:2.3.3
   | | | +-io.circe:circe-core_2.13:0.13.0
   | | |   +-io.circe:circe-numbers_2.13:0.13.0
   | | |   +-org.typelevel:cats-core_2.13:2.1.0
   | | |     +-org.typelevel:cats-kernel_2.13:2.1.0
   | | |     +-org.typelevel:cats-macros_2.13:2.1.0
   | | |
   | | +-io.circe:circe-parser_2.13:0.13.0
   | |   +-io.circe:circe-core_2.13:0.13.0
   | |   | +-io.circe:circe-numbers_2.13:0.13.0
   | |   | +-org.typelevel:cats-core_2.13:2.1.0
   | |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |   |
   | |   +-io.circe:circe-jawn_2.13:0.13.0
   | |     +-io.circe:circe-core_2.13:0.13.0
   | |     | +-io.circe:circe-numbers_2.13:0.13.0
   | |     | +-org.typelevel:cats-core_2.13:2.1.0
   | |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |     |
   | |     +-org.typelevel:jawn-parser_2.13:1.0.0
   | |
   | +-io.circe:circe-yaml_2.13:0.13.1
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-org.yaml:snakeyaml:1.26
   |
   +-com.softwaremill.sttp.tapir:tapir-openapi-docs_2.13:0.17.1
   | +-com.softwaremill.sttp.tapir:tapir-apispec-docs_2.13:0.17.1
   | | +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.1
   | | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   | |   +-com.propensive:magnolia_2.13:0.17.0
   | |   | +-com.propensive:mercator_2.13:0.2.1
   | |   |
   | |   +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | |   +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | |   +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   | |   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | |   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | |   |
   | |   +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.1
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC9
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC9
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-openapi-model_2.13:0.17.1
   |   +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.1
   |
   +-com.softwaremill.sttp.tapir:tapir-swagger-ui-akka-http_2.13:0.17.1
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | | |
   | | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | | |
   | | +-org.reactivestreams:reactive-streams:1.0.3
   | |
   | +-org.webjars:swagger-ui:3.37.2
   |
   +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | +-com.typesafe:config:1.4.1
   | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   |
   +-com.typesafe.akka:akka-http_2.13:10.2.3
   | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   |   +-com.twitter:hpack:1.0.2
   |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   |
   +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | +-com.typesafe:config:1.4.1
   | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | |
   | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | +-com.typesafe:config:1.4.1
   | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | |
   | +-org.reactivestreams:reactive-streams:1.0.3
   |
   +-com.typesafe:config:1.4.1
   +-de.heikoseeberger:akka-http-circe_2.13:1.35.3
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-io.circe:circe-core_2.13:0.13.0
   | +-io.circe:circe-numbers_2.13:0.13.0
   | +-org.typelevel:cats-core_2.13:2.1.0
   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-generic-extras_2.13:0.13.0
   | +-io.circe:circe-generic_2.13:0.13.0
   |   +-com.chuusai:shapeless_2.13:2.3.3
   |   +-io.circe:circe-core_2.13:0.13.0
   |     +-io.circe:circe-numbers_2.13:0.13.0
   |     +-org.typelevel:cats-core_2.13:2.1.0
   |       +-org.typelevel:cats-kernel_2.13:2.1.0
   |       +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-generic_2.13:0.13.0
   | +-com.chuusai:shapeless_2.13:2.3.3
   | +-io.circe:circe-core_2.13:0.13.0
   |   +-io.circe:circe-numbers_2.13:0.13.0
   |   +-org.typelevel:cats-core_2.13:2.1.0
   |     +-org.typelevel:cats-kernel_2.13:2.1.0
   |     +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-parser_2.13:0.13.0
     +-io.circe:circe-core_2.13:0.13.0
     | +-io.circe:circe-numbers_2.13:0.13.0
     | +-org.typelevel:cats-core_2.13:2.1.0
     |   +-org.typelevel:cats-kernel_2.13:2.1.0
     |   +-org.typelevel:cats-macros_2.13:2.1.0
     |
     +-io.circe:circe-jawn_2.13:0.13.0
       +-io.circe:circe-core_2.13:0.13.0
       | +-io.circe:circe-numbers_2.13:0.13.0
       | +-org.typelevel:cats-core_2.13:2.1.0
       |   +-org.typelevel:cats-kernel_2.13:2.1.0
       |   +-org.typelevel:cats-macros_2.13:2.1.0
       |
       +-org.typelevel:jawn-parser_2.13:1.0.0
catostrophe commented 3 years ago

@oschrenk have you cleaned target? That class changed its namespace. I got the same issue, and full clean helped.

oschrenk commented 3 years ago

I should have specified in the original report but I do call sbt clean test and have the results above.

oschrenk commented 3 years ago

sbt dependencyTree for tapir 0.17.2

com.acme.upload_service_2.13:7e309762f44adc18e8ebbc016205cadb7..
   +-com.beachape:enumeratum_2.13:1.6.1
   | +-com.beachape:enumeratum-macros_2.13:1.6.1
   |   +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.lightbend.akka:akka-stream-alpakka-s3_2.13:2.0.2
   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   | |
   | +-com.typesafe.akka:akka-http-xml_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | | |   +-com.twitter:hpack:1.0.2
   | | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | | |
   | | +-org.scala-lang.modules:scala-xml_2.13:1.3.0
   | |
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | | |
   | | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | | |
   | | +-org.reactivestreams:reactive-streams:1.0.3
   | |
   | +-software.amazon.awssdk:auth:2.11.14
   |   +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   |
   |   +-software.amazon.awssdk:annotations:2.11.14
   |   +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:profiles:2.11.14
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:regions:2.11.14
   |   | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | |
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:profiles:2.11.14
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:sdk-core:2.11.14
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | | |
   |   | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | +-org.slf4j:slf4j-api:1.7.30
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | | +-software.amazon.awssdk:utils:2.11.14
   |   | | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | | |   +-org.slf4j:slf4j-api:1.7.30
   |   | | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | | |
   |   | | +-software.amazon.awssdk:profiles:2.11.14
   |   | | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | | +-software.amazon.awssdk:utils:2.11.14
   |   | | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | | |   +-org.slf4j:slf4j-api:1.7.30
   |   | | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | | |
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:sdk-core:2.11.14
   |   | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | +-com.fasterxml.jackson.core:jackson-databind:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-annotations:2.11.0
   |   | | +-com.fasterxml.jackson.core:jackson-core:2.11.0
   |   | |
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   | +-software.amazon.awssdk:http-client-spi:2.11.14
   |   | | +-org.reactivestreams:reactive-streams:1.0.3
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:profiles:2.11.14
   |   | | +-software.amazon.awssdk:annotations:2.11.14
   |   | | +-software.amazon.awssdk:utils:2.11.14
   |   | |   +-org.reactivestreams:reactive-streams:1.0.3
   |   | |   +-org.slf4j:slf4j-api:1.7.30
   |   | |   +-software.amazon.awssdk:annotations:2.11.14
   |   | |
   |   | +-software.amazon.awssdk:utils:2.11.14
   |   |   +-org.reactivestreams:reactive-streams:1.0.3
   |   |   +-org.slf4j:slf4j-api:1.7.30
   |   |   +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.awssdk:utils:2.11.14
   |   | +-org.reactivestreams:reactive-streams:1.0.3
   |   | +-org.slf4j:slf4j-api:1.7.30
   |   | +-software.amazon.awssdk:annotations:2.11.14
   |   |
   |   +-software.amazon.eventstream:eventstream:1.0.1
   |
   +-com.pauldijou:jwt-circe_2.13:4.3.0
   | +-com.pauldijou:jwt-json-common_2.13:4.3.0
   | | +-com.pauldijou:jwt-core_2.13:4.3.0
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-com.softwaremill.quicklens:quicklens_2.13:1.6.1
   +-com.softwaremill.sttp.tapir:tapir-akka-http-server_2.13:0.17.2
   | +-com.softwaremill.sttp.shared:akka_2.13:1.0.0-RC13
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   |   +-com.typesafe.akka:akka-actor_2.13:2.6.11
   |   | +-com.typesafe:config:1.4.1
   |   | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   |   |
   |   +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   |   +-com.typesafe:ssl-config-core_2.13:0.4.2
   |   | +-com.typesafe:config:1.4.1
   |   | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   |   |
   |   +-org.reactivestreams:reactive-streams:1.0.3
   |
   +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   | +-com.propensive:magnolia_2.13:0.17.0
   | | +-com.propensive:mercator_2.13:0.2.1
   | |
   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | |
   | +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.softwaremill.sttp.tapir:tapir-enumeratum_2.13:0.17.2
   | +-com.beachape:enumeratum_2.13:1.6.1
   | | +-com.beachape:enumeratum-macros_2.13:1.6.1
   | |   +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   |   +-com.propensive:magnolia_2.13:0.17.0
   |   | +-com.propensive:mercator_2.13:0.2.1
   |   |
   |   +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   |   +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   |   +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   |   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   |   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   |   |
   |   +-org.scala-lang:scala-reflect:2.13.4
   |
   +-com.softwaremill.sttp.tapir:tapir-json-circe_2.13:0.17.2
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-com.softwaremill.sttp.tapir:tapir-openapi-circe-yaml_2.13:0.17.2
   | +-com.softwaremill.sttp.tapir:tapir-openapi-circe_2.13:0.17.2
   | | +-com.softwaremill.sttp.tapir:tapir-openapi-model_2.13:0.17.2
   | | | +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.2
   | | |
   | | +-io.circe:circe-core_2.13:0.13.0
   | | | +-io.circe:circe-numbers_2.13:0.13.0
   | | | +-org.typelevel:cats-core_2.13:2.1.0
   | | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | | |
   | | +-io.circe:circe-generic_2.13:0.13.0
   | | | +-com.chuusai:shapeless_2.13:2.3.3
   | | | +-io.circe:circe-core_2.13:0.13.0
   | | |   +-io.circe:circe-numbers_2.13:0.13.0
   | | |   +-org.typelevel:cats-core_2.13:2.1.0
   | | |     +-org.typelevel:cats-kernel_2.13:2.1.0
   | | |     +-org.typelevel:cats-macros_2.13:2.1.0
   | | |
   | | +-io.circe:circe-parser_2.13:0.13.0
   | |   +-io.circe:circe-core_2.13:0.13.0
   | |   | +-io.circe:circe-numbers_2.13:0.13.0
   | |   | +-org.typelevel:cats-core_2.13:2.1.0
   | |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |   |
   | |   +-io.circe:circe-jawn_2.13:0.13.0
   | |     +-io.circe:circe-core_2.13:0.13.0
   | |     | +-io.circe:circe-numbers_2.13:0.13.0
   | |     | +-org.typelevel:cats-core_2.13:2.1.0
   | |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |     |
   | |     +-org.typelevel:jawn-parser_2.13:1.0.0
   | |
   | +-io.circe:circe-yaml_2.13:0.13.1
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-org.yaml:snakeyaml:1.26
   |
   +-com.softwaremill.sttp.tapir:tapir-openapi-docs_2.13:0.17.2
   | +-com.softwaremill.sttp.tapir:tapir-apispec-docs_2.13:0.17.2
   | | +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.2
   | | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   | |   +-com.propensive:magnolia_2.13:0.17.0
   | |   | +-com.propensive:mercator_2.13:0.2.1
   | |   |
   | |   +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | |   +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | |   +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   | |   | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | |   | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | |   |
   | |   +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-core_2.13:0.17.2
   | | +-com.propensive:magnolia_2.13:0.17.0
   | | | +-com.propensive:mercator_2.13:0.2.1
   | | |
   | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | +-com.softwaremill.sttp.shared:ws_2.13:1.0.0-RC13
   | | | +-com.softwaremill.sttp.model:core_2.13:1.2.0-RC4
   | | | +-com.softwaremill.sttp.shared:core_2.13:1.0.0-RC13
   | | |
   | | +-org.scala-lang:scala-reflect:2.13.4
   | |
   | +-com.softwaremill.sttp.tapir:tapir-openapi-model_2.13:0.17.2
   |   +-com.softwaremill.sttp.tapir:tapir-apispec-model_2.13:0.17.2
   |
   +-com.softwaremill.sttp.tapir:tapir-swagger-ui-akka-http_2.13:0.17.2
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | | |
   | | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | | +-com.typesafe:config:1.4.1
   | | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | | |
   | | +-org.reactivestreams:reactive-streams:1.0.3
   | |
   | +-org.webjars:swagger-ui:3.38.0
   |
   +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | +-com.typesafe:config:1.4.1
   | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   |
   +-com.typesafe.akka:akka-http_2.13:10.2.3
   | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   |   +-com.twitter:hpack:1.0.2
   |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   |
   +-com.typesafe.akka:akka-stream_2.13:2.6.11
   | +-com.typesafe.akka:akka-actor_2.13:2.6.11
   | | +-com.typesafe:config:1.4.1
   | | +-org.scala-lang.modules:scala-java8-compat_2.13:0.9.0
   | |
   | +-com.typesafe.akka:akka-protobuf-v3_2.13:2.6.11
   | +-com.typesafe:ssl-config-core_2.13:0.4.2
   | | +-com.typesafe:config:1.4.1
   | | +-org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
   | |
   | +-org.reactivestreams:reactive-streams:1.0.3
   |
   +-com.typesafe:config:1.4.1
   +-de.heikoseeberger:akka-http-circe_2.13:1.35.3
   | +-com.typesafe.akka:akka-http_2.13:10.2.3
   | | +-com.typesafe.akka:akka-http-core_2.13:10.2.3
   | |   +-com.twitter:hpack:1.0.2
   | |   +-com.typesafe.akka:akka-parsing_2.13:10.2.3
   | |
   | +-io.circe:circe-core_2.13:0.13.0
   | | +-io.circe:circe-numbers_2.13:0.13.0
   | | +-org.typelevel:cats-core_2.13:2.1.0
   | |   +-org.typelevel:cats-kernel_2.13:2.1.0
   | |   +-org.typelevel:cats-macros_2.13:2.1.0
   | |
   | +-io.circe:circe-parser_2.13:0.13.0
   |   +-io.circe:circe-core_2.13:0.13.0
   |   | +-io.circe:circe-numbers_2.13:0.13.0
   |   | +-org.typelevel:cats-core_2.13:2.1.0
   |   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |   |
   |   +-io.circe:circe-jawn_2.13:0.13.0
   |     +-io.circe:circe-core_2.13:0.13.0
   |     | +-io.circe:circe-numbers_2.13:0.13.0
   |     | +-org.typelevel:cats-core_2.13:2.1.0
   |     |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |     |   +-org.typelevel:cats-macros_2.13:2.1.0
   |     |
   |     +-org.typelevel:jawn-parser_2.13:1.0.0
   |
   +-io.circe:circe-core_2.13:0.13.0
   | +-io.circe:circe-numbers_2.13:0.13.0
   | +-org.typelevel:cats-core_2.13:2.1.0
   |   +-org.typelevel:cats-kernel_2.13:2.1.0
   |   +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-generic-extras_2.13:0.13.0
   | +-io.circe:circe-generic_2.13:0.13.0
   |   +-com.chuusai:shapeless_2.13:2.3.3
   |   +-io.circe:circe-core_2.13:0.13.0
   |     +-io.circe:circe-numbers_2.13:0.13.0
   |     +-org.typelevel:cats-core_2.13:2.1.0
   |       +-org.typelevel:cats-kernel_2.13:2.1.0
   |       +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-generic_2.13:0.13.0
   | +-com.chuusai:shapeless_2.13:2.3.3
   | +-io.circe:circe-core_2.13:0.13.0
   |   +-io.circe:circe-numbers_2.13:0.13.0
   |   +-org.typelevel:cats-core_2.13:2.1.0
   |     +-org.typelevel:cats-kernel_2.13:2.1.0
   |     +-org.typelevel:cats-macros_2.13:2.1.0
   |
   +-io.circe:circe-parser_2.13:0.13.0
     +-io.circe:circe-core_2.13:0.13.0
     | +-io.circe:circe-numbers_2.13:0.13.0
     | +-org.typelevel:cats-core_2.13:2.1.0
     |   +-org.typelevel:cats-kernel_2.13:2.1.0
     |   +-org.typelevel:cats-macros_2.13:2.1.0
     |
     +-io.circe:circe-jawn_2.13:0.13.0
       +-io.circe:circe-core_2.13:0.13.0
       | +-io.circe:circe-numbers_2.13:0.13.0
       | +-org.typelevel:cats-core_2.13:2.1.0
       |   +-org.typelevel:cats-kernel_2.13:2.1.0
       |   +-org.typelevel:cats-macros_2.13:2.1.0
       |
       +-org.typelevel:jawn-parser_2.13:1.0.0
oschrenk commented 3 years ago

Was able to reduce the problem to this code snippet

package acme.upload.rest
import sttp.tapir._
import sttp.tapir.docs.openapi._
import sttp.tapir.openapi._
import sttp.tapir.openapi.circe.yaml._
import sttp.tapir.swagger.akkahttp.SwaggerAkka

class Docs {

  private val files =
    endpoint.post
      .in("files")
      .in(
        header[String]("Upload-Length")
      )
      .out(stringBody)

  private val openApi =
    OpenAPIDocsInterpreter
      .toOpenAPI(
        List(files),
        Info(
          title = "acme.com",
          "latest"
        )
      )
      .servers(List(Server("acme.com")))

  val swagger = new SwaggerAkka(
    openApi.toYaml,
    "docs"
  )
}

This compiles but does not run

sbt clean run
...
[error] Exception in thread "main" java.lang.NoClassDefFoundError: sttp/model/headers/CookieWithMeta
[error]         at sttp.tapir.Codec$.<clinit>(Codec.scala:251)
[error]         at sttp.tapir.Tapir.$init$(Tapir.scala:60)
[error]         at sttp.tapir.package$.<clinit>(package.scala:5)
[error]         at acme.upload.rest.Docs.<init>(Tus.scala:11)
[error]         at acme.upload.Server$.delayedEndpoint$qicloud$upload$Server$1(Server.scala:31)
[error]         at acme.upload.Server$delayedInit$body.apply(Server.scala:15)
[error]         at scala.Function0.apply$mcV$sp(Function0.scala:39)
[error]         at scala.Function0.apply$mcV$sp$(Function0.scala:39)
[error]         at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
[error]         at scala.App.$anonfun$main$1(App.scala:76)
[error]         at scala.App.$anonfun$main$1$adapted(App.scala:76)
[error]         at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:563)
[error]         at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:561)
[error]         at scala.collection.AbstractIterable.foreach(Iterable.scala:919)
[error]         at scala.App.main(App.scala:76)
[error]         at scala.App.main$(App.scala:74)
[error]         at acme.upload.Server$.main(Server.scala:15)
[error]         at acme.upload.Server.main(Server.scala)
[error] Caused by: java.lang.ClassNotFoundException: sttp.model.headers.CookieWithMeta
[error]         at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
[error]         at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
[error]         ... 18 more
...
oschrenk commented 3 years ago

tapir 0.17.1

According to my sbt dependencyTree output

tapir 0.17.2

Moving the class to it's new location happened here:

https://github.com/softwaremill/sttp-model/commit/07f492aee3809d8d2c072847fd01ef345716b0b0

Which according to Github is released in v1.2.0 v1.2.0-RC12 v1.2.0-RC11 v1.2.0-RC10

According to the release notes https://github.com/softwaremill/tapir/releases/tag/v0.17.2 , 0.17.2 moved to RC-9. That is surprising to me - since I don't see this in my dependencyTree output. Even more confusing is that 0.17.2 updated it from RC6 to RC-9 and always get RC-4

oschrenk commented 3 years ago

Frick. Sorry to waste everybody's time.

@adamw was correct with his original assumption that I was setting an explicit dependency. I only checked the dependencies of the project, which did not include sttp-model, but the project also contained dependencyOverrides, which I did NOT check, which pinned "com.softwaremill.sttp.model" %% "core" % "1.2.0-RC4" because of some prior issues with eviction warnings with that library. I guess it's good that sbt 1.5.0 will get rid of those warnings.

My apologies.

adamw commented 3 years ago

No worries, dependencies and properly bumping version when they change is tricky both on the authoring and user side :)