package org.hudson.serena; import org.hudson.serena.model.Dimension10Installation; import com.serena.dmclient.api.DimensionsConnection; import com.serena.dmclient.api.DimensionsConnectionDetails; import com.serena.dmclient.api.DimensionsConnectionManager; import java.util.logging.Logger; /** * Manages Dimensions connection API. * * @author Jose Noheda [jose.noheda@gmail.com] */ public final class ConnectionManager { private static final Logger LOGGER = Logger.getLogger(ConnectionManager.class.getName()); private ConnectionManager() { throw new AssertionError("Do not try to instantiate this class"); } public static DimensionsConnection getConnection(Dimension10Installation dim10) { return ConnectionManager.getConnection(dim10.getServer(), dim10.getDbName(), dim10.getDbConnection(), dim10.getUser(), dim10.getPassword()); } public static DimensionsConnection getConnection(final String server, final String dbName, final String dbConnection, final String user, final String password) { try { DimensionsConnectionDetails connectionDetails = new DimensionsConnectionDetails(); connectionDetails.setServer(server); connectionDetails.setDbName(dbName); connectionDetails.setDbConn(dbConnection); connectionDetails.setUsername(user); connectionDetails.setPassword(password); return DimensionsConnectionManager.getConnection(connectionDetails); } catch (Exception e) { LOGGER.warning("Could not obtain a connection to dimensions [" + server + "]: " + e.getMessage()); } return null; } public static void close(DimensionsConnection connection) { connection.close(); } }