izumi.distage.roles

Members list

Type members

Classlikes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class RoleAppBootLoggerModule(crashLogRouterRef: Option[CrashLogRouterRef]) extends ModuleDef

Attributes

Supertypes
class RoleAppBootModule[F[_]](shutdownStrategy: AppShutdownStrategy[F], pluginConfig: PluginConfig, bootstrapPluginConfig: PluginConfig, appArtifact: IzArtifact, unusedValidAxisChoices: Set[AxisChoice], crashLogRouterRef: Option[CrashLogRouterRef])(using evidence$1: Tag[F], evidence$2: DefaultModule[F]) extends ModuleDef

This module is only used by the application launcher, but NOT by distage-testkit

This module is only used by the application launcher, but NOT by distage-testkit

Application flow:

  1. Parse commandline parameters
  2. Create "early logger" (console sink & configurable log level)
  3. Show startup banner
  4. Load raw config
  5. Create "late logger" using config
  6. Enumerate app plugins and bootstrap plugins
  7. Enumerate available roles, show role info and apply merge strategy/conflict resolution
  8. Validate loaded roles (for non-emptyness and conflicts between bootstrap and app plugins)
  9. Build plan for izumi.functional.quasi.QuasiIORunner
  10. Build plan for integration checks
  11. Build plan for application
  12. Run role tasks
  13. Run role services
  14. Await application termination
  15. Run finalizers
  16. Shutdown executors

Attributes

Supertypes
class RoleAppBootPlatformModule(crashLogRouterRef: Option[CrashLogRouterRef]) extends ModuleDef

Attributes

Supertypes
abstract class RoleAppMain[F[_]](implicit val tagK: Tag[F], val defaultModule: DefaultModule[F], val artifact: IzArtifactMaterializer) extends RoleCheckableApp[F]

Create a launcher for role-based applications by extending this in a top-level object

Create a launcher for role-based applications by extending this in a top-level object

Attributes

See also
Example
import izumi.distage.framework.RoleAppMain
import izumi.distage.plugins.PluginConfig
object RoleLauncher extends RoleAppMain.LauncherBIO[zio.IO] {
 override def pluginConfig: PluginConfig = {
   PluginConfig.cached(pluginsPackage = "my.example.app.plugins")
 }
}
Companion
object
Supertypes
class RoleCheckableApp[F]
trait CheckableApp
class Object
trait Matchable
class Any
Known subtypes
class LauncherBIO[F]
object RoleAppMain

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type