ServiceController<?> installGroupCommunicationService(ServiceTarget target, String containerName, ServiceVerificationHandler verificationHandler) {
final InjectedValue<Channel> channel = new InjectedValue<Channel>();
final InjectedValue<ModuleLoader> loader = new InjectedValue<ModuleLoader>();
return target.addService(CoreGroupCommunicationService.getServiceName(containerName), new CoreGroupCommunicationService(GROUP_COMMUNICATION_SERVICE_SCOPE, channel, loader))
// AS7-3906 Ensure that the cache manager's rpc dispatcher starts before GroupCommunicationService's (since channel doesn't start until 1st cache starts)
.addDependency(CacheService.getServiceName(containerName, null))
.addDependency(ChannelService.getServiceName(containerName), Channel.class, channel)
.addDependency(Services.JBOSS_SERVICE_MODULE_LOADER, ModuleLoader.class, loader)
.setInitialMode(ServiceController.Mode.ON_DEMAND)