mirror of https://github.com/rusefi/RomRaider.git
cleanup
git-svn-id: https://svn2.assembla.com/svn/romraider/trunk@76 38686702-15cf-42e4-a595-3071df8bf5ea
This commit is contained in:
parent
49d58b1807
commit
ef92cb92c4
|
@ -22,13 +22,19 @@
|
||||||
package com.romraider;
|
package com.romraider;
|
||||||
|
|
||||||
import static com.romraider.ECUEditorManager.getECUEditor;
|
import static com.romraider.ECUEditorManager.getECUEditor;
|
||||||
|
import static com.romraider.Version.PRODUCT_NAME;
|
||||||
import static com.romraider.logger.ecu.EcuLogger.startLogger;
|
import static com.romraider.logger.ecu.EcuLogger.startLogger;
|
||||||
import static com.romraider.swing.LookAndFeelManager.initLookAndFeel;
|
import static com.romraider.swing.LookAndFeelManager.initLookAndFeel;
|
||||||
import static com.romraider.util.LogManager.initDebugLogging;
|
import static com.romraider.util.LogManager.initDebugLogging;
|
||||||
|
import static com.romraider.util.RomServer.isRunning;
|
||||||
|
import static com.romraider.util.RomServer.sendRomToOpenInstance;
|
||||||
|
import static com.romraider.util.RomServer.waitForRom;
|
||||||
import com.romraider.util.SettingsManager;
|
import com.romraider.util.SettingsManager;
|
||||||
import com.romraider.util.SettingsManagerImpl;
|
import com.romraider.util.SettingsManagerImpl;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import static org.apache.log4j.Logger.getLogger;
|
import static org.apache.log4j.Logger.getLogger;
|
||||||
|
import static javax.swing.JOptionPane.INFORMATION_MESSAGE;
|
||||||
|
import static javax.swing.JOptionPane.showMessageDialog;
|
||||||
import static javax.swing.SwingUtilities.invokeLater;
|
import static javax.swing.SwingUtilities.invokeLater;
|
||||||
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
|
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -51,9 +57,19 @@ public class ECUExec {
|
||||||
// set look and feel
|
// set look and feel
|
||||||
initLookAndFeel();
|
initLookAndFeel();
|
||||||
|
|
||||||
// open editor or logger
|
// check if already running
|
||||||
if (containsLoggerArg(args)) openLogger();
|
if (isRunning()) {
|
||||||
else openEditor(args);
|
if (args.length == 0 || containsLoggerArg(args)) showAlreadyRunningMessage();
|
||||||
|
else sendRomToOpenInstance(args[0]);
|
||||||
|
} else {
|
||||||
|
// open editor or logger
|
||||||
|
if (containsLoggerArg(args)) openLogger();
|
||||||
|
else openEditor(args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void showAlreadyRunningMessage() {
|
||||||
|
showMessageDialog(null, PRODUCT_NAME + " is already running.", PRODUCT_NAME, INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean containsLoggerArg(String[] args) {
|
private static boolean containsLoggerArg(String[] args) {
|
||||||
|
@ -67,11 +83,6 @@ public class ECUExec {
|
||||||
startLogger(EXIT_ON_CLOSE, settings);
|
startLogger(EXIT_ON_CLOSE, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void openEditor(String[] args) {
|
|
||||||
ECUEditor editor = getECUEditor();
|
|
||||||
if (args.length > 0) openRom(editor, args[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void openRom(final ECUEditor editor, final String rom) {
|
private static void openRom(final ECUEditor editor, final String rom) {
|
||||||
invokeLater(new Runnable() {
|
invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -84,4 +95,21 @@ public class ECUExec {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void openEditor(String[] args) {
|
||||||
|
ECUEditor editor = getECUEditor();
|
||||||
|
if (args.length > 0) openRom(editor, args[0]);
|
||||||
|
startRomListener(editor);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void startRomListener(ECUEditor editor) {
|
||||||
|
try {
|
||||||
|
while (true) {
|
||||||
|
String rom = waitForRom();
|
||||||
|
openRom(editor, rom);
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
LOGGER.error("Error occurred", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
package com.romraider.util;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import static org.apache.log4j.Logger.getLogger;
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public final class RomServer {
|
||||||
|
private static final Logger LOGGER = getLogger(RomServer.class);
|
||||||
|
private static final String HOST = "localhost";
|
||||||
|
private static final int PORT = 54321;
|
||||||
|
|
||||||
|
public static boolean isRunning() {
|
||||||
|
try {
|
||||||
|
ServerSocket sock = new ServerSocket(PORT);
|
||||||
|
sock.close();
|
||||||
|
return false;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String waitForRom() throws IOException {
|
||||||
|
ServerSocket sock = new ServerSocket(PORT);
|
||||||
|
try {
|
||||||
|
return waitForRom(sock);
|
||||||
|
} finally {
|
||||||
|
sock.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendRomToOpenInstance(String rom) {
|
||||||
|
try {
|
||||||
|
Socket socket = new Socket(HOST, PORT);
|
||||||
|
OutputStream os = socket.getOutputStream();
|
||||||
|
try {
|
||||||
|
write(os, rom);
|
||||||
|
} finally {
|
||||||
|
socket.close();
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
LOGGER.error("Error occurred", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void write(OutputStream os, String rom) {
|
||||||
|
PrintWriter pw = new PrintWriter(os, true);
|
||||||
|
try {
|
||||||
|
pw.println(rom);
|
||||||
|
} finally {
|
||||||
|
pw.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String waitForRom(ServerSocket sock) throws IOException {
|
||||||
|
Socket client = sock.accept();
|
||||||
|
try {
|
||||||
|
return getRom(client);
|
||||||
|
} finally {
|
||||||
|
client.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getRom(Socket client) throws IOException {
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
|
||||||
|
try {
|
||||||
|
return br.readLine();
|
||||||
|
} finally {
|
||||||
|
br.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue