import mir.log.LoggerWrapper;\r
import mir.producer.AbstractProducerNode;\r
import mir.util.ParameterExpander;\r
+import mir.util.StringRoutines;\r
import mircoders.global.MirGlobal;\r
\r
import java.io.File;\r
import java.io.FileNotFoundException;\r
import java.io.FileOutputStream;\r
-import java.io.IOException;\r
import java.io.OutputStream;\r
import java.io.OutputStreamWriter;\r
-import java.io.Writer;\r
import java.io.PrintWriter;\r
import java.util.Collection;\r
+import java.util.HashMap;\r
import java.util.Iterator;\r
+import java.util.List;\r
import java.util.Map;\r
\r
public class ChangeReportingProducerNode extends AbstractProducerNode {\r
private String format;\r
private String outputFile;\r
private String basePath;\r
- private String baseUrl;\r
private String exclusionList;\r
\r
- public ChangeReportingProducerNode(String anOutputFile, String aFormat, String aBasePath, String aBaseUrl, String anExclusionList) {\r
+ public ChangeReportingProducerNode(String anOutputFile, String aFormat, String aBasePath, String anExclusionList) {\r
format = aFormat;\r
outputFile = anOutputFile;\r
basePath = aBasePath;\r
- baseUrl = aBaseUrl;\r
exclusionList = anExclusionList;\r
}\r
\r
PrintWriter writer = new PrintWriter(new OutputStreamWriter(stream));\r
try {\r
String expandedBasePath = ParameterExpander.expandExpression(aValueMap, basePath);\r
- Collection changes = MirGlobal.getChangeEngine().getTracker().flushChanges(expandedBasePath);\r
+\r
+ List excludedPaths = null;\r
+ if (exclusionList != null) {\r
+ String expandedExclusionList = ParameterExpander.expandExpression(aValueMap, exclusionList);\r
+ excludedPaths = StringRoutines.separateString(expandedExclusionList, ",");\r
+ }\r
+\r
+ Collection changes = MirGlobal.getChangeEngine().getTracker().flushChanges(expandedBasePath, excludedPaths);\r
\r
Iterator i = changes.iterator();\r
while (i.hasNext()) {\r
ChangeTracker.Change change = (ChangeTracker.Change) i.next();\r
\r
- aValueMap.put("change", change);\r
+ Map changeMap = new HashMap();\r
+\r
+ // the absolute path of the change needs to be transformed into a path relative\r
+ // to base\r
+ changeMap.put("path", change.getPath().substring(expandedBasePath.length()));\r
+ changeMap.put("type", change.getType().getName());\r
+ changeMap.put("date", change.getDate());\r
+\r
+ aValueMap.put("change", changeMap);\r
String line = ParameterExpander.expandExpression(aValueMap, format);\r
writer.println(line);\r
}\r