/** * Method to send a message to a RabbitMQ Exchange after the Distribution * set has been assign to a Target. * * @param assignedEvent * the object to be send. */ @EventListener(classes = TargetAssignDistributionSetEvent.class) protected void targetAssignDistributionSet(final TargetAssignDistributionSetEvent assignedEvent) { if (isNotFromSelf(assignedEvent)) { return; } LOG.debug("targetAssignDistributionSet retrieved. I will forward it to DMF broker."); distributionSetManagement.get(assignedEvent.getDistributionSetId()).ifPresent(set -> { final Map<SoftwareModule, List<SoftwareModuleMetadata>> modules = Maps .newHashMapWithExpectedSize(set.getModules().size()); set.getModules() .forEach( module -> modules.put(module, softwareModuleManagement.findMetaDataBySoftwareModuleIdAndTargetVisible( PageRequest.of(0, RepositoryConstants.MAX_META_DATA_COUNT), module.getId()) .getContent())); targetManagement.getByControllerID(assignedEvent.getActions().keySet()) .forEach(target -> sendUpdateMessageToTarget(assignedEvent.getTenant(), target, assignedEvent.getActions().get(target.getControllerId()), modules, assignedEvent.isMaintenanceWindowAvailable())); }); }