Packages

abstract class RoleAppMain[F[_]] extends RoleCheckableApp[F]

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

Example:
  1. 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")
      }
    
    }
See also

Roles

Plugins

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RoleAppMain
  2. RoleCheckableApp
  3. CheckableApp
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new RoleAppMain()(implicit tagK: TagK[F], defaultModule: DefaultModule[F], artifact: IzArtifactMaterializer)

Type Members

  1. final type AppEffectType[A] = F[A]
    Definition Classes
    RoleCheckableAppCheckableApp
  2. class PlanCheck[Cfg <: Any] extends Main[RoleAppMain.this.type, Cfg]

    Shortcut for izumi.distage.framework.PlanCheck.Main

    Shortcut for izumi.distage.framework.PlanCheck.Main

    object WiringTest extends MyApp.PlanCheck(PlanCheckConfig(...))

    same as

    object WiringTest extends PlanCheck.Main(MyApp, PlanCheckConfig(...))

Abstract Value Members

  1. abstract def pluginConfig: PluginConfig
    Attributes
    protected
  2. abstract def shutdownStrategy: AppShutdownStrategy[F]
    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. implicit val artifact: IzArtifactMaterializer
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def assertAppCompileTime[Cfg <: Any](cfg: Cfg = PlanCheckConfig.empty)(implicit planCheck: PlanCheckMaterializer[RoleAppMain.this.type, Cfg]): PlanCheckMaterializer[RoleAppMain.this.type, Cfg]

  7. def bootstrapPluginConfig: PluginConfig
    Attributes
    protected
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. def customCheck(planVerifier: PlanVerifier, excludedActivations: Set[NESet[AxisPoint]], checkConfig: Boolean, planCheckInput: PlanCheckInput[AppEffectType]): PlanVerifierResult

    Override this to execute additional arbitrary user-defined checks at compile-time (or runtime via PlanCheck.runtime)

    Override this to execute additional arbitrary user-defined checks at compile-time (or runtime via PlanCheck.runtime)

    Definition Classes
    CheckableApp
    Exceptions thrown

    Throwable You may throw a custom exception if your check error is not describable by izumi.distage.model.planning.PlanIssue

  10. implicit val defaultModule: DefaultModule[F]
  11. def earlyFailureHandler(args: ArgV): AppFailureHandler
    Attributes
    protected
  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  15. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def main(args: Array[String]): Unit
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. def preparePlanCheckInput(selectedRoles: RoleSelection, chosenConfigFile: Option[String]): PlanCheckInput[F]
    Definition Classes
    RoleCheckableAppCheckableApp
  23. def replLocator(args: String*)(implicit F: QuasiIO[F]): F[Locator]

    Create an object graph for inspection in the REPL:

    Create an object graph for inspection in the REPL:

    scala> val graph = Launcher.replLocator("-u", "mode:test", ":role1")
    val graph: izumi.fundamentals.platform.functional.Identity[izumi.distage.model.Locator] = izumi.distage.LocatorDefaultImpl@6f6a2ac8
    
    scala> val testObj = graph.get[Hello]
    val testObj: example.Hellower = example.Hellower@25109d84
    
    scala> testObj.hello("test")
    Hello test!
    Note

    All resources will be leaked. Use replLocatorWithClose if you need resource cleanup within a REPL session.

  24. def replLocatorWithClose(args: String*)(implicit F: QuasiIO[F]): F[(Locator, () => F[Unit])]
  25. def requiredRoles(argv: ArgV): Vector[RawRoleParams]

    Roles always enabled in this RoleAppMain

    Roles always enabled in this RoleAppMain

    Attributes
    protected
  26. def roleAppBootModule(argv: ArgV, additionalRoles: RequiredRoles): Module

    See also

    izumi.distage.roles.RoleAppBootModule for initial values

  27. def roleAppBootModule(argv: ArgV): Module
  28. final def roleAppBootModule: Module
    Definition Classes
    RoleAppMainRoleCheckableApp
  29. final def roleAppBootModulePlanCheckOverrides(chosenRoles: RoleSelection, chosenConfigResource: Option[(ClassLoader, String)]): ModuleDef
    Attributes
    protected
    Definition Classes
    RoleCheckableApp
  30. def roleAppBootOverrides(argv: ArgV): Module

    Overrides applied to roleAppBootModule

    Overrides applied to roleAppBootModule

    Attributes
    protected
    Note

    Bootstrap Injector will always run under Identity, other effects (cats.effect.IO, zio.IO) are not available at this stage.

    ,

    The components added here are visible during the creation of the app, but *not inside* the app, to override components *inside* the app, use pluginConfig & izumi.distage.plugins.PluginConfig#overriddenBy:

    override def pluginConfig: PluginConfig = {
      super.pluginConfig overriddenBy new PluginDef {
        make[MyComponentX]]
      }
    }
    See also

    izumi.distage.roles.RoleAppBootModule for initial values of roleAppBootModule

  31. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  32. implicit val tagK: TagK[F]
    Definition Classes
    RoleAppMainRoleCheckableAppCheckableApp
  33. def toString(): String
    Definition Classes
    AnyRef → Any
  34. def unusedValidAxisChoices: Set[AxisChoice]

    Allow to set these axis choices in config even if they're not used in the application Normally, an axis choice specified in config, but never used would be deemed an error.

    Allow to set these axis choices in config even if they're not used in the application Normally, an axis choice specified in config, but never used would be deemed an error.

    Attributes
    protected
  35. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  36. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  37. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from RoleCheckableApp[F]

Inherited from CheckableApp

Inherited from AnyRef

Inherited from Any

Ungrouped