Skip to content

sbt-airframe: Support reading HTTP interfaces defined in Scala 2.13 #970

@xerial

Description

@xerial
  • sbt plugin needs to be built for Scala 2.12
  • If we use this plugin to read HTTP interfaces built in Scala 2.13, an error occurs when reading Scala Signature using Surface:

Scala signature ClusterApi has wrong version expected: 5.0 found: 5.2

  • Idea: sbt-airframe plugin needs to switch the Airframe version to use based on scalaVersion setting in the project.
java.lang.RuntimeException: error reading Scala signature of com.treasuredata.prestobase.model.api.v1.ClusterApi: Scala signature ClusterApi has wrong version
 expected: 5.0
 found: 5.2 in com.treasuredata.prestobase.model.api.v1.ClusterApi
	at scala.reflect.internal.pickling.UnPickler.unpickle(UnPickler.scala:51)
	at scala.reflect.runtime.JavaMirrors$JavaMirror.unpickleClass(JavaMirrors.scala:653)
	at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.$anonfun$complete$2(SymbolLoaders.scala:37)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at scala.reflect.internal.SymbolTable.slowButSafeEnteringPhaseNotLaterThan(SymbolTable.scala:332)
	at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.complete(SymbolLoaders.scala:34)
	at scala.reflect.runtime.SymbolLoaders$TopClassCompleter.load(SymbolLoaders.scala:42)
	at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol.completeTypeParams$1(SynchronizedSymbols.scala:173)
	at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol.$anonfun$typeParams$1(SynchronizedSymbols.scala:180)
	at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol.typeParams(SynchronizedSymbols.scala:149)
	at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol.typeParams$(SynchronizedSymbols.scala:165)
	at scala.reflect.runtime.SynchronizedSymbols$SynchronizedSymbol$$anon$7.typeParams(SynchronizedSymbols.scala:203)
	at scala.reflect.internal.Types$NoArgsTypeRef.typeParams(Types.scala:1892)
	at scala.reflect.internal.Types$NoArgsTypeRef.isHigherKinded(Types.scala:1891)
	at scala.reflect.internal.Types$Type.takesTypeArgs(Types.scala:281)
	at wvlet.airframe.surface.reflect.ReflectSurfaceFactory$SurfaceFinder$$anonfun$higherKindedTypeFactory$1.applyOrElse(ReflectSurfaceFactory.scala:354)```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions