From: Robert S. <ra...@gm...> - 2006-07-10 15:44:25
|
User: rawb Date: 06/07/10 11:44:23 Modified: as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model ServerProcessLog.java ServerProcessModel.java Log: Changed event logging structure. Revision Changes Path 1.6 +29 -42 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/ServerProcessLog.java (In the diff below, changes in quantity of whitespace are not shown.) Index: ServerProcessLog.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/ServerProcessLog.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- ServerProcessLog.java 27 Jun 2006 07:07:31 -0000 1.5 +++ ServerProcessLog.java 10 Jul 2006 15:44:23 -0000 1.6 @@ -34,28 +34,8 @@ public class ServerProcessLog { public static class ProcessLogEvent { - public static final int SERVER_ROOT = -1; - - public static final int SERVER_CONSOLE = 0; - - public static final int SERVER_STARTING = 1; - public static final int SERVER_STOPPING = 3; - public static final int SERVER_UP = 9; - public static final int SERVER_DOWN = 10; - - public static final int SERVER_PUBLISH = 2; - public static final int SERVER_UNPUBLISH = 14; - public static final int SERVER_VERIFY = 15; - - public static final int TWIDDLE = 4; - public static final int STDOUT = 5; - public static final int STDERR = 6; - public static final int PROCESS = 7; - public static final int ERROR = 8; - - public static final int WAR = 11; - public static final int EJB_JAR = 12; - public static final int EAR = 13; + public static final int SERVER_ROOT = 0; + public static final int SERVER_CONSOLE = 1; public static final int UNKNOWN = 16; @@ -64,19 +44,15 @@ public static final int ADD_END = 1; - - private HashMap properties = new HashMap(); private ArrayList children = new ArrayList(); private ProcessLogEvent parent; - private String text; private int eventType; private long date; private boolean complete = false; - public ProcessLogEvent(String text, int eventType) { - this.text = text; + public ProcessLogEvent(int eventType) { this.eventType = eventType; this.date = new Date().getTime(); } @@ -101,12 +77,12 @@ } - public ProcessLogEvent addChild(String text, int eventType) { - return addChild(text, eventType, ADD_END); + public ProcessLogEvent addChild(int eventType) { + return addChild(eventType, ADD_END); } - public ProcessLogEvent addChild(String text, int eventType, int location) { - ProcessLogEvent e = new ProcessLogEvent(text, eventType); + public ProcessLogEvent addChild(int eventType, int location) { + ProcessLogEvent e = new ProcessLogEvent(eventType); addChild(e, location); return e; } @@ -162,10 +138,6 @@ this.eventType = eventType; } - public String getText() { - return text; - } - public ProcessLogEvent getParent() { return parent; } @@ -194,8 +166,18 @@ this.complete = true; } - public void setText(String text) { - this.text = text; + } + + public static class ExceptionLogEvent extends ProcessLogEvent { + + private Throwable e; + public ExceptionLogEvent(Throwable e) { + super(-1); + this.e = e; + } + + public Throwable getException() { + return e; } } @@ -206,7 +188,7 @@ // private ProcessLogEvent consoleLog; public ProcessLogEventRoot(String serverID) { - super(serverID, SERVER_ROOT); + super(SERVER_ROOT); this.server = ServerCore.findServer(serverID); this.serverID = serverID; } @@ -226,12 +208,17 @@ return server; } - public ProcessLogEvent newMajorEvent(String text, int type) { - ProcessLogEvent newEvent = new ProcessLogEvent(text, type); + public ProcessLogEvent newMajorEvent(int type) { + ProcessLogEvent newEvent = new ProcessLogEvent(type); addChild(newEvent, ADD_BEGINNING); return newEvent; } + public void newMajorEvent(ProcessLogEvent event) { + addChild(event, ADD_BEGINNING); + } + + /** * Get the latest major event. * @param create Create a new event if the last is finished? @@ -242,7 +229,7 @@ if( !getChildren()[0].isComplete()) return getChildren()[0]; - return addChild("Unknown Event", ProcessLogEvent.UNKNOWN, ProcessLogEvent.ADD_BEGINNING); + return addChild(ProcessLogEvent.UNKNOWN, ProcessLogEvent.ADD_BEGINNING); } } 1.6 +29 -17 jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/ServerProcessModel.java (In the diff below, changes in quantity of whitespace are not shown.) Index: ServerProcessModel.java =================================================================== RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/model/ServerProcessModel.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- ServerProcessModel.java 27 Jun 2006 07:07:31 -0000 1.5 +++ ServerProcessModel.java 10 Jul 2006 15:44:23 -0000 1.6 @@ -397,6 +397,14 @@ } + public static class ConsoleLogEvent extends ProcessLogEvent { + public ConsoleLogEvent() { + super(ProcessLogEvent.SERVER_CONSOLE); + } + public String toString() { + return getProperty(new Integer(ServerProcessLog.ProcessLogEvent.SERVER_CONSOLE)).toString(); + } + } private class ServerConsoleLogger implements IServerProcessListener, IStreamListener { private IStreamMonitor out, err; @@ -420,7 +428,6 @@ err = proxy.getErrorStreamMonitor(); out.addListener(this); err.addListener(this); - } } catch( Exception e ) { ASDebug.p("Error", this); @@ -432,11 +439,12 @@ ProcessLogEvent major = getEventLog().getLatestMajorEvent(true); ProcessLogEvent[] children = major.getChildren(); for( int i = 0; i < children.length; i++ ) { - if( children[i].getEventType() == ProcessLogEvent.SERVER_CONSOLE ) { + if( children[i] instanceof ConsoleLogEvent && + children[i].getEventType() == ProcessLogEvent.SERVER_CONSOLE ) { return children[i]; } } - ProcessLogEvent newConsole = new ProcessLogEvent("Console Output", ProcessLogEvent.SERVER_CONSOLE); + ProcessLogEvent newConsole = new ConsoleLogEvent(); major.addChild(newConsole, ProcessLogEvent.ADD_BEGINNING); return newConsole; } @@ -459,20 +467,24 @@ } protected void outAppended(String text, IStreamMonitor monitor) { - String[] textSplit = text.split("\r\n|\r|\n"); - for( int i = 0; i < textSplit.length; i++ ) - getLatestConsole().addChild(textSplit[i], ProcessLogEvent.STDOUT); + append(text); } protected void errAppended(String text, IStreamMonitor monitor) { - String[] textSplit = text.split("\r\n|\r|\n"); - for( int i = 0; i < textSplit.length; i++ ) - getLatestConsole().addChild(textSplit[i], ProcessLogEvent.STDERR); + append(text); + } + + protected void append(String text) { + Object o = getLatestConsole().getProperty(new Integer(ServerProcessLog.ProcessLogEvent.SERVER_CONSOLE)); + String x; + if( o == null ) x = ""; else x = (String)o; + x = x + text; + getLatestConsole().setProperty(new Integer(ServerProcessLog.ProcessLogEvent.SERVER_CONSOLE), x); } } /** - * A class that can monitor a process's standard out and + * A class that can monitor a process's standard OUT and * standard error, as well as keep track of the process's * arguments that it was launched with. * |