Skip to content

Commit

Permalink
Update Netty to latest version, 4.1.117.Final (zio#3279)
Browse files Browse the repository at this point in the history
  • Loading branch information
guizmaii authored Jan 31, 2025
1 parent 84866ca commit 7ccdfbb
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 20 deletions.
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import sbt.*

object Dependencies {
val JwtCoreVersion = "10.0.1"
val NettyVersion = "4.1.116.Final"
val NettyVersion = "4.1.117.Final"
val NettyIncubatorVersion = "0.0.25.Final"
val ScalaCompactCollectionVersion = "2.12.0"
val ZioVersion = "2.1.11"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ import scala.collection.AbstractIterator
import zio.http.Server.Config.CompressionOptions
import zio.http._

import com.aayushatharva.brotli4j.encoder.Encoder
import io.netty.handler.codec.compression.StandardCompressionOptions
import io.netty.handler.codec.compression.{BrotliMode, StandardCompressionOptions}
import io.netty.handler.codec.http._
import io.netty.handler.codec.http.websocketx.WebSocketScheme

Expand Down Expand Up @@ -150,15 +149,13 @@ private[netty] object Conversions {
case CompressionOptions.Deflate(cfg) =>
StandardCompressionOptions.deflate(cfg.level, cfg.bits, cfg.mem)
case CompressionOptions.Brotli(cfg) =>
StandardCompressionOptions.brotli(
new Encoder.Parameters().setQuality(cfg.quality).setWindow(cfg.lgwin).setMode(brotliModeToJava(cfg.mode)),
)
StandardCompressionOptions.brotli(cfg.quality, cfg.lgwin, brotliModeToJava(cfg.mode))
}

def brotliModeToJava(brotli: CompressionOptions.Mode): Encoder.Mode = brotli match {
case CompressionOptions.Mode.Font => Encoder.Mode.FONT
case CompressionOptions.Mode.Text => Encoder.Mode.TEXT
case CompressionOptions.Mode.Generic => Encoder.Mode.GENERIC
def brotliModeToJava(brotli: CompressionOptions.Mode): BrotliMode = brotli match {
case CompressionOptions.Mode.Font => BrotliMode.FONT
case CompressionOptions.Mode.Text => BrotliMode.TEXT
case CompressionOptions.Mode.Generic => BrotliMode.GENERIC
}

def versionToNetty(version: Version): HttpVersion = version match {
Expand Down
29 changes: 19 additions & 10 deletions zio-http/jvm/src/test/scala/zio/http/ClientHttpsSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,29 @@ package zio.http

import zio._
import zio.test.Assertion._
import zio.test.TestAspect.{flaky, ignore, nonFlaky}
import zio.test.{TestAspect, assertZIO}
import zio.test.TestAspect.{ignore, nonFlaky}
import zio.test.{Spec, TestAspect, TestEnvironment, assertZIO}

import zio.http.netty.NettyConfig
import zio.http.netty.client.NettyClientDriver

abstract class ClientHttpsSpecBase extends ZIOHttpSpec {
val sslConfig: ClientSSLConfig

val zioDev =
private val zioDev =
URL.decode("https://zio.dev").toOption.get

val badRequest =
private val badRequest =
URL
.decode(
"https://httpbin.org/status/400",
)
.toOption
.get

val untrusted =
private val untrusted =
URL.decode("https://untrusted-root.badssl.com/").toOption.get

override def spec = suite("Https Client request")(
def tests(sslConfig: ClientSSLConfig) = suite("Client")(
test("respond Ok") {
val actual = Client.batched(Request.get(zioDev))
assertZIO(actual)(anything)
Expand Down Expand Up @@ -74,7 +73,7 @@ abstract class ClientHttpsSpecBase extends ZIOHttpSpec {
),
),
)
} @@ nonFlaky(20),
},
)
.provideShared(
ZLayer.succeed(ZClient.Config.default.ssl(sslConfig)),
Expand All @@ -91,17 +90,27 @@ abstract class ClientHttpsSpecBase extends ZIOHttpSpec {

object ClientHttpsSpec extends ClientHttpsSpecBase {

val sslConfig = ClientSSLConfig.FromTrustStoreResource(
private val sslConfig = ClientSSLConfig.FromTrustStoreResource(
trustStorePath = "truststore.jks",
trustStorePassword = "changeit",
)

override def spec: Spec[TestEnvironment & Scope, Throwable] =
suite("Https Client request - From Trust Store")(
tests(sslConfig),
)
}

object ClientHttpsFromJavaxNetSslSpec extends ClientHttpsSpecBase {

val sslConfig =
private val sslConfig =
ClientSSLConfig.FromJavaxNetSsl
.builderWithTrustManagerResource("trustStore.jks")
.trustManagerPassword("changeit")
.build()

override def spec: Spec[TestEnvironment & Scope, Throwable] =
suite("Https Client request - From Javax Net Ssl")(
tests(sslConfig),
)
}

0 comments on commit 7ccdfbb

Please sign in to comment.