abstract class RoleAppMain[F[_]] extends RoleCheckableApp[F]
Create a launcher for role-based applications by extending this in a top-level object
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
 
- Alphabetic
 - By Inheritance
 
- RoleAppMain
 - RoleCheckableApp
 - CheckableApp
 - AnyRef
 - Any
 
- Hide All
 - Show All
 
- Public
 - Protected
 
Instance Constructors
-  new RoleAppMain()(implicit tagK: TagK[F], defaultModule: DefaultModule[F], artifact: IzArtifactMaterializer)
 
Type Members
-   final  type AppEffectType[A] = F[A]
- Definition Classes
 - RoleCheckableApp → CheckableApp
 
 -    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
-   abstract  def pluginConfig: PluginConfig
- Attributes
 - protected
 
 -   abstract  def shutdownStrategy: AppShutdownStrategy[F]
- Attributes
 - protected
 
 
Concrete Value Members
-   final  def !=(arg0: Any): Boolean
- Definition Classes
 - AnyRef → Any
 
 -   final  def ##: Int
- Definition Classes
 - AnyRef → Any
 
 -   final  def ==(arg0: Any): Boolean
- Definition Classes
 - AnyRef → Any
 
 -  implicit val artifact: IzArtifactMaterializer
 -   final  def asInstanceOf[T0]: T0
- Definition Classes
 - Any
 
 -  def assertAppCompileTime[Cfg <: Any](cfg: Cfg = PlanCheckConfig.empty)(implicit planCheck: PlanCheckMaterializer[RoleAppMain.this.type, Cfg]): PlanCheckMaterializer[RoleAppMain.this.type, Cfg]
 -    def bootstrapPluginConfig: PluginConfig
- Attributes
 - protected
 
 -    def clone(): AnyRef
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.CloneNotSupportedException]) @native()
 
 -    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
 ThrowableYou may throw a custom exception if your check error is not describable by izumi.distage.model.planning.PlanIssue
 -  implicit val defaultModule: DefaultModule[F]
 -    def earlyFailureHandler(args: ArgV): AppFailureHandler
- Attributes
 - protected
 
 -   final  def eq(arg0: AnyRef): Boolean
- Definition Classes
 - AnyRef
 
 -    def equals(arg0: AnyRef): Boolean
- Definition Classes
 - AnyRef → Any
 
 -    def finalize(): Unit
- Attributes
 - protected[lang]
 - Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.Throwable])
 
 -   final  def getClass(): Class[_ <: AnyRef]
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 -    def hashCode(): Int
- Definition Classes
 - AnyRef → Any
 - Annotations
 - @native()
 
 -   final  def isInstanceOf[T0]: Boolean
- Definition Classes
 - Any
 
 -  def main(args: Array[String]): Unit
 -   final  def ne(arg0: AnyRef): Boolean
- Definition Classes
 - AnyRef
 
 -   final  def notify(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 -   final  def notifyAll(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @native()
 
 -    def preparePlanCheckInput(selectedRoles: RoleSelection, chosenConfigFile: Option[String]): PlanCheckInput[F]
- Definition Classes
 - RoleCheckableApp → CheckableApp
 
 -    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.
 -  def replLocatorWithClose(args: String*)(implicit F: QuasiIO[F]): F[(Locator, () => F[Unit])]
 -    def requiredRoles(argv: ArgV): Vector[RoleArgs]
Roles always enabled in this RoleAppMain
Roles always enabled in this RoleAppMain
- Attributes
 - protected
 
 -    def roleAppBootModule(argv: ArgV, additionalRoles: RequiredRoles): Module
- See also
 izumi.distage.roles.RoleAppBootModule for initial values
 -  def roleAppBootModule(argv: ArgV): Module
 -   final  def roleAppBootModule: Module
- Definition Classes
 - RoleAppMain → RoleCheckableApp
 
 -   final  def roleAppBootModulePlanCheckOverrides(chosenRoles: RoleSelection, chosenConfigResource: Option[(ClassLoader, String)]): ModuleDef
- Attributes
 - protected
 - Definition Classes
 - RoleCheckableApp
 
 -    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
 -   final  def synchronized[T0](arg0: => T0): T0
- Definition Classes
 - AnyRef
 
 -   implicit  val tagK: TagK[F]
- Definition Classes
 - RoleAppMain → RoleCheckableApp → CheckableApp
 
 -    def toString(): String
- Definition Classes
 - AnyRef → Any
 
 -    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
 
 -   final  def wait(): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException])
 
 -   final  def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException])
 
 -   final  def wait(arg0: Long): Unit
- Definition Classes
 - AnyRef
 - Annotations
 - @throws(classOf[java.lang.InterruptedException]) @native()