producer XML configuration support: Producers can be set up using an XML input
[mir.git] / source / mircoders / global / ProducerEngine.java
index 19f9496..1fb9e60 100755 (executable)
@@ -18,8 +18,8 @@ public class ProducerEngine {
     producerJobQueue = new JobQueue();
     try {
       RandomAccessFile raFile = (new RandomAccessFile(MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Producer.Logfile"), "rw"));
-                       raFile.seek(raFile.length());
-               log = new PrintWriter(new FileWriter( raFile.getFD()));
+                        raFile.seek(raFile.length());
+                log = new PrintWriter(new FileWriter( raFile.getFD()));
     }
     catch (Exception e) {
 //      throw new ProducerEngineRuntimeExc("Creating PrintWriter log failed",e);
@@ -61,10 +61,11 @@ public class ProducerEngine {
 
   private void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) {
     try {
-                 long startTime;
-                 long endTime;
+      long startTime;
+      long endTime;
+      Map startingMap = new HashMap();
 
-                 startTime = System.currentTimeMillis();
+      startTime = System.currentTimeMillis();
 
       aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")");
 
@@ -73,13 +74,14 @@ public class ProducerEngine {
       if (factory == null )
         throw new Exception("No producer factory '"+aProducerFactory+"' present.");
 
-      Producer producer = factory.makeProducer(aVerb);
+      MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(startingMap);
+      Producer producer = factory.makeProducer(aVerb, startingMap);
 
       producer.produce(aLogger);
 
-                 endTime = System.currentTimeMillis();
+      endTime = System.currentTimeMillis();
 
-                 aLogger.println("Time: " + (endTime-startTime) + " ms<br>");
+      aLogger.println("Time: " + (endTime-startTime) + " ms<br>");
     }
     catch (Throwable e) {
       try {
@@ -104,18 +106,21 @@ public class ProducerEngine {
     public void execute() {
       ProducerFactory factory;
       Producer producer;
-                 long startTime;
-                 long endTime;
+      long startTime;
+      long endTime;
+      Map startingMap = new HashMap();
 
-                 startTime = System.currentTimeMillis();
+      startTime = System.currentTimeMillis();
       log.println("Producing job: "+factoryName+"."+verb);
 
       try {
         factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get( factoryName );
 
         if (factory!=null) {
+          MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(startingMap);
+
           synchronized(factory) {
-            producer = factory.makeProducer(verb);
+            producer = factory.makeProducer(verb, startingMap);
           }
           if (producer!=null) {
             producer.produce(log);
@@ -127,10 +132,10 @@ public class ProducerEngine {
         t.printStackTrace(log);
       }
       log.println("Done producing job: "+factoryName+"."+verb);
-                 endTime = System.currentTimeMillis();
+                  endTime = System.currentTimeMillis();
 
-                 log.println("Time: " + (endTime-startTime) + " ms");
-                 log.flush();
+                  log.println("Time: " + (endTime-startTime) + " ms");
+                  log.flush();
     }
   }