Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,4 @@ jobs:
java-version: 21
cache: maven
- name: Submit dependency graph
uses: advanced-security/maven-dependency-submission-action@v4
uses: advanced-security/maven-dependency-submission-action@v5
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.ing.bakery.components
import akka.actor.ActorSystem
import cats.effect.{IO, Resource}
import com.ing.baker.runtime.akka.AkkaBakerConfig
import com.ing.baker.runtime.akka.actor.BakerActorProvider
import com.ing.baker.runtime.akka.actor.{BakerActorProvider, Timeouts}
import com.ing.baker.runtime.model.InteractionManager
import com.ing.baker.runtime.recipe_manager.{ActorBasedRecipeManager, RecipeManager}
import com.ing.bakery.metrics.MetricService
Expand Down Expand Up @@ -54,8 +54,8 @@ class AkkaBakeryComponents(optionalConfig: Option[Config] = None,

def ec(actorSystem: ActorSystem): Resource[IO, ExecutionContext] = Resource.pure[IO, ExecutionContext](actorSystem.dispatcher)

def akkaBakerTimeoutsResource(config: Config): Resource[IO, AkkaBakerConfig.Timeouts] =
Resource.pure[IO, AkkaBakerConfig.Timeouts](AkkaBakerConfig.Timeouts(config)).logResourceLifecycle("Timeouts")
def akkaBakerTimeoutsResource(config: Config): Resource[IO, Timeouts] =
Resource.pure[IO, Timeouts](Timeouts(config)).logResourceLifecycle("Timeouts")

def akkaBakerConfigValidationSettingsResource(config: Config): Resource[IO, AkkaBakerConfig.BakerValidationSettings] =
Resource.pure[IO, AkkaBakerConfig.BakerValidationSettings](AkkaBakerConfig.BakerValidationSettings.from(config)).logResourceLifecycle("BakerValidationSettings")
Expand Down
239 changes: 239 additions & 0 deletions core/baker-akka-actors/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.ing.baker</groupId>
<artifactId>baker</artifactId>
<version>5.1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>

<artifactId>baker-akka-actors</artifactId>
<name>Baker Akka Actor System</name>
<description>Akka-based Actor System for Baker</description>

<dependencies>
<dependency>
<groupId>com.ing.baker</groupId>
<artifactId>baker-recipe-manager</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.ing.baker</groupId>
<artifactId>baker-recipe-dsl</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</dependency>

<!-- Akka dependencies -->
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-stream_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-protobuf-v3_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-persistence_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-persistence-query_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster-tools_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster-sharding_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.lightbend.akka.management</groupId>
<artifactId>akka-management-cluster-bootstrap_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-discovery_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.github.dnvriend</groupId>
<artifactId>akka-persistence-inmemory_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor-typed_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-cluster-typed_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-persistence-typed_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-stream-typed_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-slf4j_${scala.compat.version}</artifactId>
</dependency>

<!-- Other dependencies -->
<dependency>
<groupId>com.iheart</groupId>
<artifactId>ficus_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>org.typelevel</groupId>
<artifactId>cats-core_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>org.typelevel</groupId>
<artifactId>cats-effect_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.thesamet.scalapb</groupId>
<artifactId>scalapb-runtime_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.scala-logging</groupId>
<artifactId>scala-logging_${scala.compat.version}</artifactId>
</dependency>
<dependency>
<groupId>nl.pragmasoft.sensors</groupId>
<artifactId>sensors-core_${scala.compat.version}</artifactId>
</dependency>

<!-- Test dependencies -->
<!-- <dependency>-->
<!-- <groupId>com.ing.baker</groupId>-->
<!-- <artifactId>baker-types</artifactId>-->
<!-- <version>${project.version}</version>-->
<!-- <type>test-jar</type>-->
<!-- <scope>test</scope>-->
<!-- </dependency>-->
<dependency>
<groupId>com.ing.baker</groupId>
<artifactId>baker-compiler</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-stream-testkit_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalacheck</groupId>
<artifactId>scalacheck_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatestplus</groupId>
<artifactId>scalacheck-1-17_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scalatestplus</groupId>
<artifactId>mockito-3-12_${scala.compat.version}</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
</plugin>

<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<configuration>
<protoSourceRoot>${basedir}/src/main/protobuf</protoSourceRoot>
<outputDirectory>${basedir}/target/generated-sources/protobuf/scala</outputDirectory>
<clearOutputDirectory>false</clearOutputDirectory>
<protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
<protocPlugins>
<protocPlugin>
<id>scalapb</id>
<groupId>com.thesamet.scalapb</groupId>
<artifactId>compilerplugin_${scala.compat.version}</artifactId>
<version>${scalapb.version}</version>
<mainClass>scalapb.ScalaPbCodeGenerator</mainClass>
</protocPlugin>
</protocPlugins>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
</plugin>

<!-- Create test-jar for use by other modules -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.plugin.version}</version>
<executions>
<execution>
<id>create-test-jar</id>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import akka.util.Timeout
import cats.data.NonEmptyList
import cats.effect.IO
import com.ing.baker.il.sha256HashCode
import com.ing.baker.runtime.akka.AkkaBakerConfig
import com.ing.baker.runtime.akka.actor.ClusterBakerActorProvider._
import com.ing.baker.runtime.akka.actor.process_index.ProcessIndex.{ActorMetadata, StopProcessIndexShard}
import com.ing.baker.runtime.akka.actor.process_index.ProcessIndexProtocol._
Expand Down Expand Up @@ -72,7 +71,6 @@ class ClusterBakerActorProvider(
getIngredientsFilter: List[String],
providedIngredientFilter: List[String],
configuredEncryption: Encryption,
timeouts: AkkaBakerConfig.Timeouts,
blacklistedProcesses: List[String],
rememberProcessDuration: Option[Duration]) extends BakerActorProvider with LazyLogging {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.ing.baker.runtime.akka.actor
import akka.actor.{ActorRef, ActorSystem}
import akka.pattern.{BackoffOpts, BackoffSupervisor}
import cats.effect.IO
import com.ing.baker.runtime.akka.{AkkaBakerConfig, _}
import com.ing.baker.runtime.akka._
import com.ing.baker.runtime.akka.actor.process_index.ProcessIndex
import com.ing.baker.runtime.akka.actor.process_index.ProcessIndex.ActorMetadata
import com.ing.baker.runtime.akka.actor.process_index.ProcessIndexProtocol.{GetIndex, Index}
Expand All @@ -21,7 +21,6 @@ class LocalBakerActorProvider(
providedIngredientFilter: List[String],
actorIdleTimeout: Option[FiniteDuration],
configuredEncryption: Encryption,
timeouts: AkkaBakerConfig.Timeouts,
blacklistedProcesses: List[String],
rememberProcessDuration: Option[Duration]
) extends BakerActorProvider {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.ing.baker.runtime.akka.actor

import com.typesafe.config.Config

import scala.concurrent.duration.FiniteDuration
import net.ceedubs.ficus.Ficus._

import scala.concurrent.duration._

case class Timeouts(defaultBakeTimeout: FiniteDuration,
defaultProcessEventTimeout: FiniteDuration,
defaultInquireTimeout: FiniteDuration,
defaultShutdownTimeout: FiniteDuration,
defaultAddRecipeTimeout: FiniteDuration,
defaultExecuteSingleInteractionTimeout: FiniteDuration)

object Timeouts {

def default: Timeouts =
Timeouts(
defaultBakeTimeout = 10.seconds,
defaultProcessEventTimeout = 10.seconds,
defaultInquireTimeout = 10.seconds,
defaultShutdownTimeout = 30.seconds,
defaultAddRecipeTimeout = 10.seconds,
defaultExecuteSingleInteractionTimeout = 60.seconds,
)

def apply(config: Config): Timeouts =
Timeouts(
defaultBakeTimeout = config.as[FiniteDuration]("baker.bake-timeout"),
defaultProcessEventTimeout = config.as[FiniteDuration]("baker.process-event-timeout"),
defaultInquireTimeout = config.as[FiniteDuration]("baker.process-inquire-timeout"),
defaultShutdownTimeout = config.as[FiniteDuration]("baker.shutdown-timeout"),
defaultAddRecipeTimeout = config.as[FiniteDuration]("baker.add-recipe-timeout"),
defaultExecuteSingleInteractionTimeout = config.as[FiniteDuration]("baker.execute-single-interaction-timeout"),
)
}

Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import _root_.akka.pattern._
import _root_.akka.util.Timeout
import akka.cluster.Cluster
import akka.cluster.singleton.{ClusterSingletonManager, ClusterSingletonManagerSettings, ClusterSingletonProxy, ClusterSingletonProxySettings}
import com.ing.baker.runtime.akka.AkkaBakerConfig._
import com.ing.baker.runtime.akka.actor.ClusterBakerActorProvider.recipeManagerName
import com.ing.baker.runtime.akka.actor.Timeouts
import com.ing.baker.runtime.akka.actor.recipe_manager.RecipeManagerActor
import com.ing.baker.runtime.akka.actor.recipe_manager.RecipeManagerProtocol._
import com.ing.baker.runtime.common.RecipeRecord
Expand Down
Loading
Loading