Browse Source

improve nested-record patch. PR 41368. Submitted by Gene-Sung Chung

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@805382 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
f12aca5b44
7 changed files with 38 additions and 12 deletions
  1. +1
    -0
      CONTRIBUTORS
  2. +8
    -0
      contributors.xml
  3. +1
    -0
      src/etc/testcases/taskdefs/recorder/rectest5.result
  4. +2
    -0
      src/etc/testcases/taskdefs/recorder/rectest6.result
  5. +4
    -0
      src/etc/testcases/taskdefs/recorder2.xml
  6. +13
    -12
      src/main/org/apache/tools/ant/taskdefs/Recorder.java
  7. +9
    -0
      src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java

+ 1
- 0
CONTRIBUTORS View File

@@ -102,6 +102,7 @@ Frederic Bothamy
Frederic Lavigne
Gary S. Weaver
Gautam Guliani
Gene-Sung Chung
Georges-Etienne Legendre
Gero Vermaas
Gerrit Riessen


+ 8
- 0
contributors.xml View File

@@ -434,6 +434,14 @@
<first>Gautam</first>
<last>Guliani</last>
</name>
<name>
<first>Gene-Sung</first>
<last>Chung</last>
</name>
<name>
<first>Georges-Etienne</first>
<last>Legendre</last>
</name>
<name>
<first>Gero</first>
<last>Vermaas</last>


+ 1
- 0
src/etc/testcases/taskdefs/recorder/rectest5.result View File

@@ -2,3 +2,4 @@

test6:
[echo] some message6
[echo] some message8

+ 2
- 0
src/etc/testcases/taskdefs/recorder/rectest6.result View File

@@ -1 +1,3 @@
[echo] some message6
[echo] some message7
[echo] some message8

+ 4
- 0
src/etc/testcases/taskdefs/recorder2.xml View File

@@ -7,6 +7,10 @@
<target name="test6">
<record name="${recdir}/rectest6.log" action="start" />
<echo message="some message6"/>
<record name="${recdir}/rectest5.log" action="stop" />
<echo message="some message7"/>
<record name="${recdir}/rectest5.log" action="start" />
<echo message="some message8"/>
<record name="${recdir}/rectest6.log" action="stop" />
</target>
</project>

+ 13
- 12
src/main/org/apache/tools/ant/taskdefs/Recorder.java View File

@@ -18,6 +18,8 @@
package org.apache.tools.ant.taskdefs;

import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -64,7 +66,7 @@ public class Recorder extends Task implements SubBuildListener {
private int loglevel = -1;
/** Strip task banners if true. */
private boolean emacsMode = false;
/** The recorder entries keyed by Project. Each value is another Hashtable of filename to RecorderEntry. */
/** The list of recorder entries. */
private static Hashtable recorderEntries = new Hashtable();

//////////////////////////////////////////////////////////////////////
@@ -203,12 +205,7 @@ public class Recorder extends Task implements SubBuildListener {
*/
protected RecorderEntry getRecorder(String name, Project proj)
throws BuildException {
Hashtable entries = (Hashtable) recorderEntries.get(proj);
if (null == entries) {
entries = new Hashtable();
recorderEntries.put(proj, entries);
}
Object o = entries.get(name);
Object o = recorderEntries.get(name);
RecorderEntry entry;

if (o == null) {
@@ -221,7 +218,7 @@ public class Recorder extends Task implements SubBuildListener {
entry.openFile(append.booleanValue());
}
entry.setProject(proj);
entries.put(name, entry);
recorderEntries.put(name, entry);
} else {
entry = (RecorderEntry) o;
}
@@ -311,10 +308,14 @@ public class Recorder extends Task implements SubBuildListener {
* @since Ant 1.7
*/
private void cleanup() {
Hashtable entries = (Hashtable) recorderEntries.get(getProject());
if (null != entries) {
entries.clear();
recorderEntries.remove(entries);
Hashtable entries = (Hashtable) recorderEntries.clone();
Iterator itEntries = entries.entrySet().iterator();
while (itEntries.hasNext()) {
Map.Entry entry = (Map.Entry) itEntries.next();
RecorderEntry re = (RecorderEntry) entry.getValue();
if (re.getProject() == getProject()) {
recorderEntries.remove(entry.getKey());
}
}
getProject().removeBuildListener(this);
}


+ 9
- 0
src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java View File

@@ -298,6 +298,15 @@ public class RecorderEntry implements BuildLogger, SubBuildListener {
}
}

/**
* Get the project associated with this recorder entry.
*
* @since 1.8.0
*/
public Project getProject() {
return project;
}

/**
* @since 1.6.2
*/


Loading…
Cancel
Save