bugfixes regarding automatically producing all media after a posting
authorzapata <zapata>
Wed, 12 Jun 2002 21:39:52 +0000 (21:39 +0000)
committerzapata <zapata>
Wed, 12 Jun 2002 21:39:52 +0000 (21:39 +0000)
source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java
source/mircoders/localizer/basic/MirBasicProducerLocalizer.java
source/mircoders/producer/CompositeProducer.java [new file with mode: 0755]
source/mircoders/producer/CompositeProducerFactory.java [new file with mode: 0755]
source/mirlocal/bolivia.indymedia.org/BoliviaOpenPostingLocalizer.java
source/mirlocal/bolivia.indymedia.org/BoliviaProducerToolLocalizer.java

index f5647d7..955c393 100755 (executable)
@@ -11,8 +11,8 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
   protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
 
   public void afterContentPosting() {
-    MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("media", "new");
+    MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("startpage", "(default)");
     MirGlobal.producerEngine().addJob("synchronization", "run");
 
index 621b026..f35ede5 100755 (executable)
@@ -64,6 +64,13 @@ public class MirBasicProducerLocalizer implements MirProducerLocalizer {
     setupTopicsFactory( node );
     aFactoriesMap.put("topics", new NodedProducerFactory(node));
 
-    aFactoriesMap.put("images", new OldProducerAdapterFactory(new ProducerImages()));
+    aFactoriesMap.put("media",
+      new CompositeProducerFactory( new ProducerFactory[] {
+        new OldProducerAdapterFactory(new ProducerImages()),
+        new OldProducerAdapterFactory(new ProducerAudio()),
+        new OldProducerAdapterFactory(new ProducerVideo()),
+        new OldProducerAdapterFactory(new ProducerOther())
+      } )
+    );
   };
 }
diff --git a/source/mircoders/producer/CompositeProducer.java b/source/mircoders/producer/CompositeProducer.java
new file mode 100755 (executable)
index 0000000..9ce0c0d
--- /dev/null
@@ -0,0 +1,27 @@
+package mircoders.producer;
+
+import java.util.*;
+import java.io.*;
+import mir.producer.*;
+
+public class CompositeProducer implements mir.producer.Producer {
+
+  List producers;
+
+  public CompositeProducer() {
+    producers = new Vector();
+  }
+
+  public void addProducer(mir.producer.Producer aProducer) {
+    producers.add(aProducer);
+  }
+
+  public void produce( PrintWriter aLogger ) throws ProducerFailure {
+    Iterator i;
+
+    i=producers.iterator();
+
+    while (i.hasNext())
+      ((mir.producer.Producer) i.next()).produce(aLogger);
+  }
+}
diff --git a/source/mircoders/producer/CompositeProducerFactory.java b/source/mircoders/producer/CompositeProducerFactory.java
new file mode 100755 (executable)
index 0000000..a060b1d
--- /dev/null
@@ -0,0 +1,62 @@
+package mircoders.producer;
+
+import java.util.*;
+import mir.entity.*;
+import mir.producer.*;
+
+public class CompositeProducerFactory implements ProducerFactory {
+  Map factories;          // verb -> Vector ( ProducerFactory )
+
+  public CompositeProducerFactory() {
+    factories = new HashMap();
+  }
+
+  public CompositeProducerFactory(ProducerFactory[] aSubProducerFactories) {
+    this();
+
+    int i;
+
+    for (i=0; i<aSubProducerFactories.length; i++) {
+      addFactory(aSubProducerFactories[i]);
+    }
+  }
+
+  private List factoriesForVerb(String aVerb) {
+    List result;
+
+    result=(List) factories.get(aVerb);
+
+    if (result==null) {
+      result=new Vector();
+
+      factories.put(aVerb, result);
+    }
+
+    return result;
+  }
+
+  public void addFactory(ProducerFactory aFactory) {
+    Iterator i;
+
+    i=aFactory.verbs();
+
+    while (i.hasNext()) {
+      factoriesForVerb((String) i.next()).add(aFactory);
+    }
+  }
+
+  public mir.producer.Producer makeProducer(String aVerb) throws ProducerFailure {
+    CompositeProducer result = new CompositeProducer();
+
+    Iterator i=factoriesForVerb(aVerb).iterator();
+
+    while (i.hasNext())
+      result.addProducer(((ProducerFactory) i.next()).makeProducer(aVerb));
+
+    return result;
+  }
+
+  public Iterator verbs() {
+    return factories.keySet().iterator();
+  }
+}
index 12a7f96..edf1994 100755 (executable)
@@ -7,8 +7,8 @@ import mircoders.localizer.basic.*;
 public class BoliviaOpenPostingLocalizer extends MirBasicOpenPostingLocalizer {
 
   public void afterContentPosting() {
-    MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("media", "new");
+    MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("startpage", "(default)");
     MirGlobal.producerEngine().addJob("synchronization", "run");
 
index d84adfe..f4513c4 100755 (executable)
@@ -12,4 +12,10 @@ import mircoders.localizer.basic.*;
 import mircoders.global.*;
 
 public class BoliviaProducerToolLocalizer extends MirBasicProducerToolLocalizer {
+  public void initializeGenerationValueSet(Map aValueSet) {
+    super.initializeGenerationValueSet(aValueSet);
+
+    ((Map) aValueSet.get("config")).put("adminUrl", MirGlobal.getConfigProperty("Producer.AdminUrl"));
+  }
 }
+