package jetbrains.buildServer.clouds.vmware.connector; import java.net.URL; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import jetbrains.buildServer.clouds.server.CloudInstancesProvider; import jetbrains.buildServer.serverSide.crypt.EncryptUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * Created by sergeypak on 26/10/2016. */ public class VmwareApiConnectorsPool { private static final ConcurrentMap<String, VMWareApiConnector> myConnectors = new ConcurrentHashMap<>(); public static VMWareApiConnector getOrCreateConnector(@NotNull final URL instanceURL, @NotNull final String username, @NotNull final String password, @Nullable final String serverUUID, @Nullable final String profileId, @Nullable final CloudInstancesProvider instancesProvider){ final String key = VMWareApiConnectorImpl.getKey(instanceURL, username, password); return myConnectors.computeIfAbsent(key, k->new VMWareApiConnectorImpl(instanceURL, username, password, serverUUID, profileId, instancesProvider)); } }