Archived
0

Zond: вернули функционал коннекта к асис

This commit is contained in:
2017-06-14 15:27:42 +03:00
parent 97b83815d2
commit 4f9c4790a3
2 changed files with 19 additions and 46 deletions

View File

@@ -1,5 +1,5 @@
group = 'asys' group = 'asys'
version = '0.6.7-SNAPSHOT' version = '0.6.9-SNAPSHOT'
apply plugin: 'application' apply plugin: 'application'

View File

@@ -17,6 +17,8 @@ import java.util.Arrays;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class Main { public class Main {
private static JlineProxySysOut proxySysOut;
private static void printLogo() { private static void printLogo() {
System.out.println( System.out.println(
Ansi.ansi().reset() Ansi.ansi().reset()
@@ -26,11 +28,14 @@ public class Main {
} }
public static void log(String message){ public static void log(String message){
System.out.println( String msg = Ansi.ansi().reset()
Ansi.ansi().reset()
.bg(Color.BLUE).fg(Color.WHITE).a("[ASys Zond] ") .bg(Color.BLUE).fg(Color.WHITE).a("[ASys Zond] ")
.a(message).reset() .a(message).reset().toString();
); if (proxySysOut != null) {
proxySysOut.println(msg);
} else {
System.out.println(msg);
}
} }
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
@@ -48,7 +53,7 @@ public class Main {
loadConfig(); loadConfig();
JlineProxySysOut proxySysOut = new JlineProxySysOut(System.out); proxySysOut = new JlineProxySysOut(System.out);
JlineProxySysIn proxySysIn = new JlineProxySysIn(); JlineProxySysIn proxySysIn = new JlineProxySysIn();
ConsoleReader console = new ConsoleReader(System.in, proxySysOut); ConsoleReader console = new ConsoleReader(System.in, proxySysOut);
proxySysOut.setConsoleReader(console); proxySysOut.setConsoleReader(console);
@@ -69,25 +74,26 @@ public class Main {
proxySysIn.write(line+"\r\n"); proxySysIn.write(line+"\r\n");
} }
} }
} catch (Exception e) { } catch (Throwable ignore) {
e.printStackTrace(); //FIXME
} }
}); });
try { try {
thread.join();
thread.start(); thread.start();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();//FIXME e.printStackTrace();//FIXME
} }
// Connector.getInstance().startReconnect(); Connector.getInstance().startReconnect();
int resultCode = executeProcess(args, proxySysOut, proxySysIn); int resultCode = executeProcess(args, proxySysOut, proxySysIn);
// Connector.getInstance().setNeedReconnect(false); Connector.getInstance().setNeedReconnect(false);
// Connector.getInstance().stopReconnect(); Connector.getInstance().stopReconnect();
// Connector.getInstance().disconnect(); Connector.getInstance().disconnect();
thread.interrupt();
console.shutdown();
System.out.println( System.out.println(
Ansi.ansi().reset().newline() Ansi.ansi().reset().newline()
@@ -102,10 +108,6 @@ public class Main {
CommandLine commandLine = CommandLine.parse(cmdLine); CommandLine commandLine = CommandLine.parse(cmdLine);
DefaultExecutor executor = new DefaultExecutor(); DefaultExecutor executor = new DefaultExecutor();
// PrintStream proxySysOut = new ProxySysOut(System.out);
// InputStream proxySysIn = new ProxySysIn();
// PumpStreamHandler psh = new PumpStreamHandler(proxySysOut, proxySysOut, proxySysIn);
PumpStreamHandler psh = new PumpStreamHandler(printStream, printStream, stdin); PumpStreamHandler psh = new PumpStreamHandler(printStream, printStream, stdin);
psh.setStopTimeout(-1999); //hack: по-умолчанию в Apache Exec добавляется еще 2000L милисекунд psh.setStopTimeout(-1999); //hack: по-умолчанию в Apache Exec добавляется еще 2000L милисекунд
executor.setStreamHandler(psh); executor.setStreamHandler(psh);
@@ -142,33 +144,4 @@ public class Main {
Config.load(fis); Config.load(fis);
fis.close(); fis.close();
} }
private static class ProxySysOut extends PrintStream {
ProxySysOut(OutputStream out) {
super(out);
}
@Override
public void write(byte[] buf, int off, int len) {
super.write(buf, off, len);
Connector.getInstance().sendMessage(new String(buf, off, len));
}
}
private static class ProxySysIn extends InputStream {
@Override
public int read() throws IOException {
return System.in.read();
}
@Override
public int read(byte[] b) throws IOException {
return System.in.read(b);
}
@Override
public int read(byte[] b, int off, int len) throws IOException {
return System.in.read(b, off, len);
}
}
} }