Updated MediaGeneratingProducerNode to use the baseStoragePath and publish_path
[mir.git] / source / mircoders / producer / MediaGeneratingProducerNode.java
index 584cbeb..6946eb3 100755 (executable)
@@ -30,6 +30,8 @@
 
 package mircoders.producer;
 
+import mir.changetracker.ChangeTracker;
+import mir.changetracker.ChangeType;
 import mir.entity.Entity;
 import mir.entity.adapter.EntityAdapter;
 import mir.log.LoggerWrapper;
@@ -38,6 +40,7 @@ import mir.producer.AbstractProducerNode;
 import mir.producer.ProducerExc;
 import mir.util.ParameterExpander;
 import mircoders.entity.EntityUploadedMedia;
+import mircoders.global.MirGlobal;
 import mircoders.media.MediaHelper;
 import mircoders.storage.DatabaseUploadedMedia;
 
@@ -61,12 +64,15 @@ public class MediaGeneratingProducerNode extends AbstractProducerNode {
       data = ParameterExpander.findValueForKey( aValueMap, mediaEntityKey );
 
       if (!(data instanceof EntityAdapter)) {
-        throw new ProducerExc("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an EntityAdapter, but an " + data.getClass().getName());
+        throw new ProducerExc("MediaGeneratingProducerNode: value of '" +
+            mediaEntityKey + "' is not an EntityAdapter, but an " + data.getClass().getName());
       }
 
       entity = ((EntityAdapter) data).getEntity();
-      if (! (entity instanceof EntityUploadedMedia)) {
-        throw new ProducerExc("MediaGeneratingProducerNode: value of '"+mediaEntityKey+"' is not an uploaded media EntityAdapter, but a " + entity.getClass().getName() + " adapter");
+      if (!(entity instanceof EntityUploadedMedia)) {
+        throw new ProducerExc("MediaGeneratingProducerNode: value of '" +
+            mediaEntityKey + "' is not an uploaded media EntityAdapter, but a " +
+            entity.getClass().getName() + " adapter");
       }
 
       uploadedMediaEntity = (EntityUploadedMedia) entity;
@@ -80,7 +86,14 @@ public class MediaGeneratingProducerNode extends AbstractProducerNode {
       entity.setFieldValue("is_produced", "1");
       entity.update();
 
-      aLogger.info("media with id "+uploadedMediaEntity.getFieldValue("id") + ", mediaType " + mediaType.getFieldValue("name") + " successfully produced");
+      // Inform the Change Reporter of the change
+      StringBuffer imagepath = new StringBuffer(currentMediaHandler.getBaseStoragePath());
+      imagepath.append(entity.getFieldValue("publish_path").substring(1));
+      ChangeTracker tracker = MirGlobal.getChangeEngine().getTracker();
+      tracker.addChange(imagepath.toString(), ChangeType.MODIFICATION);
+      
+      aLogger.info("media with id " + uploadedMediaEntity.getFieldValue("id") +
+          ", mediaType " + mediaType.getFieldValue("name") + " successfully produced");
     }
     catch (Throwable t) {
       String message = "Error while generating media";