diff --git a/akka-javasdk-maven/akka-javasdk-parent/pom.xml b/akka-javasdk-maven/akka-javasdk-parent/pom.xml index 950e52cfc..b84569b32 100644 --- a/akka-javasdk-maven/akka-javasdk-parent/pom.xml +++ b/akka-javasdk-maven/akka-javasdk-parent/pom.xml @@ -38,7 +38,7 @@ 21 - 1.3.0-940b627 + 1.3.0-2ecdbe3 UTF-8 false diff --git a/akka-javasdk/src/main/scala/akka/javasdk/impl/workflow/WorkflowImpl.scala b/akka-javasdk/src/main/scala/akka/javasdk/impl/workflow/WorkflowImpl.scala index a246e1729..f3d30c00f 100644 --- a/akka-javasdk/src/main/scala/akka/javasdk/impl/workflow/WorkflowImpl.scala +++ b/akka-javasdk/src/main/scala/akka/javasdk/impl/workflow/WorkflowImpl.scala @@ -89,12 +89,6 @@ class WorkflowImpl[S, W <: Workflow[S]]( new SpiWorkflow.RecoverStrategy(sdkRecoverStrategy.maxRetries, failoverTo = stepTransition) } - val failoverTo = { - definition.getFailoverStepName.toScala.map { stepName => - new SpiWorkflow.StepTransition(stepName, definition.getFailoverStepInput.toScala.map(serializer.toBytes)) - } - } - val stepConfigs = definition.getStepConfigs.asScala.map { config => val stepTimeout = config.timeout.toScala.map(_.toScala) @@ -102,15 +96,21 @@ class WorkflowImpl[S, W <: Workflow[S]]( (config.stepName, new SpiWorkflow.StepConfig(config.stepName, stepTimeout, failoverRecoverStrategy)) }.toMap - val failoverRecoverStrategy = definition.getStepRecoverStrategy.toScala.map(toRecovery) + val defaultStepRecoverStrategy = definition.getStepRecoverStrategy.toScala.map(toRecovery) + + val failoverRecoverStrategy = definition.getFailoverStepName.toScala.map(stepName => + //when failoverStepName exists, maxRetries must exist + new SpiWorkflow.RecoverStrategy( + definition.getFailoverMaxRetries.toScala.get.maxRetries, + new SpiWorkflow.StepTransition(stepName, definition.getFailoverStepInput.toScala.map(serializer.toBytes)))) + val stepTimeout = definition.getStepTimeout.toScala.map(_.toScala) new SpiWorkflow.WorkflowConfig( workflowTimeout = definition.getWorkflowTimeout.toScala.map(_.toScala), - failoverTo = failoverTo, failoverRecoverStrategy = failoverRecoverStrategy, defaultStepTimeout = stepTimeout, - defaultStepRecoverStrategy = failoverRecoverStrategy, + defaultStepRecoverStrategy = defaultStepRecoverStrategy, stepConfigs = stepConfigs) } diff --git a/akka-javasdk/src/test/scala/akka/javasdk/impl/AnySupportSpec.scala b/akka-javasdk/src/test/scala/akka/javasdk/impl/AnySupportSpec.scala index c5927420a..e11b8d76a 100644 --- a/akka-javasdk/src/test/scala/akka/javasdk/impl/AnySupportSpec.scala +++ b/akka-javasdk/src/test/scala/akka/javasdk/impl/AnySupportSpec.scala @@ -4,8 +4,6 @@ package akka.javasdk.impl -import kalix.protocol.discovery.{ DiscoveryProto, UserFunctionError } -import kalix.protocol.event_sourced_entity.EventSourcedEntityProto import com.google.protobuf.any.{ Any => ScalaPbAny } import com.google.protobuf.{ Any => JavaPbAny } import com.google.protobuf.ByteString @@ -15,29 +13,13 @@ import org.scalatest.wordspec.AnyWordSpec class AnySupportSpec extends AnyWordSpec with Matchers with OptionValues { - private val anySupport = new AnySupport( - Array(EventSourcedEntityProto.javaDescriptor, DiscoveryProto.javaDescriptor), - getClass.getClassLoader, - "com.example") + private val anySupport = new AnySupport(Array.empty, getClass.getClassLoader, "com.example") - private val anySupportScala = new AnySupport( - Array(EventSourcedEntityProto.javaDescriptor, DiscoveryProto.javaDescriptor), - getClass.getClassLoader, - "com.example", - AnySupport.PREFER_SCALA) + private val anySupportScala = + new AnySupport(Array.empty, getClass.getClassLoader, "com.example", AnySupport.PREFER_SCALA) "Any support for Java" should { - "support se/deserializing scala protobufs" in { - val error = UserFunctionError("error") - val any = anySupport.encodeScala(UserFunctionError("error")) - any.typeUrl should ===("com.example/kalix.protocol.UserFunctionError") - - val decoded = anySupport.decodePossiblyPrimitive(any) - decoded.getClass should ===(error.getClass) - decoded should ===(error) - } - def testPrimitive[T](name: String, value: T, defaultValue: T) = { val any = anySupport.encodeScala(value) any.typeUrl should ===(AnySupport.KalixPrimitive + name) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 115dc0012..b2429d06c 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -8,7 +8,7 @@ object Dependencies { val ProtocolVersionMinor = 1 val RuntimeImage = "gcr.io/kalix-public/kalix-runtime" // Remember to bump kalix-runtime.version in akka-javasdk-maven/akka-javasdk-parent if bumping this - val RuntimeVersion = sys.props.getOrElse("kalix-runtime.version", "1.3.0-940b627") + val RuntimeVersion = sys.props.getOrElse("kalix-runtime.version", "1.3.0-2ecdbe3") } // NOTE: embedded SDK should have the AkkaVersion aligned, when updating RuntimeVersion, make sure to check // if AkkaVersion and AkkaHttpVersion are aligned