Currently, WildFly creates services for the following objects for every JGroups channel:
... and creates services the following objects for every Infinispan cache:
Only some of these services are ever started. If we instead created a separate subsystem that configures these objects, we could significantly reduce the number of services created (but never started) by the jgroups and infinispan subsystems.
This has a number of benefits for users as well:
- Increases overall visibility of the public clustering API
- Simplifies the current mysterious state of service wiring by establishing explicit capability requirements where necessary
- Simplifies inter-component capability requirements (e.g. SingletonServiceConfiguratorFactory depends on ServiceProviderRegistry and CommandDispatcherFactory).