Update gclc version in secondary pakages

Signed-off-by: Emmanuel Bigeon <emmanuel@bigeon.fr>
This commit is contained in:
2017-11-17 17:46:22 -05:00
parent b80a3fc5b8
commit e5d5edcf63
14 changed files with 691 additions and 571 deletions

View File

@@ -23,7 +23,7 @@
<dependency>
<groupId>fr.bigeon</groupId>
<artifactId>gclc</artifactId>
<version>1.3.1</version>
<version>2.0.0</version>
</dependency>
</dependencies>
<name>GCLC system command</name>

View File

@@ -15,7 +15,8 @@ import java.util.logging.Logger;
import fr.bigeon.gclc.command.Command;
import fr.bigeon.gclc.exception.CommandRunException;
import fr.bigeon.gclc.exception.CommandRunExceptionType;
import fr.bigeon.gclc.manager.ConsoleManager;
import fr.bigeon.gclc.manager.ConsoleInput;
import fr.bigeon.gclc.manager.ConsoleOutput;
/** A command that will execute a system command.
*
@@ -29,71 +30,68 @@ public class ExecSystemCommand extends Command {
/** The class logger */
private static final Logger LOGGER = Logger
.getLogger(ExecSystemCommand.class.getName());
/** The manager for the application's user interface */
private final ConsoleManager manager;
/** @param name the name of the command (the input from the manager that
* should trigger this command)
* @param manager the console manager for input and outputs */
public ExecSystemCommand(String name, ConsoleManager manager) {
super(name);
this.manager = manager;
/***/
public ExecSystemCommand() {
super(COMMAND_DEFAULT_NAME);
}
/** @param manager the console manager for input and outputs */
public ExecSystemCommand(ConsoleManager manager) {
super(COMMAND_DEFAULT_NAME);
this.manager = manager;
/** @param name the name of the command (the input from the manager that
* should trigger this command) */
public ExecSystemCommand(final String name) {
super(name);
}
/* (non-Javadoc)
* @see fr.bigeon.gclc.command.ICommand#execute(java.lang.String[]) */
@SuppressWarnings("resource")
* @see fr.bigeon.gclc.command.ICommand#execute(fr.bigeon.gclc.manager.
* ConsoleOutput, fr.bigeon.gclc.manager.ConsoleInput,
* java.lang.String[]) */
@Override
public void execute(String... args) throws CommandRunException {
public void execute(final ConsoleOutput out, final ConsoleInput in,
final String... args) throws CommandRunException {
Process proc;
try {
proc = Runtime.getRuntime().exec(args);
} catch (IOException e2) {
} catch (final IOException e2) {
LOGGER.log(Level.SEVERE, "Unable to run process", e2); //$NON-NLS-1$
return;
}
final InputStream is = proc
.getInputStream();
Thread th = new Thread(new Runnable() {
final Thread th = new Thread(new Runnable() {
@SuppressWarnings("synthetic-access")
@Override
public void run() {
try {
readToEnd(is);
readToEnd(out, is);
is.close();
} catch (CommandRunException e) {
} catch (final CommandRunException e) {
LOGGER.log(Level.WARNING,
"Manager was closed in the meantime...", e); //$NON-NLS-1$
} catch (IOException e) {
} catch (final IOException e) {
LOGGER.log(Level.WARNING, "Input stream was closed...", e); //$NON-NLS-1$
}
}
});
th.start();
manager.setPrompt(""); //$NON-NLS-1$
in.setPrompt(""); //$NON-NLS-1$
final OutputStream os = proc.getOutputStream();
try (BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os))) {
while (th.isAlive()) {
String user;
try {
user = manager.prompt();
} catch (IOException e) {
user = in.prompt();
} catch (final IOException e) {
throw new CommandRunException(
CommandRunExceptionType.INTERACTION,
"manager was closed", e, this); //$NON-NLS-1$
}
writer.write(user + EOL);
}
} catch (IOException e1) {
} catch (final IOException e1) {
throw new CommandRunException(CommandRunExceptionType.INTERACTION,
"manager was closed", e1, this); //$NON-NLS-1$
}
@@ -102,23 +100,31 @@ public class ExecSystemCommand extends Command {
/** @param is the input stream
* @throws CommandRunException if the manager was closed while writing the
* stream */
protected void readToEnd(InputStream is) throws CommandRunException {
protected void readToEnd(final ConsoleOutput out,
final InputStream is) throws CommandRunException {
int c;
try {
while ((c = is.read()) != -1) {
try {
manager.print(Character.valueOf((char) c).toString());
} catch (IOException e) {
out.print(Character.valueOf((char) c).toString());
} catch (final IOException e) {
throw new CommandRunException(
CommandRunExceptionType.INTERACTION,
"manager was closed", e, this); //$NON-NLS-1$
}
}
} catch (IOException e) {
} catch (final IOException e) {
LOGGER.log(Level.INFO, "input stream reading failed", e); //$NON-NLS-1$
}
}
/* (non-Javadoc)
* @see fr.bigeon.gclc.command.ICommand#tip() */
@Override
public String tip() {
return "Execute a system command"; //$NON-NLS-1$
}
/* (non-Javadoc)
* @see fr.bigeon.gclc.command.Command#usageDetail() */
@Override
@@ -139,11 +145,4 @@ public class ExecSystemCommand extends Command {
return " CMD <system command>"; //$NON-NLS-1$
}
/* (non-Javadoc)
* @see fr.bigeon.gclc.command.ICommand#tip() */
@Override
public String tip() {
return "Execute a system command"; //$NON-NLS-1$
}
}