The following classes now report changes to themselves (and icons if there are icons generated for that media type):
MediaHandlerImages
MediaHandlerImagesExtern
MediaHandlerMp3
MediaHandlerOgg
MediaHandlerRealAudio
MediaHandlerRealVideo
The reportChange protected method is in AbstractMediaHandler so that this method is available to all Media subclasses.
*/
package mir.producer;
-import mir.changetracker.ChangeTracker;
-import mir.changetracker.ChangeType;
+import java.util.HashMap;
+import java.util.Map;
+
import mir.generator.Generator;
import mir.generator.WriterEngine;
import mir.log.LoggerWrapper;
import mir.util.ParameterExpander;
-import mircoders.global.MirGlobal;
-
-import java.util.HashMap;
-import java.util.Map;
public class GeneratingProducerNode extends AbstractProducerNode {
private String generatorExpression;
endTime = System.currentTimeMillis();
aLogger.debug("Generated " + generatorIdentifier + " into " + destinationIdentifier + " [" + parameters + "] in " + (endTime - startTime) + " ms");
- reportChange(destinationIdentifier);
}
finally {
mirMap.put("generator", oldGenerator);
aLogger.error(" error while generating", t);
}
}
-
- private void reportChange(String aPath) {
- ChangeTracker changeTracker = MirGlobal.getChangeEngine().getTracker();
- changeTracker.addChange(aPath, ChangeType.MODIFICATION);
- }
}
\ No newline at end of file
*/
package mircoders.media;
+import mir.changetracker.ChangeTracker;
+import mir.changetracker.ChangeType;
import mir.entity.Entity;
import mir.media.MediaExc;
import mir.media.MediaFailure;
import mir.media.MediaHandler;
import mir.misc.StringUtil;
+import mircoders.global.MirGlobal;
import java.io.*;
protected final File getMediaStorageFile(Entity aMedia, Entity aMediaType) throws MediaExc, MediaFailure {
return new File(getMediaStoragePath(aMedia, aMediaType));
}
+
+ /*
+ * Report filesystem changes to the ChangeTracker.
+ */
+ protected void reportChange(String imagePath) {
+ ChangeTracker tracker = MirGlobal.getChangeEngine().getTracker();
+ tracker.addChange(imagePath, ChangeType.MODIFICATION);
+ }
}
*/
package mircoders.media;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.sql.SQLException;
+
import mir.config.MirPropertiesConfiguration;
import mir.entity.Entity;
import mir.log.LoggerWrapper;
import mir.misc.StringUtil;
import mir.session.SessionExc;
import mir.session.UploadedFile;
-import mir.util.IORoutines;
import mir.util.FileRoutines;
+import mir.util.IORoutines;
import mircoders.entity.EntityImages;
-import java.io.*;
-import java.sql.SQLException;
-
/**
* This class handles saving, fetching creating representations
* for all images. The image content is stored in the DB. The content is
*
* @see mir.media.MediaHandler
* @author mh
- * @version $Id: MediaHandlerImages.java,v 1.23.2.10 2006/01/28 18:33:16 zapata Exp $
+ * @version $Id: MediaHandlerImages.java,v 1.23.2.11 2006/11/12 18:44:46 yossarian Exp $
*/
out = new FileOutputStream(iconFile);
try {
IORoutines.copyStream(in, out);
+ reportChange(iconFile.getAbsolutePath());
}
finally {
out.close();
out = new FileOutputStream(imageFile);
try {
IORoutines.copyStream(in, out);
+ reportChange(imageFile.getAbsolutePath());
}
finally {
out.close();
throw new MediaExc("Can't produce image " + ent.getId() + ": missing image or icon OID");
}
}
-
+
public InputStream getThumbnail(Entity ent) throws MediaExc, MediaFailure {
try {
return new ByteArrayInputStream(((EntityImages) ent).getIcon());
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.InputStream;
-import java.io.OutputStream;
-import mir.util.StreamCopier;
import mir.entity.Entity;
import mir.log.LoggerWrapper;
import mir.media.MediaExc;
import mir.media.MediaFailure;
-import mir.media.image.ImageProcessor;
import mir.media.image.ImageMagickImageProcessor;
+import mir.media.image.ImageProcessor;
import mir.misc.StringUtil;
import mir.util.FileRoutines;
dir.mkdirs();
}
processor.writeScaledData(iconFile, "JPEG");
+ reportChange(iconStoragePath);
+ reportChange(imageFilePath);
// yoss: if the config is set so that images should be scaled, make the
// resized file.
if (!originalFile.exists()) {
logger.debug("the original image file doesn't exist, copying to originalFile");
FileRoutines.copy(imageFile, originalFile);
+ reportChange(originalFile.getAbsolutePath());
}
// yoss: don't write the scaled data again if it's the same size as
// the file that's there right now. Image producer runs are 4 times
}
}
-
- /** {@inheritDoc} */
+/** {@inheritDoc} */
public InputStream getThumbnail(Entity anImageEntity) throws MediaExc, MediaFailure {
try {
File file = new File(configuration.getString("Producer.StorageRoot") + anImageEntity.getFieldValue("icon_path"));
*/
package mircoders.media;
+import java.io.File;
+import java.io.FileOutputStream;
+
import mir.entity.Entity;
import mir.log.LoggerWrapper;
import mir.media.MediaExc;
import mir.misc.StringUtil;
import mir.util.IORoutines;
-import java.io.File;
-import java.io.FileOutputStream;
-
/**
* Please note: this media handler produces
* 3 media files, the raw .mp3, a .m3u which is
*
* @see mir.media.MediaHandler
* @author mh <mh@nadir.org>
- * @version $Id: MediaHandlerMp3.java,v 1.15.2.7 2005/08/21 17:09:23 zapata Exp $
+ * @version $Id: MediaHandlerMp3.java,v 1.15.2.8 2006/11/12 18:44:46 yossarian Exp $
*/
public class MediaHandlerMp3 extends MediaHandlerAudio implements MediaHandler {
IORoutines.writeStream(mp3Pointer, "us-ascii",
new FileOutputStream(new File(getBaseStoragePath() + "/" + datePath + "/" + playlistFile)));
+ reportChange(getBaseStoragePath() + "/" + datePath + "/" + mpegURLFile);
+ reportChange(getBaseStoragePath() + "/" + datePath + "/" + playlistFile);
}
catch (Throwable e) {
logger.error("MediaHandlerMp3.execute: " + e.toString());
throw new MediaFailure(e);
}
}
-
+
public String getDescr(Entity mediaType) {
return "mp3";
}
try {
IORoutines.writeStream(oggPointer, "us-ascii",
new FileOutputStream(getBaseStoragePath() + File.separator + datePath + File.separator + playlistFile));
+ reportChange(getBaseStoragePath() + File.separator + datePath + File.separator + playlistFile);
}
catch (Throwable e) {
logger.error("MediaHandlerOgg.execute: " + e.toString());
*/
package mircoders.media;
+import java.io.File;
+import java.io.FileOutputStream;
+
import mir.entity.Entity;
import mir.log.LoggerWrapper;
import mir.media.MediaExc;
import mir.media.MediaHandler;
import mir.misc.StringUtil;
import mir.util.IORoutines;
-import mircoders.global.MirGlobal;
-
-import java.io.FileOutputStream;
-import java.io.File;
* Handles realAudio .it manages the ram file.
*
* @author john <john@manifestor.org>, mh <heckmann@hbe.ca>
- * @version $Id: MediaHandlerRealAudio.java,v 1.19.2.8 2005/08/21 17:09:23 zapata Exp $
+ * @version $Id: MediaHandlerRealAudio.java,v 1.19.2.9 2006/11/12 18:44:46 yossarian Exp $
*/
IORoutines.writeStream(RealMediaPointer, "us-ascii",
new FileOutputStream(getBaseStoragePath() + File.separator + datePath + File.separator + RealMediaFile));
+ reportChange(getBaseStoragePath() + File.separator + datePath + File.separator + RealMediaFile);
}
catch (Throwable e) {
logger.error("Error while producing realmedia: " + e.toString(), e);
*
* @see mir.media.MediaHandler
* @author john <john@manifestor.org>, mh <mh@nadir.org>
- * @version $Id: MediaHandlerRealVideo.java,v 1.19.2.7 2005/08/21 17:09:23 zapata Exp $
+ * @version $Id: MediaHandlerRealVideo.java,v 1.19.2.8 2006/11/12 18:44:46 yossarian Exp $
*/
// write a ram file
IORoutines.writeStream(RealMediaPointer, "us-ascii",
new FileOutputStream(new File(super.getBaseStoragePath() + File.separator + RealMediaFile)));
+ reportChange(super.getBaseStoragePath() + File.separator + RealMediaFile);
}
catch (Throwable e) {
logger.error("MediaHandlerRealVideo.execute: " + e.toString());