anchor.diff:  link:javadoc/winter/io.jentz.winter/-graph-registry/index.html[GraphRegistry API docs].
   
   == Android
  +
  +=== Winter Android Module
  +
  +The `winter-android` module comes with two extendable base Adapters for the xref:injection[Injection]
  +system and a DependencyGraphContextWrapper to attach a different graph to an Android Context.
  +
  +The
  +link:javadoc/winter-android/io.jentz.winter.android/-simple-android-injection-adapter/index.html[SimpleAndroidInjectionAdapter]
  +manages an application dependency graph and an activity child graph.
  +
  +The
  +link:javadoc/winter-android/io.jentz.winter.android/-android-presentation-scope-adapter/index.html[AndroidPresentationScopeAdapter]
  +manages an application dependency graph, a presentation child graph that outlives configuration
  +changes and an activity child graph.
  +
  +The
  +link:javadoc/winter-android/io.jentz.winter.android/-dependency-graph-context-wrapper/index.html[DependencyGraphContextWrapper]
  +can be used to attache a different graph to an Android Context than the one that is attached to the
  +wrapped Context.
  +
  +For example:
  +[source,kotlin]
  +----
  +Injection.getGraph(myActivity) // => activityGraph
  +val viewGraph = activityGraph.openChildGraph("view")
  +val viewContext = DependencyGraphContextWrapper(myActivity, viewGraph)
  +val newView = LayoutInflater.from(viewContext).inflate(R.layout.view_list, containerView, false)
  +Injection.getGraph(newView) // => viewGraph
  +Injection.getGraph(newView.context) // => viewGraph
  +----
  +
  +=== AndroidX Lifecycle Support
  +
  +The `winter-androidx-lifecycle` module adds extensions to `Graph` and to `LifecycleOwner` to
  +register a `LifecycleObserver` on a `LifecycleOwner` which automatically disposes the graph when
  +the `LifecycleOwner` gets destroyed (or stopped).
  +
  +For example:
  +[source,kotlin]
  +----
  +class MyActivity : AppCompatActivity(), WinterAware {
  +
  +  private val injector = Injector()
  +  // ... do something with injector ...
  +
  +  override fun onCreate(savedInstanceState: Bundle?) {
  +    createGraphAndInject(injector) // this class is WinterAware so we get this extension method
  +    autoDisposeGraph() // no need to override onDestroy() to call Injection.disposeGraph(this)
  +    super.onCreate(savedInstanceState)
  +  }
  +
  +}
  +
  +// Or if you work with graphs directly
  +
  +class MyClass : ALifecycleOwner() {
  +
  +  fun someMethod() {
  +    val graph = myClassComponent.init()
  +    graph.autoDispose(this)
  +  }
  +
  +}
  +
  +----
  +
  +For more details see
  +link:javadoc/winter-androidx-lifecycle/io.jentz.winter.androidx.lifecycle/index.html[API docs].
  +
  +== RxJava2 Support
  +
  +The `winter-rxjava2` modules contains a Winter Plugin that automatically disposes all singletons
  +in a graph which implement `Disposable`.
  +
  +To activate the plugin call `Winter.installDisposablePlugin()` before you instantiate any graph.
  +
  +For more details see link:avadoc/winter-rxjava2/index.html[API docs].
   
   == JUnit Test
   
  
positive.code: For more details see the API documentation of
  link:javadoc/winter/io.jentz.winter.aware/-winter-aware/index.html[WinterAware].
  
  == WinterTree & GraphRegistry
  
  A Graph can have multiple child-graphs and may have a parent graph which makes it a tree of graphs
  (directed acyclic graph).
  
negative.code: See the link:javadoc/winter/io.jentz.winter/-graph/index.html[Graph API docs] for further details.
  
  [#generics]
  === Generics
  
  By default all generics you pass to one of the scope methods or retrieval methods fall victim to
  type erasure which means for example `List<Pump>` becomes just `List`.
  