Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
.bsp
ts
*.log
/project/.boot/
/project/.ivy/
/project/.sbtboot/
project/project/target
project/target
target
Expand Down
12 changes: 7 additions & 5 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import sbtcrossproject.CrossPlugin.autoImport.{CrossType, crossProject}

inThisBuild(
Seq(
scalaVersion := "2.13.6",
scalaVersion := "2.12.10",
crossScalaVersions := List("2.12.10", "2.13.6"),
version := "0.1.0-SNAPSHOT",
organization := "com.github.tmtsoftware.msocket",
organizationName := "ThoughtWorks",
Expand All @@ -15,9 +16,9 @@ inThisBuild(
"-feature",
"-unchecked",
"-deprecation",
"-Xasync",
"-Wconf:any:warning-verbose",
"-Wdead-code",
//"-Xasync", #todo make work for cross compile
//"-Wconf:any:warning-verbose",
//"-Wdead-code",
"-Xlint:_,-missing-interpolator",
"-Xsource:3",
"-Xcheckinit"
Expand Down Expand Up @@ -188,7 +189,8 @@ lazy val `example-client-js` = project
.settings(
libraryDependencies ++= Seq(
scalatest.value % Test,
`scala-async`
`scala-async`,
`scala-java8-compat`
),
Test / test := {
// (`example-server` / reStart).toTask("").value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,18 @@ object ClientMainJs extends ExampleCodecs {
val WebsocketEndpoint = "ws://localhost:5000/websocket-endpoint"
val RSocketEndpoint = "ws://localhost:7000"

lazy val httpResponseTransport = new HttpPostTransportJs[ExampleRequest](PostEndpoint, Json)
@nowarn lazy val httpResponseTransport2 = new HttpPostTransportJs[ExampleRequest](PostEndpoint2, Json)
@nowarn lazy val httpStreamTransport = new HttpPostTransportJs[ExampleStreamRequest](PostStreamingEndpoint, Json)
lazy val httpResponseTransport = new HttpPostTransportJs[ExampleRequest](PostEndpoint, Json)
/*@nowarn*/
lazy val httpResponseTransport2 = new HttpPostTransportJs[ExampleRequest](PostEndpoint2, Json)
/*@nowarn*/
lazy val httpStreamTransport = new HttpPostTransportJs[ExampleStreamRequest](PostStreamingEndpoint, Json)

lazy val (rSocketResponseTransport, _) = RSocketTransportFactoryJs.connect[ExampleRequest](RSocketEndpoint, Cbor)
lazy val (rSocketStreamTransport, _) = RSocketTransportFactoryJs.connect[ExampleStreamRequest](RSocketEndpoint, Json)

@nowarn lazy val sseTransport = new SseTransportJs[ExampleStreamRequest](SseEndpoint)
lazy val websocketTransport = new WebsocketTransportJs[ExampleStreamRequest](WebsocketEndpoint, Json)
/*@nowarn*/
lazy val sseTransport = new SseTransportJs[ExampleStreamRequest](SseEndpoint)
lazy val websocketTransport = new WebsocketTransportJs[ExampleStreamRequest](WebsocketEndpoint, Json)

val exampleClient = new ExampleClient(httpResponseTransport, websocketTransport)
new ClientAppJs(exampleClient).testRun()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ object ClientMain extends ExampleCodecs {
lazy val (rSocketResponseTransport, _) = RSocketTransportFactory.connect[ExampleRequest](RSocketEndpoint, Json)
lazy val (rSocketStreamTransport, _) = RSocketTransportFactory.connect[ExampleStreamRequest](RSocketEndpoint, Json)

@nowarn lazy val sseTransport = new SseTransport[ExampleStreamRequest](SseEndpoint, Json, () => None)
@nowarn lazy val websocketTransport = new WebsocketTransport[ExampleStreamRequest](WebsocketEndpoint, Json)
/*@nowarn*/
lazy val sseTransport = new SseTransport[ExampleStreamRequest](SseEndpoint, Json, () => None)
/*@nowarn*/
lazy val websocketTransport = new WebsocketTransport[ExampleStreamRequest](WebsocketEndpoint, Json)

val exampleClient = new ExampleClient(httpResponseTransport, httpStreamTransport)
new ClientApp(exampleClient).testRun()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ class ExampleImpl(implicit actorSystem: ActorSystem[_]) extends ExampleApi {
private def randomize() = {
val random = new Random()
Bag(
red = random.between(1, 10),
green = random.between(1, 10),
blue = random.between(1, 10)
red = random.nextInt(9) + 1, //#todo .between(1, 10),
green = random.nextInt(9) + 1, //#todo .between(1, 10),
blue = random.nextInt(9) + 1 //#todo .between(1, 10)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ trait BasicCodecs {
implicit lazy val doneCodec: Codec[Done] = Codec.bimap[String, Done](_ => "Done", _ => Done)

implicit lazy val timeoutInSecondsCodec: Codec[Timeout] = {
@nowarn implicit val durationInSecondsCodec: Codec[FiniteDuration] =
/*@nowarn*/
implicit val durationInSecondsCodec: Codec[FiniteDuration] =
Codec.bimap[Long, FiniteDuration](_.toSeconds, FiniteDuration(_, TimeUnit.SECONDS))

CompactMapBasedCodecs.deriveCodec
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import msocket.http.post.headers.ErrorTypeHeader
import msocket.jvm.mono.MonoResponseEncoder
import msocket.security.AccessController

import scala.collection.immutable.Seq
import scala.concurrent.ExecutionContext

class HttpResponseEncoder[Req: ErrorProtocol](val accessController: AccessController)(implicit ec: ExecutionContext)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,17 @@ import msocket.jvm.JvmTransport

import scala.concurrent.duration.FiniteDuration
import scala.concurrent.{ExecutionContext, Future}
import scala.jdk.FutureConverters.CompletionStageOps
//import scala.jdk._
import scala.compat.java8._
import FutureConverters.CompletionStageOps

class RSocketTransport[Req: Encoder: ErrorProtocol](rSocket: RSocket, contentType: ContentType)(implicit actorSystem: ActorSystem[_])
extends JvmTransport[Req] {

implicit val ec: ExecutionContext = actorSystem.executionContext

override def requestResponse[Res: Decoder: Encoder](request: Req): Future[Res] = {
rSocket.requestResponse(contentType.payload(request, ResponseHeaders())).toFuture.asScala.map { payload =>
rSocket.requestResponse(contentType.payload(request, ResponseHeaders())).toFuture.toScala.map { payload =>
contentType.response[Res, Req](payload)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ package msocket.portable
import akka.actor.typed.ActorSystem
import akka.stream.scaladsl.Source

import scala.annotation.nowarn
//import scala.annotation.nowarn
import scala.concurrent.ExecutionContext
import scala.concurrent.duration.FiniteDuration
import scala.scalajs.js.timers

object PortableAkka {

def setTimeout(duration: FiniteDuration)(body: => Unit)(implicit @nowarn actorSystem: ActorSystem[_]): Unit = {
def setTimeout(duration: FiniteDuration)(body: => Unit)(implicit /*@nowarn*/ actorSystem: ActorSystem[_]): Unit = {
timers.setTimeout(duration)(body)
}

implicit class SourceOps[Out, Mat](private val target: Source[Out, Mat]) extends AnyVal {
def viaObserver(observer: Observer[Out])(implicit @nowarn ec: ExecutionContext): Source[Out, Mat] = {
def viaObserver(observer: Observer[Out])(implicit /*@nowarn*/ ec: ExecutionContext): Source[Out, Mat] = {
target.onMessage(observer)
target
}
Expand Down
4 changes: 3 additions & 1 deletion project/Libs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ object Libs {
// 1.0.0-M1 does not work with Scala.js js yet
val `scala-async` = "org.scala-lang.modules" %% "scala-async" % "1.0.0"

val `scala-java8-compat` = "org.scala-lang.modules" %% "scala-java8-compat" % "1.0.1"

private val akkaVersion = "2.6.15"

val `akka-stream` = "com.typesafe.akka" %% "akka-stream" % akkaVersion
Expand All @@ -28,7 +30,7 @@ object Libs {
val `selenium-3-141` = "org.scalatestplus" %% "selenium-3-141" % "3.2.2.0"
val `scalajs-dom` = dep("org.scala-js" %%% "scalajs-dom" % "1.1.0")

val `tmt-typed` = dep("com.github.mushtaq.tmt-typed" %%% "tmt-typed" % "8dc3e04")
val `tmt-typed` = dep("com.github.mushtaq.tmt-typed" %%% "tmt-typed" % "0.1.0-SNAPSHOT"/*"8dc3e04"*/)

private val rsocketVersion = "1.1.1"
val `rsocket-core` = "io.rsocket" % "rsocket-core" % rsocketVersion
Expand Down