Hi everyone,

   I would like to outline a brief JBoss MSC Plans for Year 2018.

Goals defined below address both:
 * Cloud First Effort
   - Reduce WildFly memory footprint
   - Speed up WildFly boot time
 * Potential Migration to MSC 2

MSC Library Goals:
 * SHORT TERM GOALS (MSC 1.2.x, 1.3.x)
   [1] simplify MSC state machine - deprecate useless MSC internal states
       (e.g. REMOVED, WONT_START, WAITING, REMOVING, STOPPING maybe others)
   [2] deprecate API exposing MSC internals
       (e.g. replace ServiceListener with LifecycleListener)
   [3] deprecate MSC Values, Injections & Injectors and provide alternative API
       (alternative API should have same minimalistic memory requirements like MSC 2)
 * LONG TERM GOALS (MSC 1.4.x)
   [4] remove deprecated APIs and all deprecated stuff

WildFly MSC Integration Goals:
 + SHORT TERM GOALS (WildFly 12)
   * replace ServiceListeners with LifecycleListeners (LifecycleListeners don't expose MSC internals)
   * eliminate MSC optional dependencies from WildFLy Core
   * eliminate MSC Values, Injections & Injectors and migrate to alternative API
   * WildFly Management Layer should not expose MSC APIs as its public API
     (complicates potential migration to MSC2 and breaks encapsulation)
 + LONG TERM GOALS (WildFly versions targeting next major EAP)
   * eliminate MSC optional dependencies from WildFly (probably via Capabilities)
     (MSC Optional Dependencies have been fixed recently but there's still performance issue
     - in worst case scenario if service A has N optional dependencies
     it may happen service A is restarted N times before it is stabilized in UP state)

Feedback and comments more than welcome!

--
Rio