From: zapata Date: Wed, 1 May 2002 14:21:44 +0000 (+0000) Subject: support for custom encodings added to producers X-Git-Tag: prexmlproducerconfig~88 X-Git-Url: http://erislabs.net/gitweb/?p=mir.git;a=commitdiff_plain;h=6cb57fdf7f8d41a234e22462cdb05021b5c5b8ff support for custom encodings added to producers --- diff --git a/source/mircoders/localizer/MirProducerToolLocalizer.java b/source/mircoders/localizer/MirProducerToolLocalizer.java index 8bebd115..5a1c44a4 100755 --- a/source/mircoders/localizer/MirProducerToolLocalizer.java +++ b/source/mircoders/localizer/MirProducerToolLocalizer.java @@ -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); } diff --git a/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java b/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java index 1780124b..c8cbc53b 100755 --- a/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicProducerToolLocalizer.java @@ -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(); + }; } diff --git a/source/mircoders/producer/ContentProducer.java b/source/mircoders/producer/ContentProducer.java index 5790063a..424fa717 100755 --- a/source/mircoders/producer/ContentProducer.java +++ b/source/mircoders/producer/ContentProducer.java @@ -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); diff --git a/source/mircoders/producer/StartPageProducer.java b/source/mircoders/producer/StartPageProducer.java index e08595d1..0602c5c1 100755 --- a/source/mircoders/producer/StartPageProducer.java +++ b/source/mircoders/producer/StartPageProducer.java @@ -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) {