package org.ourgrid.discoveryservice.communication.sender; import java.io.IOException; import java.util.LinkedHashSet; import java.util.Set; import org.ourgrid.common.internal.SenderIF; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo; import org.ourgrid.discoveryservice.config.PersistNetworkUtil; import org.ourgrid.discoveryservice.response.PersistNetworkResponseTO; import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager; import br.edu.ufcg.lsd.commune.identification.ServiceID; public class PersistNetworkSender implements SenderIF<PersistNetworkResponseTO>{ public void execute(PersistNetworkResponseTO response, ServiceManager manager) { try { PersistNetworkUtil.getInstance().persistNetwork( parseServiceAddressToUserAtServerAddress(response.getDiscoveryServicesAddresses()), manager.getContainerContext()); } catch (IOException e) { manager.getLog().error("Properties file could not be written with new Discovery Services Address", e); } } private Set<String> parseServiceAddressToUserAtServerAddress(Set<DiscoveryServiceInfo> dsServiceAddressList){ Set<String> userAtServerList = new LinkedHashSet<String>(); for (DiscoveryServiceInfo ds : dsServiceAddressList) { String dsServiceAddress = ds.getDsAddress(); userAtServerList.add(ServiceID.parse(dsServiceAddress).getContainerID().getUserAtServer()); } return userAtServerList; } }