first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / mircoders / producer / Producer.java
index d3e0553..c875958 100755 (executable)
@@ -14,30 +14,40 @@ import mircoders.storage.*;
 
 abstract public class Producer {
 
-       protected static String producerDocRoot = MirConfig.getProp("Producer.DocRoot");
-  protected static String producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
-       protected static String producerProductionHost = MirConfig.getProp("Producer.ProductionHost");
-       protected static String producerOpenAction = MirConfig.getProp("Producer.OpenAction");;
-       protected static Logfile theLog = Logfile.getInstance("Producer");
-       protected static ModuleTopics         topicsModule;
+  protected static String   producerDocRoot = MirConfig.getProp("Producer.DocRoot");
+  protected static String   producerStorageRoot = MirConfig.getProp("Producer.StorageRoot");
+  protected static String   producerProductionHost = MirConfig.getProp("Producer.ProductionHost");
+  protected static String   producerOpenAction = MirConfig.getProp("Producer.OpenAction");;
+
+  /** @todo same as in HTMLTemplateProcessor, this should be dynamically set */
+  protected static String   actionRoot = MirConfig.getProp("RootUri") + "/servlet/Mir";
+
+  protected static Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home") + "/" + MirConfig.getProp("Producer.Logfile"));
+  protected static ModuleTopics         topicsModule;
   protected static ModuleLinksImcs      linksImcsModule;
-       protected static ModuleSchwerpunkt    schwerpunktModule;
-       protected static ModuleFeature        featureModule;
-       protected static ModuleContent        contentModule;
-       protected static ModuleImages         imageModule;
-       protected static ModuleUploadedMedia  uploadedMediaModule;
+  protected static ModuleSchwerpunkt    schwerpunktModule;
+  protected static ModuleFeature        featureModule;
+  protected static ModuleContent        contentModule;
+  protected static ModuleImages         imageModule;
+  protected static ModuleUploadedMedia  uploadedMediaModule;
 
   static {
                // init
     try {
-                       contentModule = new ModuleContent(DatabaseContent.getInstance());
-                       topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
+
+      contentModule = new ModuleContent(DatabaseContent.getInstance());
+      topicsModule = new ModuleTopics(DatabaseTopics.getInstance());
       linksImcsModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
-                       schwerpunktModule = new ModuleSchwerpunkt(DatabaseFeature.getInstance());
-                       featureModule = new ModuleFeature(DatabaseFeature.getInstance());
-                       imageModule = new ModuleImages(DatabaseImages.getInstance());
-                       uploadedMediaModule = new ModuleUploadedMedia(DatabaseImages.getInstance());
-               } catch(StorageObjectException e) {;}
+      schwerpunktModule = new ModuleSchwerpunkt(DatabaseFeature.getInstance());
+      featureModule = new ModuleFeature(DatabaseFeature.getInstance());
+      imageModule = new ModuleImages(DatabaseImages.getInstance());
+      uploadedMediaModule = new ModuleUploadedMedia(DatabaseImages.getInstance());
+
+    }
+    catch(StorageObjectException e)
+    {
+      System.err.println("*** failed to initialize Producer " + e.toString());
+    }
   }
 
        public void handle(PrintWriter htmlout, EntityUsers user)
@@ -76,9 +86,10 @@ abstract public class Producer {
                        outputFile.close();
                        outStream.close();
 
-                       printHTML(htmlout, "Produced <a href=\"" + producerProductionHost+  filename + "\">" + filename + "</a>");
+                       printHTML(htmlout, "Produced <a href=\"" + producerProductionHost+
+                        filename + "\">" + filename + "</a>");
                        //theLog.printInfo("Produced: " + producerStorageRoot + filename);
-      //theLog.printDebugInfo("free mem:" + java.lang.Runtime.getRuntime().freeMemory());
+                       //theLog.printDebugInfo("free mem:" + java.lang.Runtime.getRuntime().freeMemory());
       //theLog.printDebugInfo("total mem:" + java.lang.Runtime.getRuntime().totalMemory());
                        return true;
 
@@ -141,6 +152,18 @@ abstract public class Producer {
        /**
         * logging
         */
+
+  public void logHTMLFinish(PrintWriter htmlout,String moduleName, int pageCount, long startTime, long endTime) {
+    // timing and message to browser
+    long overall = endTime - startTime;
+    int pagesPerMinute=0; float perMinute = (float)overall/(float)60000;
+    if (perMinute >0) pagesPerMinute = (int) ((float)pageCount / perMinute);
+
+    logHTML(htmlout, "Producer."+moduleName+" finished producing: " +
+            overall + " ms for "+ pageCount+" Pages = " +pagesPerMinute + " pages/min");
+    logHTML(htmlout, "Back to <a href=\""+actionRoot+"\">Admin-Startage</a>");
+  }
+
        public void logHTML(PrintWriter out, String s) {
                _print(out, s, true);
        }