X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fproducer%2FContentProducer.java;h=5790063a33f8f0094f2589978bdfd887e20a6def;hb=6a5286a1e7f2db55a7d312bb9b1ef40453b3612d;hp=428331b46d1a5a75c6f70fa439577772b5e1da4e;hpb=47a1f9d32e70436a3a92214296430184fabf6576;p=mir.git
diff --git a/source/mircoders/producer/ContentProducer.java b/source/mircoders/producer/ContentProducer.java
index 428331b4..5790063a 100755
--- a/source/mircoders/producer/ContentProducer.java
+++ b/source/mircoders/producer/ContentProducer.java
@@ -3,6 +3,7 @@ package mircoders.producer;
import java.io.*;
import java.util.*;
+import mir.util.*;
import mir.misc.*;
import mir.entity.*;
import mir.producer.*;
@@ -21,8 +22,8 @@ public class ContentProducer implements mir.producer.Producer {
private String generatorIdentifier;
private String resourceBundle;
- private String outputFilePrefix;
- private String outputFilePostfix;
+ private String outputFileExpression;
+
EntityBrowser browser;
@@ -30,51 +31,32 @@ public class ContentProducer implements mir.producer.Producer {
EntityBrowser aBrowser,
String aGeneratorIdentifier,
String aResourceBundle,
- String anOutputFilePrefix,
- String anOutputFilePostfix) {
+ String anOutputFileExpression) {
browser = aBrowser;
- generatorIdentifier=aGeneratorIdentifier;
- resourceBundle=aResourceBundle;
- outputFilePrefix=anOutputFilePrefix;
- outputFilePostfix=anOutputFilePostfix;
+ generatorIdentifier = aGeneratorIdentifier;
+ resourceBundle = aResourceBundle;
+ outputFileExpression = anOutputFileExpression;
}
public void produce( PrintWriter aLogger ) throws ProducerException {
EntityContent content;
- Map configMap = new HashMap();
Map generationValues = new HashMap();
Map dataMap = new HashMap();
String fileName;
-
-
- configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));
- configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));
- configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));
- configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));
- configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));
- configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));
- configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));
- configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));
- configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));
- configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
- configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
- configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
- generationValues.put("config", configMap);
+ MirGlobal.localizer().producerTool().initializeGenerationValueSet(generationValues);
MessageResources messages = MessageResources.getMessageResources(resourceBundle);
generationValues.put("lang", new MessageMethodModel(null, messages) );
generationValues.put("data", dataMap);
-
-
try {
Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
- aLogger.println("ContentProducer.produce:
");
- aLogger.println("generatorIdentifier = " + generatorIdentifier + "
");
+ aLogger.println("ContentProducer.produce:");
+ aLogger.println("generatorIdentifier = " + generatorIdentifier);
while (browser.hasNext()) {
content = (EntityContent) browser.next();
@@ -82,11 +64,16 @@ public class ContentProducer implements mir.producer.Producer {
String date = content.getValue("date");
- fileName = outputFilePrefix + "/" +
- date.substring(0,4) + "/" + date.substring(4,6) + "/" +
- content.getValue("id") + outputFilePostfix;
+ // ML: this will be done more elegantly soon!
+ dataMap.put("contentmonth", date.substring(4,6));
+ dataMap.put("contentyear", date.substring(0,4));
+ dataMap.put("contentid", content.getValue("id"));
+
+ aLogger.println("unparsed fileName = " + outputFileExpression);
+
+ fileName = ParameterExpander.expandExpression(dataMap, outputFileExpression);
- aLogger.println("fileName = " + fileName + "
");
+ aLogger.println("fileName = " + fileName);
try {
File file = new File(fileName);
@@ -99,31 +86,31 @@ public class ContentProducer implements mir.producer.Producer {
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
- aLogger.println("generating: " + fileName + "
");
+ aLogger.println("generating: " + fileName);
generator.generate(printWriter, generationValues, aLogger);
printWriter.close();
fileWriter.close();
content.setProduced(true);
- aLogger.println("done generating: " + fileName + "
");
+ aLogger.println("done generating: " + fileName);
}
catch (Exception e) {
- aLogger.println("exception while generating " + fileName + ":
");
- aLogger.println(e.getMessage() + "
");
+ aLogger.println("exception while generating " + fileName + ":");
+ aLogger.println(e.getMessage());
e.printStackTrace(aLogger);
aLogger.flush();
}
}
}
catch (Exception e) {
- aLogger.println("exception while generating:
");
- aLogger.println(e.getMessage() + "
");
+ aLogger.println("exception while generating:");
+ aLogger.println(e.getMessage());
e.printStackTrace(aLogger);
aLogger.flush();
}
- aLogger.println("ContentProducer.produce: done
");
+ aLogger.println("ContentProducer.produce: done");
}