Skip to content

Commit 4a4b4f1

Browse files
author
Brendan Doyle
committed
update kryo and use compatibility serializer for future message format changes
1 parent 60ca660 commit 4a4b4f1

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

core/scheduler/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ dependencies {
6969
}
7070
implementation "org.scala-lang:scala-library:${gradle.scala.version}"
7171
implementation project(':common:scala')
72-
implementation "io.altoo:akka-kryo-serialization_${gradle.scala.depVersion}:1.0.0"
72+
implementation "io.altoo:akka-kryo-serialization_${gradle.scala.depVersion}:2.5.0"
7373
implementation "com.lightbend.akka.management:akka-management-cluster-bootstrap_${gradle.scala.depVersion}:${gradle.akka_management.version}"
7474
implementation "com.lightbend.akka.discovery:akka-discovery-kubernetes-api_${gradle.scala.depVersion}:${gradle.akka_management.version}"
7575
}

core/scheduler/src/main/resources/application.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ akka {
5353
}
5454
}
5555

56+
akka-kryo-serialization.kryo-initializer = "org.apache.openwhisk.core.scheduler.CompatibleKryoInitializer"
57+
5658
whisk {
5759
cluster {
5860
use-cluster-bootstrap: false

core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/Scheduler.scala

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818
package org.apache.openwhisk.core.scheduler
1919

2020
import akka.Done
21-
import akka.actor.{ActorRef, ActorRefFactory, ActorSelection, ActorSystem, CoordinatedShutdown, Props}
21+
import akka.actor.{ActorRef, ActorRefFactory, ActorSelection, ActorSystem, CoordinatedShutdown, ExtendedActorSystem, Props}
2222
import akka.http.scaladsl.Http
2323
import akka.http.scaladsl.model.{HttpRequest, HttpResponse}
2424
import akka.management.scaladsl.AkkaManagement
2525
import akka.management.cluster.bootstrap.ClusterBootstrap
2626
import akka.pattern.ask
2727
import akka.util.Timeout
2828
import com.typesafe.config.ConfigValueFactory
29+
import io.altoo.akka.serialization.kryo.DefaultKryoInitializer
30+
import io.altoo.akka.serialization.kryo.serializer.scala.ScalaKryo
2931
import kamon.Kamon
3032
import org.apache.openwhisk.common.Https.HttpsConfig
3133
import org.apache.openwhisk.common._
@@ -425,3 +427,9 @@ case class SchedulingConfig(staleThreshold: FiniteDuration,
425427
dropInterval: FiniteDuration,
426428
allowOverProvisionBeforeThrottle: Boolean,
427429
namespaceOverProvisionBeforeThrottleRatio: Double)
430+
431+
class CompatibleKryoInitializer extends DefaultKryoInitializer {
432+
override def preInit(kryo: ScalaKryo, system: ExtendedActorSystem): Unit = {
433+
kryo.setDefaultSerializer(classOf[com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer[_]])
434+
}
435+
}

0 commit comments

Comments
 (0)