aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-06-02 11:46:31 +0000
committeracolyer <acolyer>2005-06-02 11:46:31 +0000
commit27c6150906667e299a6952bc4dda642aad00578d (patch)
tree4ccbc1e238ba018c51d1fa45d3bcceb2ebac9c90 /org.aspectj.ajdt.core
parentbedcb3ea08173f4b4ed837822e917e8dba6837d9 (diff)
downloadaspectj-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.java3
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java54
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;
+ }
}
}