From 7c9563ec8b9be9ab9331666b49923af083aabb37 Mon Sep 17 00:00:00 2001 From: zapata Date: Sat, 27 Apr 2002 16:16:38 +0000 Subject: [PATCH] removed some debug code / use the producer engine now from ServletModuleProducer --- source/mircoders/global/ProducerEngine.java | 20 ++- source/mircoders/producer/ContentProducer.java | 134 +++++++++++++++++++++ .../producer/StartPageProducerFactory.java | 6 +- .../mircoders/servlet/ServletModuleProducer.java | 8 +- 4 files changed, 158 insertions(+), 10 deletions(-) diff --git a/source/mircoders/global/ProducerEngine.java b/source/mircoders/global/ProducerEngine.java index 267bd7c9..3083837c 100755 --- a/source/mircoders/global/ProducerEngine.java +++ b/source/mircoders/global/ProducerEngine.java @@ -10,20 +10,28 @@ public class ProducerEngine { private List Queue; private Thread queueThread; - void ProducerEngine() { + protected ProducerEngine() { producers = MirGlobal.localizer().producers().factories(); Queue = new Vector(); // queueThread = new Thread( } - void addTask(String aProducerFactory, String aVerb) { + public void addTask(String aProducerFactory, String aVerb) { produceNow(aProducerFactory, aVerb, new PrintWriter(new NullWriter())); } - void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) { + public void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) { try { - aLogger.println("Producing <" + aProducerFactory + "," + aVerb + ">
"); + long startTime; + long endTime; + + startTime = System.currentTimeMillis(); + + aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")
"); + + if (producers == null) + aLogger.println("??
"); ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory); @@ -33,6 +41,10 @@ public class ProducerEngine { Producer producer = factory.makeProducer(aVerb); producer.produce(aLogger); + + endTime = System.currentTimeMillis(); + + aLogger.println("Time: " + (endTime-startTime) + " ms
"); } catch (Throwable e) { try { diff --git a/source/mircoders/producer/ContentProducer.java b/source/mircoders/producer/ContentProducer.java index 9387a7bb..ec7b9d1d 100755 --- a/source/mircoders/producer/ContentProducer.java +++ b/source/mircoders/producer/ContentProducer.java @@ -1,3 +1,136 @@ +<<<<<<< ContentProducer.java +package mircoders.producer; + +import java.io.*; +import java.util.*; + +import mir.misc.*; +import mir.entity.*; +import mir.producer.*; +import mir.generator.*; + +import mircoders.localizer.*; +import mircoders.global.*; +import mircoders.entity.*; + +import org.apache.struts.util.MessageResources; + +// @todo ML: the file that gets generated should be better configurable + +public class ContentProducer implements mir.producer.Producer { + + private String generatorIdentifier; + private String resourceBundle; + + private String outputFilePrefix; + private String outputFilePostfix; + + EntityBrowser browser; + + public ContentProducer( + EntityBrowser aBrowser, + String aGeneratorIdentifier, + String aResourceBundle, + String anOutputFilePrefix, + String anOutputFilePostfix) { + + browser = aBrowser; + generatorIdentifier=aGeneratorIdentifier; + resourceBundle=aResourceBundle; + outputFilePrefix=anOutputFilePrefix; + outputFilePostfix=anOutputFilePostfix; + } + + 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); + + 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 + "
"); + + while (browser.hasNext()) { + content = (EntityContent) browser.next(); + dataMap.put("content", content); + + String date = content.getValue("date"); + + fileName = outputFilePrefix + "/" + + date.substring(0,4) + "/" + date.substring(4,6) + "/" + + content.getValue("id") + outputFilePostfix; + + aLogger.println("fileName = " + fileName + "
"); + + try { + File file = new File(fileName); + + File dir = new File(file.getParent()); + if (!dir.exists()){ + dir.mkdirs(); + } + + FileWriter fileWriter = new FileWriter(file); + PrintWriter printWriter = new PrintWriter(fileWriter); + + aLogger.println("generating: " + fileName + "
"); + + generator.generate(printWriter, generationValues, aLogger); + printWriter.close(); + fileWriter.close(); + content.setProduced(true); + + aLogger.println("done generating: " + fileName + "
"); + } + catch (Exception e) { + 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() + "
"); + e.printStackTrace(aLogger); + aLogger.flush(); + } + + aLogger.println("ContentProducer.produce: done
"); + + } + +} + +======= package mircoders.producer; import java.io.*; @@ -137,3 +270,4 @@ public class ContentProducer implements mir.producer.Producer { } +>>>>>>> 1.1.2.2 diff --git a/source/mircoders/producer/StartPageProducerFactory.java b/source/mircoders/producer/StartPageProducerFactory.java index ad30d67d..d4743388 100755 --- a/source/mircoders/producer/StartPageProducerFactory.java +++ b/source/mircoders/producer/StartPageProducerFactory.java @@ -39,10 +39,10 @@ public class StartPageProducerFactory implements ProducerFactory { generatorIdentifier, resourceBundle, outputFile, - contentModule.getFeatures(0,nrFeatures), contentModule.getNewsWire(0,nrNewswireItems), - breakingModule.getBreakingNews(), - topicsModule .getTopicsList()); + contentModule.getFeatures(0,nrFeatures), + topicsModule .getTopicsList(), + breakingModule.getBreakingNews()); } catch (Throwable e) { throw new ProducerException(e); diff --git a/source/mircoders/servlet/ServletModuleProducer.java b/source/mircoders/servlet/ServletModuleProducer.java index f9d820b4..b30ae48f 100755 --- a/source/mircoders/servlet/ServletModuleProducer.java +++ b/source/mircoders/servlet/ServletModuleProducer.java @@ -47,10 +47,12 @@ public class ServletModuleProducer extends ServletModule String producerParam = req.getParameter("producer"); String verbParam = req.getParameter("verb"); - ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam); - mir.producer.Producer producer = factory.makeProducer(verbParam); + MirGlobal.producerEngine().produceNow( producerParam, verbParam, out ); - producer.produce(out); +// ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam); +// mir.producer.Producer producer = factory.makeProducer(verbParam); + +// producer.produce(out); } else -- 2.11.0