org.json4s.JsonAST.JInt Scala Examples
The following examples show how to use org.json4s.JsonAST.JInt.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: JsonRpcServer.scala From mantis with Apache License 2.0 | 5 votes |
package io.iohk.ethereum.jsonrpc.server import java.security.SecureRandom import akka.actor.ActorSystem import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.model.headers.HttpOriginRange import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.{MalformedRequestContentRejection, RejectionHandler, Route} import ch.megard.akka.http.cors.javadsl.CorsRejection import ch.megard.akka.http.cors.scaladsl.CorsDirectives._ import ch.megard.akka.http.cors.scaladsl.settings.CorsSettings import de.heikoseeberger.akkahttpjson4s.Json4sSupport import io.iohk.ethereum.jsonrpc.{JsonRpcController, JsonRpcErrors, JsonRpcRequest, JsonRpcResponse} import io.iohk.ethereum.utils.Logger import org.json4s.JsonAST.JInt import org.json4s.{DefaultFormats, native} import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.Future trait JsonRpcServer extends Json4sSupport { val jsonRpcController: JsonRpcController implicit val serialization = native.Serialization implicit val formats = DefaultFormats def corsAllowedOrigins: HttpOriginRange val corsSettings = CorsSettings.defaultSettings.copy( allowGenericHttpRequests = true, allowedOrigins = corsAllowedOrigins ) implicit def myRejectionHandler: RejectionHandler = RejectionHandler.newBuilder() .handle { case _: MalformedRequestContentRejection => complete((StatusCodes.BadRequest, JsonRpcResponse("2.0", None, Some(JsonRpcErrors.ParseError), JInt(0)))) case _: CorsRejection => complete(StatusCodes.Forbidden) } .result() val route: Route = cors(corsSettings) { (pathEndOrSingleSlash & post) { entity(as[JsonRpcRequest]) { request => handleRequest(request) } ~ entity(as[Seq[JsonRpcRequest]]) { request => handleBatchRequest(request) } } } def run(): Unit private def handleRequest(request: JsonRpcRequest) = { complete(jsonRpcController.handleRequest(request)) } private def handleBatchRequest(requests: Seq[JsonRpcRequest]) = { complete(Future.sequence(requests.map(request => jsonRpcController.handleRequest(request)))) } } object JsonRpcServer extends Logger { def apply(jsonRpcController: JsonRpcController, config: JsonRpcServerConfig, secureRandom: SecureRandom) (implicit actorSystem: ActorSystem): Either[String, JsonRpcServer] = config.mode match { case "http" => Right(new JsonRpcHttpServer(jsonRpcController, config)(actorSystem)) case "https" => Right(new JsonRpcHttpsServer(jsonRpcController, config, secureRandom)(actorSystem)) case _ => Left(s"Cannot start JSON RPC server: Invalid mode ${config.mode} selected") } trait JsonRpcServerConfig { val mode: String val enabled: Boolean val interface: String val port: Int val certificateKeyStorePath: Option[String] val certificateKeyStoreType: Option[String] val certificatePasswordFile: Option[String] val corsAllowedOrigins: HttpOriginRange } }
Example 2
Source File: CheckPoint.scala From eclair with Apache License 2.0 | 5 votes |
package fr.acinq.eclair.blockchain.electrum import java.io.InputStream import fr.acinq.bitcoin.{Block, ByteVector32, encodeCompact} import fr.acinq.eclair.blockchain.electrum.db.HeaderDb import org.json4s.JsonAST.{JArray, JInt, JString} import org.json4s.jackson.JsonMethods def load(chainHash: ByteVector32, headerDb: HeaderDb): Vector[CheckPoint] = { val checkpoints = CheckPoint.load(chainHash) val checkpoints1 = headerDb.getTip match { case Some((height, header)) => val newcheckpoints = for {h <- checkpoints.size * RETARGETING_PERIOD - 1 + RETARGETING_PERIOD to height - RETARGETING_PERIOD by RETARGETING_PERIOD} yield { // we * should * have these headers in our db val cpheader = headerDb.getHeader(h).get val nextDiff = headerDb.getHeader(h + 1).get.bits CheckPoint(cpheader.hash, nextDiff) } checkpoints ++ newcheckpoints case None => checkpoints } checkpoints1 } }
Example 3
Source File: EarnDotComFeeProvider.scala From eclair with Apache License 2.0 | 5 votes |
package fr.acinq.eclair.blockchain.fee import com.softwaremill.sttp._ import com.softwaremill.sttp.json4s._ import org.json4s.DefaultFormats import org.json4s.JsonAST.{JArray, JInt, JValue} import org.json4s.jackson.Serialization import scala.concurrent.duration._ import scala.concurrent.{ExecutionContext, Future} class EarnDotComFeeProvider(readTimeOut: Duration)(implicit http: SttpBackend[Future, Nothing], ec: ExecutionContext) extends FeeProvider { import EarnDotComFeeProvider._ implicit val formats = DefaultFormats implicit val serialization = Serialization val uri = uri"https://bitcoinfees.earn.com/api/v1/fees/list" override def getFeerates: Future[FeeratesPerKB] = for { json <- sttp.readTimeout(readTimeOut).get(uri) .response(asJson[JValue]) .send() feeRanges = parseFeeRanges(json.unsafeBody) } yield extractFeerates(feeRanges) } object EarnDotComFeeProvider { case class FeeRange(minFee: Long, maxFee: Long, memCount: Long, minDelay: Long, maxDelay: Long) def parseFeeRanges(json: JValue): Seq[FeeRange] = { val JArray(items) = json \ "fees" items.map(item => { val JInt(minFee) = item \ "minFee" val JInt(maxFee) = item \ "maxFee" val JInt(memCount) = item \ "memCount" val JInt(minDelay) = item \ "minDelay" val JInt(maxDelay) = item \ "maxDelay" // earn.com returns fees in Satoshi/byte and we want Satoshi/KiloByte FeeRange(minFee = 1000 * minFee.toLong, maxFee = 1000 * maxFee.toLong, memCount = memCount.toLong, minDelay = minDelay.toLong, maxDelay = maxDelay.toLong) }) } def extractFeerate(feeRanges: Seq[FeeRange], maxBlockDelay: Int): Long = { // first we keep only fee ranges with a max block delay below the limit val belowLimit = feeRanges.filter(_.maxDelay <= maxBlockDelay) // out of all the remaining fee ranges, we select the one with the minimum higher bound and make sure it is > 0 Math.max(belowLimit.minBy(_.maxFee).maxFee, 1) } def extractFeerates(feeRanges: Seq[FeeRange]): FeeratesPerKB = FeeratesPerKB( block_1 = extractFeerate(feeRanges, 1), blocks_2 = extractFeerate(feeRanges, 2), blocks_6 = extractFeerate(feeRanges, 6), blocks_12 = extractFeerate(feeRanges, 12), blocks_36 = extractFeerate(feeRanges, 36), blocks_72 = extractFeerate(feeRanges, 72), blocks_144 = extractFeerate(feeRanges, 144)) }
Example 4
Source File: BitgoFeeProvider.scala From eclair with Apache License 2.0 | 5 votes |
package fr.acinq.eclair.blockchain.fee import com.softwaremill.sttp._ import com.softwaremill.sttp.json4s._ import fr.acinq.bitcoin.{Block, ByteVector32} import org.json4s.DefaultFormats import org.json4s.JsonAST.{JInt, JValue} import org.json4s.jackson.Serialization import scala.concurrent.duration._ import scala.concurrent.{ExecutionContext, Future} class BitgoFeeProvider(chainHash: ByteVector32, readTimeOut: Duration)(implicit http: SttpBackend[Future, Nothing], ec: ExecutionContext) extends FeeProvider { import BitgoFeeProvider._ implicit val formats = DefaultFormats implicit val serialization = Serialization val uri = chainHash match { case Block.LivenetGenesisBlock.hash => uri"https://www.bitgo.com/api/v2/btc/tx/fee" case _ => uri"https://test.bitgo.com/api/v2/tbtc/tx/fee" } override def getFeerates: Future[FeeratesPerKB] = for { res <- sttp.readTimeout(readTimeOut).get(uri) .response(asJson[JValue]) .send() feeRanges = parseFeeRanges(res.unsafeBody) } yield extractFeerates(feeRanges) } object BitgoFeeProvider { case class BlockTarget(block: Int, fee: Long) def parseFeeRanges(json: JValue): Seq[BlockTarget] = { val blockTargets = json \ "feeByBlockTarget" blockTargets.foldField(Seq.empty[BlockTarget]) { // BitGo returns estimates in Satoshi/KB, which is what we want case (list, (strBlockTarget, JInt(feePerKB))) => list :+ BlockTarget(strBlockTarget.toInt, feePerKB.longValue) } } def extractFeerate(feeRanges: Seq[BlockTarget], maxBlockDelay: Int): Long = { // first we keep only fee ranges with a max block delay below the limit val belowLimit = feeRanges.filter(_.block <= maxBlockDelay) // out of all the remaining fee ranges, we select the one with the minimum higher bound belowLimit.map(_.fee).min } def extractFeerates(feeRanges: Seq[BlockTarget]): FeeratesPerKB = FeeratesPerKB( block_1 = extractFeerate(feeRanges, 1), blocks_2 = extractFeerate(feeRanges, 2), blocks_6 = extractFeerate(feeRanges, 6), blocks_12 = extractFeerate(feeRanges, 12), blocks_36 = extractFeerate(feeRanges, 36), blocks_72 = extractFeerate(feeRanges, 72), blocks_144 = extractFeerate(feeRanges, 144)) }
Example 5
Source File: CustomerSerializers.scala From quiz-management-service with Apache License 2.0 | 5 votes |
package com.danielasfregola.quiz.management.serializers import java.sql.Timestamp import org.json4s.CustomSerializer import org.json4s.JsonAST.{JInt, JNull} object CustomSerializers { val all = List(CustomTimestampSerializer) } case object CustomTimestampSerializer extends CustomSerializer[Timestamp](format => ({ case JInt(x) => new Timestamp(x.longValue * 1000) case JNull => null }, { case date: Timestamp => JInt(date.getTime / 1000) }))
Example 6
Source File: CustomerSerializers.scala From quiz-management-service with Apache License 2.0 | 5 votes |
package com.danielasfregola.quiz.management.serializers import java.sql.Timestamp import org.json4s.CustomSerializer import org.json4s.JsonAST.{JInt, JNull} object CustomSerializers { val all = List(CustomTimestampSerializer) } case object CustomTimestampSerializer extends CustomSerializer[Timestamp](format => ({ case JInt(x) => new Timestamp(x.longValue * 1000) case JNull => null }, { case date: Timestamp => JInt(date.getTime / 1000) }))
Example 7
Source File: CustomerSerializers.scala From quiz-management-service with Apache License 2.0 | 5 votes |
package com.danielasfregola.quiz.management.serializers import java.sql.Timestamp import org.json4s.CustomSerializer import org.json4s.JsonAST.{JInt, JNull} object CustomSerializers { val all = List(CustomTimestampSerializer) } case object CustomTimestampSerializer extends CustomSerializer[Timestamp](format => ({ case JInt(x) => new Timestamp(x.longValue * 1000) case JNull => null }, { case date: Timestamp => JInt(date.getTime / 1000) }))
Example 8
Source File: BatchClientSuite.scala From hail with MIT License | 5 votes |
package is.hail.services.batch_client import is.hail.utils._ import org.json4s.JsonAST.{JArray, JBool, JInt, JObject, JString} import org.json4s.{DefaultFormats, Formats} import org.scalatest.testng.TestNGSuite import org.testng.annotations.Test class BatchClientSuite extends TestNGSuite { @Test def testBasic(): Unit = { val client = new BatchClient() val token = tokenUrlSafe(32) val batch = client.run( JObject( "billing_project" -> JString("test"), "n_jobs" -> JInt(1), "token" -> JString(token)), FastIndexedSeq( JObject( "always_run" -> JBool(false), "image" -> JString("ubuntu:18.04"), "mount_docker_socket" -> JBool(false), "command" -> JArray(List( JString("/bin/bash"), JString("-c"), JString("echo 'Hello, world!'"))), "job_id" -> JInt(0), "parent_ids" -> JArray(List())))) implicit val formats: Formats = DefaultFormats assert((batch \ "state").extract[String] == "success") } }
Example 9
Source File: BitSerializer.scala From NSDb with Apache License 2.0 | 5 votes |
package io.radicalbit.nsdb.web import io.radicalbit.nsdb.common._ import io.radicalbit.nsdb.common.protocol.Bit import org.json4s.JsonAST.{JDouble, JField, JInt, JLong} import org.json4s.{CustomSerializer, JObject, JString, JsonAST} case object BitSerializer extends CustomSerializer[Bit]( _ => ( { case _ => throw new IllegalAccessException( "BitSerializer can be used only for serialization and not for deserialization") }, { case bit: Bit => def extractJValue(nsdbType: NSDbType): JsonAST.JValue = { nsdbType match { case NSDbDoubleType(rawValue) => JDouble(rawValue) case NSDbIntType(rawValue) => JInt(rawValue) case NSDbLongType(rawValue) => JLong(rawValue) case NSDbStringType(rawValue) => JString(rawValue) } } JObject( List( JField("timestamp", JLong(bit.timestamp)), JField("value", extractJValue(bit.value)), JField("dimensions", JObject(bit.dimensions.map { case (k, v) => JField(k, extractJValue(v)) }.toList)), JField("tags", JObject(bit.tags.map { case (k, v) => JField(k, extractJValue(v)) }.toList)) ) ) } ))
Example 10
Source File: CustomSerializerForTest.scala From NSDb with Apache License 2.0 | 5 votes |
package io.radicalbit.nsdb.web import io.radicalbit.nsdb.common.statement.RelativeComparisonValue import org.json4s.{CustomSerializer, JObject, JString} import org.json4s.JsonAST.{JField, JInt, JLong} case object CustomSerializerForTest extends CustomSerializer[RelativeComparisonValue](_ => ({ case JObject( List(JField("value", JLong(0L)), JField("operator", JString(operator)), JField("quantity", JInt(quantity)), JField("unitMeasure", JString(unitMeasure)))) => RelativeComparisonValue(0L, operator, quantity.intValue, unitMeasure) }, { case RelativeComparisonValue(_, operator, quantity: Long, unitMeasure) => JObject( List(JField("value", JLong(0L)), JField("operator", JString(operator)), JField("quantity", JLong(quantity)), JField("unitMeasure", JString(unitMeasure)))) }))
Example 11
Source File: MasterWebUISuite.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.deploy.master.ui import java.util.Date import scala.io.Source import scala.language.postfixOps import org.json4s.jackson.JsonMethods._ import org.json4s.JsonAST.{JNothing, JString, JInt} import org.mockito.Mockito.{mock, when} import org.scalatest.BeforeAndAfter import org.apache.spark.{SparkConf, SecurityManager, SparkFunSuite} import org.apache.spark.deploy.DeployMessages.MasterStateResponse import org.apache.spark.deploy.DeployTestUtils._ import org.apache.spark.deploy.master._ import org.apache.spark.rpc.RpcEnv class MasterWebUISuite extends SparkFunSuite with BeforeAndAfter { val masterPage = mock(classOf[MasterPage]) val master = { val conf = new SparkConf val securityMgr = new SecurityManager(conf) val rpcEnv = RpcEnv.create(Master.SYSTEM_NAME, "localhost", 0, conf, securityMgr) val master = new Master(rpcEnv, rpcEnv.address, 0, securityMgr, conf) master } val masterWebUI = new MasterWebUI(master, 0, customMasterPage = Some(masterPage)) before { masterWebUI.bind() } after { masterWebUI.stop() } test("list applications") { val worker = createWorkerInfo() val appDesc = createAppDesc() // use new start date so it isn't filtered by UI val activeApp = new ApplicationInfo( new Date().getTime, "id", appDesc, new Date(), null, Int.MaxValue) activeApp.addExecutor(worker, 2) val workers = Array[WorkerInfo](worker) val activeApps = Array(activeApp) val completedApps = Array[ApplicationInfo]() val activeDrivers = Array[DriverInfo]() val completedDrivers = Array[DriverInfo]() val stateResponse = new MasterStateResponse( "host", 8080, None, workers, activeApps, completedApps, activeDrivers, completedDrivers, RecoveryState.ALIVE) when(masterPage.getMasterState).thenReturn(stateResponse) val resultJson = Source.fromURL( s"http://localhost:${masterWebUI.boundPort}/api/v1/applications") .mkString val parsedJson = parse(resultJson) val firstApp = parsedJson(0) assert(firstApp \ "id" === JString(activeApp.id)) assert(firstApp \ "name" === JString(activeApp.desc.name)) assert(firstApp \ "coresGranted" === JInt(2)) assert(firstApp \ "maxCores" === JInt(4)) assert(firstApp \ "memoryPerExecutorMB" === JInt(1234)) assert(firstApp \ "coresPerExecutor" === JNothing) } }
Example 12
Source File: GraphiteMetric.scala From slab with Apache License 2.0 | 5 votes |
package com.criteo.slab.lib.graphite import com.criteo.slab.utils.Jsonable import org.json4s.JsonAST.{JArray, JDouble, JInt, JNull} import org.json4s.{CustomSerializer, Serializer} private[slab] case class DataPoint(value: Option[Double], timestamp: Long) object DataPoint { implicit object ToJSON extends Jsonable[DataPoint] { override val serializers: Seq[Serializer[_]] = List(Ser) object Ser extends CustomSerializer[DataPoint](_ => ( { case JArray(JDouble(value) :: JInt(date) :: Nil) => DataPoint(Some(value), date.toLong) case JArray(JNull :: JInt(date) :: Nil) => DataPoint(None, date.toLong) }, { case DataPoint(value, date) => val v = value match { case Some(v) => JDouble(v) case None => JNull } JArray( List( v, JInt(date) ) ) } )) } } private[slab] case class GraphiteMetric( target: String, datapoints: List[DataPoint] ) object GraphiteMetric { implicit object ToJSON extends Jsonable[GraphiteMetric] { override val serializers: Seq[Serializer[_]] = implicitly[Jsonable[DataPoint]].serializers } }
Example 13
Source File: CustomFormats.scala From twitter4s with Apache License 2.0 | 5 votes |
package com.danielasfregola.twitter4s.http.serializers import java.time._ import com.danielasfregola.twitter4s.entities.enums.DisconnectionCode import com.danielasfregola.twitter4s.entities.enums.DisconnectionCode.DisconnectionCode import com.danielasfregola.twitter4s.entities.ProfileImage import org.json4s.JsonAST.{JInt, JLong, JNull, JString} import org.json4s.{CustomSerializer, Formats} private[twitter4s] object CustomFormats extends FormatsComposer { override def compose(f: Formats): Formats = f + InstantSerializer + LocalDateSerializer + DisconnectionCodeSerializer + ProfileImageSerializer } private[twitter4s] case object InstantSerializer extends CustomSerializer[Instant](format => ({ case JInt(i) => DateTimeFormatter.parseInstant(i.toLong) case JLong(l) => DateTimeFormatter.parseInstant(l) case JString(s) if DateTimeFormatter.canParseInstant(s) => DateTimeFormatter.parseInstant(s) case JString(stringAsUnixTime) if stringAsUnixTime.forall(_.isDigit) => Instant.ofEpochMilli(stringAsUnixTime.toLong) }, { case instant: Instant => JString(DateTimeFormatter.formatInstant(instant)) })) private[twitter4s] case object LocalDateSerializer extends CustomSerializer[LocalDate](format => ({ case JString(dateString) => dateString.split("-") match { case Array(year, month, date) => LocalDate.of(year.toInt, month.toInt, date.toInt) case _ => null } case JNull => null }, { case date: LocalDate => JString(date.toString) })) private[twitter4s] case object DisconnectionCodeSerializer extends CustomSerializer[DisconnectionCode](format => ({ case JInt(n) => DisconnectionCode(n.toInt) case JNull => null }, { case code: DisconnectionCode => JInt(code.id) })) private[twitter4s] case object ProfileImageSerializer extends CustomSerializer[ProfileImage](format => ({ case JString(n) => ProfileImage(n) case JNull => null }, { case img: ProfileImage => JString(img.normal) }))