support for custom encodings added to producers
authorzapata <zapata>
Wed, 1 May 2002 14:21:44 +0000 (14:21 +0000)
committerzapata <zapata>
Wed, 1 May 2002 14:21:44 +0000 (14:21 +0000)
source/mircoders/localizer/MirProducerToolLocalizer.java
source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java
source/mircoders/producer/ContentProducer.java
source/mircoders/producer/StartPageProducer.java

index 8bebd11..5a1c44a 100755 (executable)
@@ -1,7 +1,10 @@
 package mircoders.localizer;
 
 import java.util.*;
+import java.io.*;
 
 public interface MirProducerToolLocalizer {
   public void initializeGenerationValueSet(Map aValueSet);
+  public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException;
+  public void closeWriter(PrintWriter aWriter);
 }
index 1780124..c8cbc53 100755 (executable)
@@ -1,6 +1,7 @@
 package mircoders.localizer.basic;
 
 import java.util.*;
+import java.io.*;
 import freemarker.template.utility.*;
 import mir.misc.*;
 import mircoders.localizer.*;
@@ -25,7 +26,34 @@ public class MirBasicProducerToolLocalizer implements MirProducerToolLocalizer {
                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();
+  };
 }
index 5790063..424fa71 100755 (executable)
@@ -76,21 +76,14 @@ public class ContentProducer implements mir.producer.Producer {
         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);
index e08595d..0602c5c 100755 (executable)
@@ -48,25 +48,11 @@ public class StartPageProducer implements mir.producer.Producer {
   }
 
   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) );
@@ -79,20 +65,14 @@ public class StartPageProducer implements mir.producer.Producer {
                  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) {