Skip to content

Commit

Permalink
refactor Jackson code to hardcode buffer-recycler
Browse files Browse the repository at this point in the history
refactor Jackson code to hardcode buffer-recycler

update jackson

scalafmt

Update JacksonJson.scala
  • Loading branch information
pjfanning committed Mar 16, 2024
1 parent e7baef0 commit b3f7034
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ def specs2(scalaVersion: String) =
("org.specs2" %% s"specs2-$n" % "4.20.5") % Test
}

val jacksonDatabindVersion = "2.14.3"
val jacksonDatabindVersion = "2.16.2"
val jacksonDatabind = Seq(
"com.fasterxml.jackson.core" % "jackson-databind" % jacksonDatabindVersion
)

val jacksonVersion = "2.14.3"
val jacksonVersion = "2.16.2"
val jacksons = Seq(
"com.fasterxml.jackson.core" % "jackson-core",
"com.fasterxml.jackson.core" % "jackson-annotations",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ListBuffer

import com.fasterxml.jackson.core.JsonFactory
import com.fasterxml.jackson.core.JsonFactoryBuilder
import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.core.JsonTokenId
import com.fasterxml.jackson.core.Version
import com.fasterxml.jackson.core.json.JsonWriteFeature
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter
import com.fasterxml.jackson.core.util.JsonRecyclerPools

import com.fasterxml.jackson.databind.Module.SetupContext
import com.fasterxml.jackson.databind._
Expand Down Expand Up @@ -282,9 +284,17 @@ private[json] object JacksonJson {
}

private[json] case class JacksonJson(jsonConfig: JsonConfig) {
private val mapper = (new ObjectMapper).registerModule(new PlayJsonMapperModule(jsonConfig))

private val jsonFactory = new JsonFactory(mapper)
private val streamReadConstraints = StreamReadConstraints
.builder()
.maxNumberLength(Integer.MAX_VALUE)
.build()
private val jsonFactory = JsonFactory
.builder()
.streamReadConstraints(streamReadConstraints)
.recyclerPool(JsonRecyclerPools.threadLocalPool())
.asInstanceOf[JsonFactoryBuilder]
.build()
private val mapper = new ObjectMapper(jsonFactory).registerModule(new PlayJsonMapperModule(jsonConfig))

private def stringJsonGenerator(out: java.io.StringWriter) =
jsonFactory.createGenerator(out)
Expand Down

0 comments on commit b3f7034

Please sign in to comment.