}
input = new FileCommandInput( new File( options.getInput() ) );
}
try
{
CommandCenter commandCenter = new CommandCenter( output, input );
if ( input instanceof JlineCommandInput )
{
( (JlineCommandInput) input ).getConsole().addCompleter(new ConsoleCompletor(commandCenter));
}
if ( options.getUrl() != null )
{
Map<String, Object> env;
if ( options.getUser() != null )
{
env = new HashMap<String, Object>( 1 );
String password = options.getPassword();
if ( password == null )
{
password = input.readMaskedString( "Authentication password: " );
}
String[] credentials = { options.getUser(), password };
env.put( JMXConnector.CREDENTIALS, credentials );
}
else
{
env = null;
}
commandCenter.connect( SyntaxUtils.getUrl( options.getUrl(), commandCenter.getProcessManager() ),
env );
}
if ( verboseLevel != null )
{
commandCenter.setVerboseLevel( verboseLevel );
}
if ( verboseLevel != VerboseLevel.SILENT )
{
output.printMessage( "Welcome to JMX terminal. Type \"help\" for available commands." );
}
String line;
int exitCode = 0;
int lineNumber = 0;
while ( ( line = input.readLine() ) != null )
{
lineNumber++;
if ( !commandCenter.execute( line ) && options.isExitOnFailure() )
{
exitCode = -lineNumber;
break;
}
if ( commandCenter.isClosed() )
{
break;
}
}
commandCenter.close();
return exitCode;
}
finally
{
input.close();