本文整理汇总了Scala中com.lightbend.lagom.scaladsl.playjson.JsonSerializer类的典型用法代码示例。如果您正苦于以下问题:Scala JsonSerializer类的具体用法?Scala JsonSerializer怎么用?Scala JsonSerializer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了JsonSerializer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: SaveNewMessage
//设置package包名称以及导入依赖的类
package sample.helloworldconsumer.impl
import com.lightbend.lagom.scaladsl.persistence.PersistentEntity.ReplyType
import play.api.libs.json.Json
import akka.Done
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import scala.collection.immutable.Seq
sealed trait MessageCommand [T] extends ReplyType[T]
case class SaveNewMessage(message: String) extends MessageCommand[Done]
object SaveNewMessage {
implicit val formatter = Json.format[SaveNewMessage]
}
object HelloConsumerSerializerRegistry extends JsonSerializerRegistry {
override def serializers: Seq[JsonSerializer[_]] = Seq(
JsonSerializer[SaveNewMessage],
JsonSerializer[MessageSaved],
JsonSerializer[MessageState]
)
}
示例2: AccountSerializerRegistry
//设置package包名称以及导入依赖的类
package org.ioreskovic.greatmaterialcontinuum.impl.ent.acc
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import org.ioreskovic.greatmaterialcontinuum.impl.cmd.acc._
import org.ioreskovic.greatmaterialcontinuum.impl.evt.acc._
import org.ioreskovic.greatmaterialcontinuum.impl.stt.acc.AccountState
import scala.collection.immutable
object AccountSerializerRegistry extends JsonSerializerRegistry {
override def serializers: immutable.Seq[JsonSerializer[_]] = immutable.Seq(
JsonSerializer[AccountState],
JsonSerializer[CreateAccount],
JsonSerializer[DeleteAccount],
JsonSerializer[ActivateAccount],
JsonSerializer[DeactivateAccount],
JsonSerializer[RetrieveAccount],
JsonSerializer[AccountCreated],
JsonSerializer[AccountDeleted],
JsonSerializer[AccountActivated],
JsonSerializer[AccountDeactivated],
JsonSerializer[AccountRetrieved]
)
}
示例3: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import com.softwaremill.macwire._
import demo.api.basket.{Basket, BasketService}
import play.api.libs.ws.ahc.AhcWSComponents
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
persistentEntityRegistry.register(wire[BasketEntity])
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
import BasketEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = Seq (
JsonSerializer[AddItem],
JsonSerializer[GetBasket.type],
JsonSerializer[GetTotal.type],
JsonSerializer[ClearAll.type],
JsonSerializer[BasketCleared.type],
JsonSerializer[ItemAdded],
JsonSerializer[BasketEntityState],
JsonSerializer[Basket],
JsonSerializer[OrderPlaced],
JsonSerializer[PlaceOrder.type],
JsonSerializer[Basket]
)
}
示例4: OrderApplication
//设置package包名称以及导入依赖的类
package demo.impl.order
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import com.softwaremill.macwire.wire
import demo.api.basket.BasketService
import demo.api.order.OrderService
import play.api.libs.ws.ahc.AhcWSComponents
import scala.collection.immutable.Seq
abstract class OrderApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with CassandraPersistenceComponents
with LagomKafkaComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[OrderService].to(wire[OrderServiceImpl])
}
lazy val basketService: BasketService = serviceClient.implement[BasketService]
persistentEntityRegistry.register(wire[Order])
wire[BasketServiceSubscriber]
}
class OrderApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication = {
new OrderApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = OrderSerializerRegistry
}
}
override def load(context: LagomApplicationContext): LagomApplication = {
new OrderApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = OrderSerializerRegistry
}
}
}
object OrderSerializerRegistry extends JsonSerializerRegistry {
import OrderEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = {
Seq(JsonSerializer[OrderInitialized],
JsonSerializer[OrderState],
JsonSerializer[CreateOrder],
JsonSerializer[GetOrder.type],
JsonSerializer[OrderItems])
}
}
示例5: OrderEntityFormats
//设置package包名称以及导入依赖的类
package demo.impl.order
import akka.Done
import com.lightbend.lagom.scaladsl.persistence.PersistentEntity
import com.lightbend.lagom.scaladsl.persistence.PersistentEntity.ReplyType
import com.lightbend.lagom.scaladsl.playjson.JsonSerializer
import play.api.libs.json.{Format, Json}
object OrderEntityFormats {
implicit val orderItemsFormat: Format[OrderItems] = Json.format
implicit val createOrderFormat: Format[CreateOrder] = Json.format
implicit val getOrderFormat = JsonSerializer.emptySingletonFormat(GetOrder)
implicit val orderInitialisedFormat: Format[OrderInitialized] = Json.format
implicit val orderStateFormat: Format[OrderState] = Json.format
}
case class OrderItems (items: Seq[String])
trait OrderCommand
case class CreateOrder(items: Seq[String]) extends OrderCommand with ReplyType[Done]
case object GetOrder extends OrderCommand with ReplyType[OrderItems]
trait OrderEvent
case class OrderInitialized(items: Seq[String]) extends OrderEvent
case class OrderState(items: Seq[String])
object OrderState {
def empty = OrderState(Seq())
}
class Order extends PersistentEntity {
override type Command = OrderCommand
override type Event = OrderEvent
override type State = OrderState
override def initialState = OrderState.empty
override def behavior: Behavior = Actions()
.onCommand[CreateOrder, Done] {
case (CreateOrder(items), ctx, state) => {
ctx.thenPersist(OrderInitialized(items)){
evt => ctx.reply(Done)
}
}
}
.onReadOnlyCommand[GetOrder.type, OrderItems] {
case (GetOrder, ctx, state) => ctx.reply(OrderItems(state.items))
}
.onEvent{
case (OrderInitialized(items), state) => OrderState(items)
}
}
示例6: OrderSpec
//设置package包名称以及导入依赖的类
import akka.Done
import akka.actor.ActorSystem
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.testkit.PersistentEntityTestDriver
import com.typesafe.config.ConfigFactory
import demo.impl.order._
import org.scalactic.TypeCheckedTripleEquals
import org.scalatest.{BeforeAndAfterAll, Matchers, WordSpecLike}
import scala.concurrent.duration._
import scala.concurrent.Await
class OrderSpec extends WordSpecLike with Matchers with BeforeAndAfterAll with TypeCheckedTripleEquals {
val system = ActorSystem("PostSpec", JsonSerializerRegistry.actorSystemSetupFor(OrderSerializerRegistry))
override protected def afterAll() {
Await.ready(system.terminate(), 20.seconds)
}
"Order" must {
"be created" in {
val driver = new PersistentEntityTestDriver(system, new Order, "order1")
val items = IndexedSeq("Apple", "Banana")
val outcome = driver.run(CreateOrder(items))
outcome.issues should ===(List())
outcome.state should ===(OrderState(items))
outcome.events should ===(List(OrderInitialized(items)))
outcome.replies should ===(List(Done))
val getOutcome = driver.run(GetOrder)
getOutcome.issues should ===(List())
getOutcome.state should ===(OrderState(items))
getOutcome.replies should ===(List(OrderItems(items)))
}
}
}
示例7: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import com.softwaremill.macwire._
import demo.api.basket.{Basket, BasketService}
import play.api.libs.ws.ahc.AhcWSComponents
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
persistentEntityRegistry.register(wire[BasketEntity])
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
import BasketEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = Seq (
JsonSerializer[AddItem],
JsonSerializer[GetBasket.type],
JsonSerializer[GetTotal.type],
JsonSerializer[ClearAll.type],
JsonSerializer[BasketCleared.type],
JsonSerializer[ItemAdded],
JsonSerializer[BasketEntityState],
JsonSerializer[Basket],
JsonSerializer[OrderPlaced],
JsonSerializer[PlaceOrder.type],
JsonSerializer[Basket]
)
}
示例8: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import demo.api.basket.{Basket, BasketService, Item}
import play.api.libs.ws.ahc.AhcWSComponents
import com.softwaremill.macwire._
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
persistentEntityRegistry.register(wire[BasketEntity])
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
import BasketEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = Seq (
JsonSerializer[AddItem],
JsonSerializer[GetBasket.type],
JsonSerializer[GetTotal.type],
JsonSerializer[ItemAdded],
JsonSerializer[BasketEntityState],
JsonSerializer[Basket]
)
}
示例9: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import demo.api.basket.{BasketService, Item}
import play.api.libs.ws.ahc.AhcWSComponents
import com.softwaremill.macwire._
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
override def serializers: Seq[JsonSerializer[_]] = Seq (
)
}
示例10: BasketEntityFormats
//设置package包名称以及导入依赖的类
package demo.impl.basket
import akka.{Done, NotUsed}
import com.lightbend.lagom.scaladsl.persistence.PersistentEntity.ReplyType
import com.lightbend.lagom.scaladsl.persistence.{AggregateEvent, AggregateEventTag, PersistentEntity}
import com.lightbend.lagom.scaladsl.playjson.JsonSerializer
import demo.api.basket.{Basket, Item}
import play.api.libs.json.{Format, Json}
object BasketEntityFormats {
implicit val addItemFormat: Format[AddItem] = Json.format
implicit val getBasketFormat: Format[GetBasket.type] = JsonSerializer.emptySingletonFormat(GetBasket)
implicit val itemAddedFormat: Format[ItemAdded] = Json.format
implicit val basketEntityStateFormat: Format[BasketEntityState] = Json.format
}
trait BasketEntityCommand
case class AddItem(item: Item) extends BasketEntityCommand with ReplyType[Done]
case object GetBasket extends BasketEntityCommand with ReplyType[Basket]
case class BasketEntityState(currentBasket: Basket)
object BasketEntityState{
val initial = BasketEntityState(Basket(Seq(), 0))
}
sealed trait BasketEntityEvent extends AggregateEvent[BasketEntityEvent] {
override def aggregateTag = BasketEntityEvent.Tag
}
object BasketEntityEvent {
val Tag = AggregateEventTag.sharded[BasketEntityEvent](4)
}
case class ItemAdded(item: Item) extends BasketEntityEvent
final class BasketEntity extends PersistentEntity {
override type Command = BasketEntityCommand
override type Event = BasketEntityEvent
override type State = BasketEntityState
override def initialState = BasketEntityState.initial
override def behavior: Behavior = {
Actions()
.onCommand[AddItem, Done] {
case (AddItem(item), ctx, state) =>
ctx.thenPersist(ItemAdded(item))(_ => ctx.reply(Done))
}
.onReadOnlyCommand[GetBasket.type, Basket] {
case (GetBasket, ctx, state) => ctx.reply(state.currentBasket)
}
.onEvent {
case (ItemAdded(item), state) => {
val newItems = state.currentBasket.items :+ item
state.copy(Basket(newItems, newItems.map(_.price).sum))
}
}
}
}
示例11: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import demo.api.basket.{Basket, BasketService, Item}
import play.api.libs.ws.ahc.AhcWSComponents
import com.softwaremill.macwire._
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
persistentEntityRegistry.register(wire[BasketEntity])
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
import BasketEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = Seq (
JsonSerializer[AddItem],
JsonSerializer[GetBasket.type],
JsonSerializer[ItemAdded],
JsonSerializer[BasketEntityState],
JsonSerializer[Basket]
)
}
示例12: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import demo.api.basket.{BasketService}
import play.api.libs.ws.ahc.AhcWSComponents
import com.softwaremill.macwire._
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
???
//bindService[BasketService].to(wire[BasketServiceImpl])
}
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
override def serializers: Seq[JsonSerializer[_]] = Seq (
)
}
示例13: BasketApplication
//设置package包名称以及导入依赖的类
package demo.impl.basket
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.broker.kafka.LagomKafkaComponents
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import com.softwaremill.macwire._
import demo.api.basket.{Basket, BasketService}
import play.api.libs.ws.ahc.AhcWSComponents
import scala.collection.immutable.Seq
abstract class BasketApplication(ctx: LagomApplicationContext) extends LagomApplication(ctx)
with AhcWSComponents
with LagomKafkaComponents
with CassandraPersistenceComponents {
override def lagomServer: LagomServer = LagomServer.forServices {
bindService[BasketService].to(wire[BasketServiceImpl])
}
persistentEntityRegistry.register(wire[BasketEntity])
}
class BasketApplicationLoader extends LagomApplicationLoader {
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new BasketApplication(context) with LagomDevModeComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
override def load(context: LagomApplicationContext): LagomApplication = new BasketApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
override def jsonSerializerRegistry: JsonSerializerRegistry = BasketSerializerRegistry
}
}
object BasketSerializerRegistry extends JsonSerializerRegistry {
import BasketEntityFormats._
override def serializers: Seq[JsonSerializer[_]] = Seq (
JsonSerializer[AddItem],
JsonSerializer[GetBasket.type],
JsonSerializer[GetTotal.type],
JsonSerializer[ClearAll.type],
JsonSerializer[BasketCleared.type],
JsonSerializer[ItemAdded],
JsonSerializer[BasketEntityState],
JsonSerializer[Basket]
)
}
示例14: MappingLoader
//设置package包名称以及导入依赖的类
package com.ss.mapping.impl
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.api.{Descriptor, ServiceLocator}
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.lightbend.lagom.scaladsl.server._
import com.softwaremill.macwire._
import com.ss.mapping.api.MappingService
import org.slf4j.LoggerFactory
import play.api.libs.ws.ahc.AhcWSComponents
import scala.collection.immutable.Seq
class MappingLoader extends LagomApplicationLoader {
val logger = LoggerFactory.getLogger(getClass)
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new MappingApplication(context) with LagomDevModeComponents
override def load(context: LagomApplicationContext): LagomApplication =
new MappingApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
}
override def describeServices: Seq[Descriptor] = Seq(
readDescriptor[MappingService]
)
}
abstract class MappingApplication(context: LagomApplicationContext)
extends LagomApplication(context)
with CassandraPersistenceComponents
with AhcWSComponents {
override def jsonSerializerRegistry: JsonSerializerRegistry = {
MappingSerializerRegistry
}
override def lagomServer: LagomServer = {
LagomServer.forServices(
bindService[MappingService].to(wire[MappingServiceImpl])
)
}
readSide.register(wire[NodeReadEventsProcessor])
}
object MappingSerializerRegistry extends JsonSerializerRegistry {
override def serializers: Seq[JsonSerializer[_]] = Seq(
JsonSerializer[RegisterMapping],
JsonSerializer[MappingRegistered],
JsonSerializer[LoadMapping.type],
JsonSerializer[UnregisterMapping.type],
JsonSerializer[MappingUnregistered.type]
)
}
示例15: UserApplication
//设置package包名称以及导入依赖的类
package com.grossbit.user.impl
import com.lightbend.lagom.scaladsl.api.ServiceLocator
import com.lightbend.lagom.scaladsl.api.ServiceLocator.NoServiceLocator
import com.lightbend.lagom.scaladsl.persistence.cassandra.CassandraPersistenceComponents
import com.lightbend.lagom.scaladsl.server._
import com.lightbend.lagom.scaladsl.devmode.LagomDevModeComponents
import play.api.libs.ws.ahc.AhcWSComponents
import com.grossbit.user.api.{ResponseDone, User, UserService}
import com.grossbit.user.impl.UserEntity
import com.grossbit.user.impl.persistance.Command.{CreateUser, UpdateUser}
import com.grossbit.user.impl.persistance.state.UserState
import com.lightbend.lagom.scaladsl.playjson
import com.lightbend.lagom.scaladsl.playjson.{JsonSerializer, JsonSerializerRegistry}
import com.softwaremill.macwire._
import scala.collection.immutable.Seq
abstract class UserApplication(context: LagomApplicationContext)
extends LagomApplication(context)
with CassandraPersistenceComponents
with AhcWSComponents {
// Bind the service that this server provides
override lazy val lagomServer = serverFor[UserService](wire[UserServiceImpl])
// Register the JSON serializer registry
override lazy val jsonSerializerRegistry = UserSerializerRegistry
// Register the User persistent entity
persistentEntityRegistry.register(wire[UserEntity])
}
class UserLoader extends LagomApplicationLoader {
override def load(context: LagomApplicationContext): LagomApplication =
new UserApplication(context) {
override def serviceLocator: ServiceLocator = NoServiceLocator
}
override def loadDevMode(context: LagomApplicationContext): LagomApplication =
new UserApplication(context) with LagomDevModeComponents
override def describeServices = List(
readDescriptor[UserService]
)
}
object UserSerializerRegistry extends JsonSerializerRegistry {
override def serializers: Seq[JsonSerializer[_]] = Seq(
JsonSerializer[UserState],
JsonSerializer[User],
JsonSerializer[CreateUser],
JsonSerializer[UpdateUser],
JsonSerializer[List[User]],
JsonSerializer[ResponseDone]
)
}