RoleAppMain

izumi.distage.roles.RoleAppMain
See theRoleAppMain companion object
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

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
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Type members

Classlikes

open class PlanCheck[Cfg <: Any](cfg: Cfg)(implicit planCheck: PlanCheckMaterializer[RoleAppMain, Cfg]) extends Main[RoleAppMain, Cfg]

Shortcut for izumi.distage.framework.PlanCheck.Main

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

same as

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

Attributes

Graph
Supertypes
class Main[RoleAppMain, Cfg]
class Object
trait Matchable
class Any

Inherited types

final override type AppEffectType[A] = F[A]

Attributes

Inherited from:
RoleCheckableApp

Value members

Concrete methods

def main(args: Array[String]): Unit
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!

Attributes

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])]
final override def roleAppBootModule: Module

Attributes

Definition Classes
def roleAppBootModule(argv: ArgV): Module
def roleAppBootModule(argv: ArgV, additionalRoles: RequiredRoles): Module

Attributes

See also:

Inherited methods

override def preparePlanCheckInput(selectedRoles: RoleSelection, chosenConfigFile: Option[String]): PlanCheckInput[F]

Attributes

Definition Classes
Inherited from:
RoleCheckableApp

Implicits

Implicits

implicit val artifact: IzArtifactMaterializer
implicit val defaultModule: DefaultModule[F]
implicit override val tagK: Tag[F]