package com.sun.enterprise.admin.mbeanapi.common;
import com.sun.appserv.management.config.*;
import com.sun.appserv.management.j2ee.J2EEServer;
import com.sun.appserv.management.j2ee.J2EECluster;
import com.sun.appserv.management.util.stringifier.SmartStringifier;
import java.io.IOException;
import java.util.Map;
import java.util.Iterator;
/**
* @author <a href=mailto:shreedhar.ganapathy@sun.com>Shreedhar Ganapathy</a>
* Date: Sep 12, 2004
* @version $Revision: 1.2 $
*/
public class ClusterManager {
AMXConnector mAsapiConnector;
ClusterConfig mClusterCfg;
DomainConfig mDomainConfig;
public ClusterManager(
final String host,
final int port,
final String adminUser,
final String adminPassword,
final boolean useTLS )
throws IOException
{
mAsapiConnector = new AMXConnector(host, port, adminUser, adminPassword, useTLS);
mDomainConfig = mAsapiConnector.getDomainRoot().getDomainConfig();
}
public ClusterManager( final AMXConnector conn){
mAsapiConnector = conn;
mDomainConfig = mAsapiConnector.getDomainRoot().getDomainConfig();
}
/**
* creates a cluster
* @param clusterName
* @param configName
* @param optional
*
* @return ClusterConfig
*/
public ClusterConfig createCluster(final String clusterName,
final String configName,
final java.util.Map optional ) throws Exception
{
mClusterCfg = mDomainConfig.createClusterConfig(clusterName, configName, optional);
return mClusterCfg;
}
/**
* removes a cluster
* @param name
*/
public void deleteCluster(final String name) throws Exception{
mDomainConfig.removeClusterConfig(name);
}
/**
* Starts a cluster
* @param name
* @throws ObjectNotFoundException
*/
public void startCluster(final String name) throws ObjectNotFoundException {
final J2EECluster cluster = getCluster(name);
if(cluster != null){
cluster.start();
return;
}
throw new ObjectNotFoundException("startInstance: instance "+
name+" was not found by the DAS");
}
/**
* stops a named standalone instance
* @param name
*/
public void stopCluster(final String name) throws ObjectNotFoundException {
final J2EECluster cluster = getCluster(name);
if(cluster != null){
cluster.stop();
return;
}
throw new ObjectNotFoundException("stopInstance: instance "+
name + " was not found by the DAS");
}
private J2EECluster getCluster(final String name) {
final Map clusters = mAsapiConnector.getDomainRoot().getJ2EEDomain().getClusterMap();
final Iterator iter;
J2EECluster cluster=null;
String listName;
for(iter=clusters.keySet().iterator();iter.hasNext();){
if((listName = (String)iter.next()).equals(name)){
cluster = (J2EECluster)clusters.get(listName);
break;
}
}
return cluster;
}
public void listClusters() {
final Map clusters = mAsapiConnector.getDomainRoot().getJ2EEDomain().getClusterMap();
final Iterator iter;
for(iter=clusters.keySet().iterator();iter.hasNext();){
println(((J2EECluster)iter.next()).getName());
}
}
public boolean isCreated(final String name){
final J2EECluster cluster = getCluster(name);
if( cluster != null )
return true;
return false;
}
public static void println( final Object o )
{
System.out.println( toString( o ) );
}
private static String toString(final Object o )
{
return( SmartStringifier.toString( o ) );
}
}