logging is now done more appropriately... still waiting for idefix' introduction...
[mir.git] / source / mircoders / localizer / basic / MirBasicProducerLocalizer.java
index 7089b0e..621b026 100755 (executable)
@@ -2,12 +2,14 @@ package mircoders.localizer.basic;
 
 import java.util.*;
 import mir.producer.*;
+import mir.misc.*;
 import mircoders.global.*;
 import mircoders.localizer.*;
 import mircoders.producer.*;
 
 public class MirBasicProducerLocalizer implements MirProducerLocalizer {
   private Map producerFactories;
+  protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
 
   public MirBasicProducerLocalizer() {
     producerFactories = new HashMap();
@@ -19,32 +21,49 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer {
     return producerFactories;
   };
 
+  protected void setupContentFactory(CompositeProducerNode aProducerNode) {
+  }
+
+  protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
+  }
+
+  protected void setupSynchronizationFactory(CompositeProducerNode aProducerNode) {
+    if(MirGlobal.getConfigBooleanProperty("Rsync")){
+      aProducerNode.addSubNode(
+        new ScriptCallingProducerNode(MirGlobal.getConfigProperty("Rsync.Script.Path"))
+      );
+    }
+  }
+
+  protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
+  }
+
+  protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
+  }
+
   protected void setupFactories(Map aFactoriesMap ) {
+    CompositeProducerNode node;
 
-    aFactoriesMap.put(
-      "content",
-      new ContentProducerFactory(
-      MirGlobal.getConfigProperty("Producer.Content.Template"),
-      "bundles.admin",
-      MirGlobal.getConfigProperty("Producer.StorageRoot"),
-      ".shtml",
-      Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
+    node = new CompositeProducerNode();
+    setupContentFactory( node );
+    aFactoriesMap.put("content", new NodedProducerFactory(node));
 
-    aFactoriesMap.put("oldstartpage", new OldProducerAdapterFactory(new ProducerStartPage()));
-    aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
-    aFactoriesMap.put("navigation", new OldProducerAdapterFactory(new ProducerNavigation()));
-    aFactoriesMap.put("openposting", new OldProducerAdapterFactory(new ProducerOpenPosting()));
-    aFactoriesMap.put("topics", new OldProducerAdapterFactory(new ProducerTopics()));
+    node = new CompositeProducerNode();
+    setupStartPageFactory( node );
+    aFactoriesMap.put("startpage", new NodedProducerFactory(node));
 
-    aFactoriesMap.put("startpage", new StartPageProducerFactory(
-      MirGlobal.getConfigProperty("Producer.StartPage.Template"),
-      "bundles.admin",
-      MirGlobal.getConfigProperty("Producer.StorageRoot") + "/index.shtml",
-      MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
-      MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
+    node = new CompositeProducerNode();
+    setupSynchronizationFactory( node );
+    aFactoriesMap.put("synchronization", new NodedProducerFactory(node));
 
-    if(MirGlobal.getConfigBooleanProperty("Rsync")){
-      aFactoriesMap.put("sync", new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
-    }
+    node = new CompositeProducerNode();
+    setupStaticFactory( node );
+    aFactoriesMap.put("static", new NodedProducerFactory(node));
+
+    node = new CompositeProducerNode();
+    setupTopicsFactory( node );
+    aFactoriesMap.put("topics", new NodedProducerFactory(node));
+
+    aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
   };
 }