ListComponentsCommandpublic class ListComponentsCommand extends S1ASCommand This class is called for the list-components command.
It uses the application mbean (object name: ias:type=applications,category=config)
and the getAllDeployedComponents() operation. This information is defined in
CLIDescriptor.xml,
The getAllDeployedComponents returns an array of ObjectName[]. From the ObjectName,
the type can be determined. If the --type option is used, the appropriate type
will be displayed otherwise all deployed module will be displayed.
|
Fields Summary |
---|
private static final String | TYPE_OPTION | private static final String | TYPE_OPTION_REG | private static final String | WEBSERVICE_TYPE |
Methods Summary |
---|
private java.lang.String | getTypeOption()this method gets the value for type option.
type option must be application, ejb, web or connector
final String type = getOption(TYPE_OPTION);
if (type == null) return type;
if (type.matches(TYPE_OPTION_REG))
return type;
throw new CommandValidationException(getLocalizedString("InvalidTypeOption"));
| private void | printDebug(javax.management.MBeanServerConnection mbsc, java.lang.String objectName)This method prints the objecName info for debugging purpose
CLILogger.getInstance().printDebugMessage("********** getMBeanInfo **********");
final javax.management.MBeanInfo mbinfo = mbsc.getMBeanInfo(new ObjectName(objectName));
CLILogger.getInstance().printDebugMessage("Description = " + mbinfo.getDescription());
CLILogger.getInstance().printDebugMessage("Classname = " + mbinfo.getClassName());
final javax.management.MBeanOperationInfo[] mboinfo = mbinfo.getOperations();
for (int ii=0; ii<mboinfo.length; ii++)
{
CLILogger.getInstance().printDebugMessage("("+ii+") Description = " +
mboinfo[ii].getDescription());
CLILogger.getInstance().printDebugMessage("("+ii+") Name = " +
mboinfo[ii].getName());
CLILogger.getInstance().printDebugMessage("****** TYPE *****");
final javax.management.MBeanParameterInfo[] mbpi = mboinfo[ii].getSignature();
for (int kk=0; kk<mbpi.length; kk++)
{
CLILogger.getInstance().printDebugMessage("type = " + mbpi[kk].getType());
}
CLILogger.getInstance().printDebugMessage("returnType = " + mboinfo[ii].getReturnType());
}
| private boolean | printDeployedComponents(java.lang.Object returnValue)This method prints the object name.
if (returnValue == null) return true;
boolean nothingToList = true;
if (returnValue.getClass() == new ObjectName[0].getClass())
{
final ObjectName[] objs = (ObjectName[])returnValue;
final String displayType = (String)((Vector)getProperty(DISPLAY_TYPE)).get(0);
final String type = getTypeOption();
for (int ii=0; ii<objs.length; ii++)
{
final ObjectName objectName = (ObjectName)objs[ii];
CLILogger.getInstance().printDebugMessage("ObjectName = " + objectName);
final String componentType = objectName.getKeyProperty("type");
if ((type == null) || (componentType.indexOf(type) != -1))
{
CLILogger.getInstance().printMessage(
objectName.getKeyProperty(displayType) +
" <" + componentType + "> " );
nothingToList = false;
}
}
}
return nothingToList;
| private boolean | printWebServices(javax.management.MBeanServerConnection mbsc)this method will print the fully qualified webservice endpoints
ex. jaxrpc-simple#jaxrpc-simple.war#HelloIF
DomainRoot domainRoot = ProxyFactory.getInstance(mbsc).getDomainRoot();
Map map = domainRoot.getWebServiceMgr().getWebServiceEndpointKeys();
Iterator keys = map.keySet().iterator();
if (!keys.hasNext())
return true;
while (keys.hasNext())
CLILogger.getInstance().printMessage(keys.next().toString() +
" <" + WEBSERVICE_TYPE + "> ");
return false;
| public void | runCommand()An abstract method that Executes the command
//if validateOptions is false, then it must be that --help option
//is provided and there is no need to execute the command since
//either manpage or usage text is displayed
if (!validateOptions())
return;
String objectName = getObjectName();
Object[] params = getParamsInfo();
String operationName = getOperationName();
String[] types = getTypesInfo();
//use http connector
MBeanServerConnection mbsc = getMBeanServerConnection(getHost(), getPort(),
getUser(), getPassword());
try
{
if (System.getProperty("Debug") != null) printDebug(mbsc, objectName);
// handleReturnValue(returnValue);
String type = getTypeOption();
boolean nothingToList = true;
if ((type != null) && (type.equals(WEBSERVICE_TYPE)))
{
nothingToList = printWebServices(mbsc);
}
else
{
Object returnValue = mbsc.invoke(new ObjectName(objectName),
operationName, params, types);
nothingToList = printDeployedComponents(returnValue);
// if type is null, also print the webservices
if (type == null)
{
if (printWebServices(mbsc) == false)
nothingToList=false;
}
}
if (nothingToList)
{
CLILogger.getInstance().printDetailMessage(
getLocalizedString("NoElementsToList"));
}
CLILogger.getInstance().printDetailMessage(getLocalizedString(
"CommandSuccessful",
new Object[] {name}));
}
catch(Exception e)
{
if (e.getLocalizedMessage() != null)
CLILogger.getInstance().printDetailMessage(e.getLocalizedMessage());
throw new CommandException(getLocalizedString("CommandUnSuccessful",
new Object[] {name} ), e);
}
| public boolean | validateOptions()An abstract method that validates the options
on the specification in the xml properties file
This method verifies for the correctness of number of
operands and if all the required options are supplied by the client.
return super.validateOptions();
|
|