Methods Summary |
---|
public javax.management.ObjectName | create(java.lang.String serverName, java.lang.String clusterName, java.lang.String nodeAgentName, java.util.Map optional)
final ClusterConfig clusterConfig =
getDomainConfig().getClusterConfigMap().get( clusterName );
if ( clusterConfig == null )
{
throw new IllegalArgumentException( "" + clusterName );
}
final String configName = clusterConfig.getReferencedConfigName();
debug( "creating server:\n" + (optional == null ? "null" : MapUtil.toString( optional )) );
final ObjectName serverObjectName =
super.create( serverName, nodeAgentName, configName, optional );
// now create a reference.
debug( "created server: " + serverName + " in cluster " + clusterName +
"with node agent " + nodeAgentName );
final Map<String,String> options = new HashMap<String,String>();
options.put( ServerRefConfigCR.ENABLED_KEY, "true" );
options.put( ServerRefConfigCR.LB_ENABLED_KEY, "" + getLBEnabled(clusterConfig) );
debug( "creating reference" );
final ServerRefConfig refConfig =
clusterConfig.createServerRefConfig( serverName, options );
debug( "created reference" );
// Now wait until internal code mutates the STANDALONE_SERVER_CONFIG into
// a CLUSTERED_SERVER_CONFIG
final String props = Util.makeRequiredProps( XTypes.CLUSTERED_SERVER_CONFIG, serverName );
Set<ClusteredServerConfig> s = null;
while( (s = getQueryMgr().queryPropsSet( props )).size() == 0 )
{
try
{
Thread.sleep( 20 );
}
catch( InterruptedException e )
{
throw new RuntimeException( e );
}
}
return Util.getObjectName( s.iterator().next() );
|
private com.sun.appserv.management.config.ClusterConfig | findClusterForClusteredServer(java.lang.String clusteredServerName)
// find the cluster referencing this server
ClusterConfig clusterConfig = null;
final Map<String,ClusterConfig> clusters = getDomainConfig().getClusterConfigMap();
for( final ClusterConfig cc : clusters.values() )
{
final Map<String,ServerRefConfig> servers = cc.getServerRefConfigMap();
if ( servers.keySet().contains( clusteredServerName ) )
{
clusterConfig = cc;
break;
}
}
return clusterConfig;
|
private boolean | getLBEnabled(com.sun.appserv.management.config.ClusterConfig clusterConfig)
final Map<String,ServerRefConfig> refs = clusterConfig.getServerRefConfigMap();
boolean enabled = false;
// take lb-enabled from the first server
if ( refs.keySet().size() != 0 )
{
final ServerRefConfig first = refs.values().iterator().next();
enabled = first.getLBEnabled();
}
return enabled;
|
protected void | removeByName(java.lang.String clusteredServerName)
// find the cluster referencing this server
final ClusterConfig clusterConfig =
findClusterForClusteredServer( clusteredServerName );
if ( clusterConfig == null )
{
throw new IllegalArgumentException( "" + clusteredServerName );
}
// removal of the <server-ref> is apparently implied...
super.removeByName( clusteredServerName );
|