removed some debug code / use the producer engine now from ServletModuleProducer
authorzapata <zapata>
Sat, 27 Apr 2002 16:16:38 +0000 (16:16 +0000)
committerzapata <zapata>
Sat, 27 Apr 2002 16:16:38 +0000 (16:16 +0000)
source/mircoders/global/ProducerEngine.java
source/mircoders/producer/ContentProducer.java
source/mircoders/producer/StartPageProducerFactory.java
source/mircoders/servlet/ServletModuleProducer.java

index 267bd7c..3083837 100755 (executable)
@@ -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 + "><br>");
+                 long startTime;
+                 long endTime;
+
+                 startTime = System.currentTimeMillis();
+
+      aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")<br>");
+
+      if (producers == null)
+        aLogger.println("??<br>");
 
       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<br>");
     }
     catch (Throwable e) {
       try {
index 9387a7b..ec7b9d1 100755 (executable)
@@ -1,3 +1,136 @@
+<<<<<<< ContentProducer.java
+package mircoders.producer;\r
+\r
+import java.io.*;\r
+import java.util.*;\r
+\r
+import mir.misc.*;\r
+import mir.entity.*;\r
+import mir.producer.*;\r
+import mir.generator.*;\r
+\r
+import mircoders.localizer.*;\r
+import mircoders.global.*;\r
+import mircoders.entity.*;\r
+\r
+import org.apache.struts.util.MessageResources;\r
+\r
+// @todo ML: the file that gets generated should be better configurable\r
+\r
+public class ContentProducer implements mir.producer.Producer {\r
+\r
+  private String generatorIdentifier;\r
+  private String resourceBundle;\r
+\r
+  private String outputFilePrefix;\r
+  private String outputFilePostfix;\r
+\r
+  EntityBrowser browser;\r
+\r
+  public ContentProducer(\r
+    EntityBrowser aBrowser,\r
+    String aGeneratorIdentifier,\r
+    String aResourceBundle,\r
+    String anOutputFilePrefix,\r
+    String anOutputFilePostfix) {\r
+\r
+    browser = aBrowser;\r
+    generatorIdentifier=aGeneratorIdentifier;\r
+    resourceBundle=aResourceBundle;\r
+    outputFilePrefix=anOutputFilePrefix;\r
+    outputFilePostfix=anOutputFilePostfix;\r
+  }\r
+\r
+  public void produce( PrintWriter aLogger ) throws ProducerException {\r
+    EntityContent content;\r
+\r
+    Map configMap = new HashMap();\r
+    Map generationValues = new HashMap();\r
+    Map dataMap = new HashMap();\r
+    String fileName;\r
+\r
+\r
+\r
+               configMap.put("producerDocRoot", MirGlobal.getConfigProperty("Producer.DocRoot"));\r
+               configMap.put("storageRoot", MirGlobal.getConfigProperty("Producer.StorageRoot"));\r
+    configMap.put("productionHost", MirGlobal.getConfigProperty("Producer.ProductionHost"));\r
+               configMap.put("openAction", MirGlobal.getConfigProperty("Producer.OpenAction"));\r
+               configMap.put("docRoot", MirGlobal.getConfigProperty("RootUri"));\r
+               configMap.put("now", StringUtil.date2readableDateTime(new GregorianCalendar()));\r
+               configMap.put("videoHost", MirGlobal.getConfigProperty("Producer.Video.Host"));\r
+               configMap.put("audioHost", MirGlobal.getConfigProperty("Producer.Audio.Host"));\r
+               configMap.put("imageHost", MirGlobal.getConfigProperty("Producer.Image.Host"));\r
+               configMap.put("imagePath", MirGlobal.getConfigProperty("Producer.Image.Path"));\r
+               configMap.put("mirVersion", MirGlobal.getConfigProperty("Mir.Version"));\r
+               configMap.put("compressWhitespace", new freemarker.template.utility.CompressWhitespace() );\r
+    generationValues.put("config", configMap);\r
+\r
+               MessageResources messages = MessageResources.getMessageResources(resourceBundle);\r
+               generationValues.put("lang", new MessageMethodModel(null, messages) );\r
+               generationValues.put("data", dataMap);\r
+\r
+\r
+\r
+    try {\r
+      Generator generator = MirGlobal.localizer().generators().makeGenerator(generatorIdentifier);\r
+\r
+      aLogger.println("ContentProducer.produce:<br>");\r
+      aLogger.println("generatorIdentifier = " + generatorIdentifier + "<br>");\r
+\r
+      while (browser.hasNext()) {\r
+        content = (EntityContent) browser.next();\r
+        dataMap.put("content", content);\r
+\r
+        String date = content.getValue("date");\r
+\r
+        fileName = outputFilePrefix + "/" +\r
+                date.substring(0,4) + "/" + date.substring(4,6) + "/" +\r
+                content.getValue("id") + outputFilePostfix;\r
+\r
+        aLogger.println("fileName = " + fileName + "<br>");\r
+\r
+        try {\r
+          File file = new File(fileName);\r
+\r
+          File dir = new File(file.getParent());\r
+          if (!dir.exists()){\r
+            dir.mkdirs();\r
+          }\r
+\r
+          FileWriter fileWriter = new FileWriter(file);\r
+          PrintWriter printWriter = new PrintWriter(fileWriter);\r
+\r
+          aLogger.println("generating: " + fileName + "<br/>");\r
+\r
+          generator.generate(printWriter, generationValues, aLogger);\r
+          printWriter.close();\r
+          fileWriter.close();\r
+          content.setProduced(true);\r
+\r
+          aLogger.println("done generating: " + fileName + "<br/>");\r
+        }\r
+        catch (Exception e) {\r
+          aLogger.println("exception while generating " + fileName + ":<br/>");\r
+          aLogger.println(e.getMessage() + "<br/>");\r
+          e.printStackTrace(aLogger);\r
+          aLogger.flush();\r
+        }\r
+      }\r
+    }\r
+    catch (Exception e) {\r
+      aLogger.println("exception while generating:<br/>");\r
+      aLogger.println(e.getMessage() + "<br/>");\r
+      e.printStackTrace(aLogger);\r
+      aLogger.flush();\r
+    }\r
+\r
+    aLogger.println("ContentProducer.produce: done<br>");\r
+\r
+  }\r
+\r
+}\r
+\r
+=======
 package mircoders.producer;
 
 import java.io.*;
@@ -137,3 +270,4 @@ public class ContentProducer implements mir.producer.Producer {
 
 }
 
+>>>>>>> 1.1.2.2
index ad30d67..d474338 100755 (executable)
@@ -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);
index f9d820b..b30ae48 100755 (executable)
@@ -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