package mircoders.localizer.basic;
import java.util.*;
+import java.io.*;
import freemarker.template.utility.*;
import mir.misc.*;
import mircoders.localizer.*;
configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));
configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));
configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );
+ configMap.put("defEncoding", MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
aValueSet.put("config", configMap);
};
+
+ public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException {
+ File file;
+ File dir;
+
+ try {
+ file = new File( anIdentifier );
+ dir = new File(file.getParent());
+ if (dir!=null && !dir.exists()){
+ dir.mkdirs();
+ }
+
+ return new PrintWriter(
+ new OutputStreamWriter(
+ new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding")
+ )
+ );
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerException(t);
+ }
+ };
+
+ public void closeWriter(PrintWriter aWriter) {
+ aWriter.close();
+ };
}
aLogger.println("fileName = " + fileName);
try {
- File file = new File(fileName);
+ aLogger.println("generating: " + fileName);
- File dir = new File(file.getParent());
- if (!dir.exists()){
- dir.mkdirs();
- }
+ PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(fileName);
- FileWriter fileWriter = new FileWriter(file);
- PrintWriter printWriter = new PrintWriter(fileWriter);
+ generator.generate(printWriter, generationValues, aLogger);
- aLogger.println("generating: " + fileName);
+ MirGlobal.localizer().producerTool().closeWriter(printWriter);
- generator.generate(printWriter, generationValues, aLogger);
- printWriter.close();
- fileWriter.close();
content.setProduced(true);
aLogger.println("done generating: " + fileName);
}
public void produce( PrintWriter aLogger ) throws ProducerException {
- Map configMap = new HashMap();
Map generationValues = new HashMap();
Map dataMap = new HashMap();
try {
- 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) );
dataMap.put("breakingnews", breakingNews);
dataMap.put("topics", topics);
-
- Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
-
aLogger.println("StartPageProducer.produce:");
- aLogger.println("generatorIdentifier = " + generatorIdentifier);
-
- File file = new File(outputFile);
- FileWriter fileWriter = new FileWriter(file);
- PrintWriter printWriter = new PrintWriter(fileWriter);
-
aLogger.println("generating: " + outputFile);
+
+ Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);
+ PrintWriter printWriter = MirGlobal.localizer().producerTool().openWriter(outputFile);
generator.generate(printWriter, generationValues, aLogger);
- printWriter.close();
- fileWriter.close();
+ MirGlobal.localizer().producerTool().closeWriter(printWriter);
+
aLogger.println("done");
}
catch (Exception e) {