ARTEMIS-116 Fixed exception handling. Minor formatting clean up in the CLI.

This commit is contained in:
John D. Ament 2015-06-16 20:28:32 -04:00
parent 4950c343e5
commit 1d0821ea4a
2 changed files with 50 additions and 9 deletions

View File

@ -20,6 +20,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import io.airlift.airline.Cli;
import io.airlift.airline.ParseArgumentsMissingException;
import io.airlift.airline.ParseArgumentsUnexpectedException;
import org.apache.activemq.artemis.cli.commands.Action;
import org.apache.activemq.artemis.cli.commands.ActionContext;
@ -37,7 +38,7 @@ import org.apache.activemq.artemis.cli.commands.tools.XmlDataImporter;
public class Artemis
{
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception
{
String instance = System.getProperty("artemis.instance");
@ -47,19 +48,18 @@ public class Artemis
.withDefaultCommand(HelpAction.class);
builder.withGroup("data").withDescription("data tools group (print|exp|imp|exp|encode|decode) (example ./artemis data print)").
withDefaultCommand(HelpData.class).withCommands(PrintData.class, XmlDataExporter.class, XmlDataImporter.class,
DecodeJournal.class, EncodeJournal.class);
builder.withGroup("data")
.withDescription("data tools group (print|exp|imp|exp|encode|decode) (example ./artemis data print)").
withDefaultCommand(HelpData.class).withCommands(PrintData.class, XmlDataExporter.class,
XmlDataImporter.class,DecodeJournal.class, EncodeJournal.class);
if (instance != null)
{
builder = builder
.withCommands(Run.class, Stop.class, Kill.class);
builder = builder.withCommands(Run.class, Stop.class, Kill.class);
}
else
{
builder = builder
.withCommand(Create.class);
builder = builder.withCommand(Create.class);
}
Cli<Action> parser = builder.build();
@ -67,7 +67,7 @@ public class Artemis
{
parser.parse(args).execute(ActionContext.system());
}
catch (ParseArgumentsUnexpectedException e)
catch (ParseArgumentsUnexpectedException | ParseArgumentsMissingException e)
{
System.err.println(e.getMessage());
System.out.println();

View File

@ -0,0 +1,41 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.artemis.test;
import org.apache.activemq.artemis.cli.Artemis;
import org.junit.Assert;
import org.junit.Test;
/**
* Test to validate that the CLI doesn't throw improper exceptions when invoked.
*/
public class ArtemisTest
{
@Test
public void invalidCliDoesntThrowException()
{
try
{
Artemis.main(new String[]{"create"});
}
catch (Exception e)
{
e.printStackTrace();
Assert.fail("Exception caught " + e.getMessage());
}
}
}