summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ajde/testsrc/org/aspectj/ajde/OutxmlTest.java16
-rw-r--r--taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java12
-rw-r--r--taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java25
3 files changed, 53 insertions, 0 deletions
diff --git a/ajde/testsrc/org/aspectj/ajde/OutxmlTest.java b/ajde/testsrc/org/aspectj/ajde/OutxmlTest.java
index bde409706..aba6faf52 100644
--- a/ajde/testsrc/org/aspectj/ajde/OutxmlTest.java
+++ b/ajde/testsrc/org/aspectj/ajde/OutxmlTest.java
@@ -71,6 +71,22 @@ public class OutxmlTest extends AjdeTestCase {
}
/**
+ * Aim: Test "-outxml" option produces the correct
+ * xml entry in outjar file
+ *
+ */
+ public void testOutxmlToOutjar () {
+ File outjar = openFile(OUTJAR_NAME);
+ ideManager.getProjectProperties().setOutJar(outjar.getAbsolutePath());
+ assertTrue("Build failed",doSynchronousBuild("outxml-to-outjar.lst"));
+ assertTrue("Build warnings",ideManager.getCompilationSourceLineTasks().isEmpty());
+
+ File aopxml = openFile(BIN_DIR + "/" + DEFAULT_AOPXML_NAME);
+ assertFalse(DEFAULT_AOPXML_NAME + " should not exisit",aopxml.exists());
+ assertJarContainsEntry(outjar,DEFAULT_AOPXML_NAME);
+ }
+
+ /**
* Aim: Test "-outxmlfile filename" option produces the correct
* xml entry in outjar file
*
diff --git a/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java b/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java
index a64ad2a37..68d95f594 100644
--- a/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java
+++ b/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java
@@ -618,6 +618,14 @@ public class AjcTask extends MatchingTask {
tmpOutjar = null;
}
+ public void setOutxml(boolean outxml) {
+ cmd.addFlag("-outxml",outxml);
+ }
+
+ public void setOutxmlfile(String name) {
+ cmd.addFlagged("-outxmlfile", name);
+ }
+
public void setDestdir(File dir) {
if (null != outjar) {
String e = "specifying both output jar ("
@@ -1788,6 +1796,10 @@ public class AjcTask extends MatchingTask {
setNoExit(true);
} else if ("-outjar".equals(flag)) {
setOutjar(new File(in.next()));
+ } else if ("-outxml".equals(flag)) {
+ setOutxml(true);
+ } else if ("-outxmlfile".equals(flag)) {
+ setOutxmlfile(in.next());
} else if ("-preserveAllLocals".equals(flag)) {
setPreserveAllLocals(true);
} else if ("-proceedOnError".equals(flag)) {
diff --git a/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java b/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java
index fcc27eef1..7037fa89a 100644
--- a/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java
+++ b/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java
@@ -710,6 +710,31 @@ public class AjcTaskTest extends TestCase {
}
+ public void testOutxml () {
+ File destDir = getTempDir();
+ assertTrue(
+ "unable to create " + destDir,
+ destDir.canRead() || destDir.mkdirs());
+ AjcTask task = getTask("showweaveinfo.lst",destDir);
+ task.setOutxml(true);
+ checkRun(task,null);
+ File outxmlFile = new File(destDir,"META-INF/aop.xml");
+ assertTrue("META-INF/aop.xml missing",outxmlFile.exists());
+ }
+
+ public void testOutxmlFile () {
+ String customName = "custom/aop.xml";
+ File destDir = getTempDir();
+ assertTrue(
+ "unable to create " + destDir,
+ destDir.canRead() || destDir.mkdirs());
+ AjcTask task = getTask("showweaveinfo.lst",destDir);
+ task.setOutxmlfile(customName);
+ checkRun(task,null);
+ File outxmlFile = new File(destDir,customName);
+ assertTrue(customName + " missing",outxmlFile.exists());
+ }
+
protected void runTest(
AjcTask task,
Class exceptionType,