diff options
author | acolyer <acolyer> | 2005-06-02 11:46:31 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-06-02 11:46:31 +0000 |
commit | 27c6150906667e299a6952bc4dda642aad00578d (patch) | |
tree | 4ccbc1e238ba018c51d1fa45d3bcceb2ebac9c90 /org.aspectj.ajdt.core | |
parent | bedcb3ea08173f4b4ed837822e917e8dba6837d9 (diff) | |
download | aspectj-27c6150906667e299a6952bc4dda642aad00578d.tar.gz aspectj-27c6150906667e299a6952bc4dda642aad00578d.zip |
Andrew Huff's patch for the -log option
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java | 3 | ||||
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java | 54 |
2 files changed, 51 insertions, 6 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java index 9aaf068c3..2de67f693 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java @@ -491,6 +491,9 @@ public class BuildArgParser extends Main { } else { showError("-outjar requires jar path argument"); } + } else if (arg.equals("-log")){ + // remove it as it's already been handled in org.aspectj.tools.ajc.Main + args.remove(args.get(nextArgIndex)); } else if (arg.equals("-incremental")) { buildConfig.setIncrementalMode(true); } else if (arg.equals("-XincrementalFile")) { diff --git a/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java b/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java index 5b701334a..3861d18e9 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java @@ -15,9 +15,11 @@ package org.aspectj.tools.ajc; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.List; +import java.util.Date; import org.aspectj.bridge.AbortException; import org.aspectj.bridge.ICommand; @@ -212,12 +214,12 @@ public class Main { IMessageHolder holder = clientHolder; if (null == holder) { holder = ourHandler; - if (verbose) { +// if (verbose) { ourHandler.setInterceptor(MessagePrinter.VERBOSE); - } else { - ourHandler.ignore(IMessage.INFO); - ourHandler.setInterceptor(MessagePrinter.TERSE); - } +// } else { +// ourHandler.ignore(IMessage.INFO); +// ourHandler.setInterceptor(MessagePrinter.TERSE); +// } } // make sure we handle out of memory gracefully... @@ -268,7 +270,34 @@ public class Main { * @param holder the MessageHandler sink for messages. */ public void run(String[] args, IMessageHolder holder) { - if (LangUtil.isEmpty(args)) { + + boolean logMode = (-1 != ("" + LangUtil.arrayAsList(args)).indexOf("-log")); + PrintStream logStream = null; + FileOutputStream fos = null; + if (logMode){ + int logIndex = LangUtil.arrayAsList(args).indexOf("-log"); + String logFileName = args[logIndex + 1]; + File logFile = new File(logFileName); + try{ + logFile.createNewFile(); + fos = new FileOutputStream(logFileName, true); + logStream = new PrintStream(fos,true); + } catch(Exception e){ + fail(holder, "Couldn't open log file: ", e); + } + Date now = new Date(); + logStream.println(now.toString()); + boolean verbose = (-1 != ("" + LangUtil.arrayAsList(args)).indexOf("-verbose")); + if (verbose) { + ourHandler.setInterceptor(new LogModeMessagePrinter(true,logStream)); + } else { + ourHandler.ignore(IMessage.INFO); + ourHandler.setInterceptor(new LogModeMessagePrinter(false,logStream)); + } + holder = ourHandler; + } + + if (LangUtil.isEmpty(args)) { args = new String[] { "-?" }; } else if (controller.running()) { fail(holder, "already running with controller: " + controller, null); @@ -324,6 +353,19 @@ public class Main { } } catch (Throwable t) { fail(holder, "unexpected exception", t); + } finally{ + if (logStream != null){ + logStream.close(); + logStream = null; + } + if (fos != null){ + try { + fos.close(); + } catch (IOException e){ + fail(holder, "unexpected exception", e); + } + fos = null; + } } } |