diff --git a/src/main/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerWorker.java b/src/main/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerWorker.java
index 28576fe325..2f65d60aaa 100644
--- a/src/main/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerWorker.java
+++ b/src/main/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerWorker.java
@@ -260,12 +260,16 @@ public class ImageMagickContentTransformerWorker extends AbstractImageMagickCont
String allowEnlargement = null;
String maintainAspectRatio = null;
+ String commandOptions = null;
+
if (options instanceof ImageTransformationOptions)
{
ImageTransformationOptions imageOptions = (ImageTransformationOptions)options;
CropSourceOptions cropOptions = imageOptions.getSourceOptions(CropSourceOptions.class);
ImageResizeOptions resizeOptions = imageOptions.getResizeOptions();
+ commandOptions = imageOptions.getCommandOptions();
+ commandOptions = commandOptions == null || "".equals(commandOptions.trim()) ? null : commandOptions.trim();
// MNT-10882 : JPEG File Format, does not save the alpha (transparency) channel.
if (MimetypeMap.MIMETYPE_IMAGE_JPEG.equalsIgnoreCase(targetMimetype) && isAlphaOptionSupported())
@@ -374,7 +378,10 @@ public class ImageMagickContentTransformerWorker extends AbstractImageMagickCont
"resizeHeight", resizeHeight,
"resizePercentage", resizePercentage,
"allowEnlargement", allowEnlargement,
- "maintainAspectRatio", maintainAspectRatio);
+ "maintainAspectRatio", maintainAspectRatio,
+
+ // Parameter not to be taken forward into the Transform Service version
+ "commandOptions", commandOptions);
}
protected String getImageMagickVersionNumber()
diff --git a/src/main/java/org/alfresco/repo/content/transform/magick/ImageTransformationOptions.java b/src/main/java/org/alfresco/repo/content/transform/magick/ImageTransformationOptions.java
index 5c0b9e2582..9fff3406dd 100644
--- a/src/main/java/org/alfresco/repo/content/transform/magick/ImageTransformationOptions.java
+++ b/src/main/java/org/alfresco/repo/content/transform/magick/ImageTransformationOptions.java
@@ -1,28 +1,28 @@
-/*
- * #%L
- * Alfresco Repository
- * %%
- * Copyright (C) 2005 - 2016 Alfresco Software Limited
- * %%
- * This file is part of the Alfresco software.
- * If the software was purchased under a paid Alfresco license, the terms of
- * the paid license agreement will prevail. Otherwise, the software is
- * provided under the following open source license terms:
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- * #L%
- */
+/*
+ * #%L
+ * Alfresco Repository
+ * %%
+ * Copyright (C) 2005 - 2016 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
package org.alfresco.repo.content.transform.magick;
import java.util.HashMap;
@@ -53,9 +53,11 @@ public class ImageTransformationOptions extends TransformationOptions
private boolean autoOrient = true;
/**
* Set the command string options
- *
+ * @deprecated will be removed in a future release and be replaced by individual options that can be checked.
+ *
* @param commandOptions the command string options
*/
+ @Deprecated
public void setCommandOptions(String commandOptions)
{
this.commandOptions = commandOptions;
@@ -63,9 +65,11 @@ public class ImageTransformationOptions extends TransformationOptions
/**
* Get the command string options
- *
+ * @deprecated will be removed in a future release and be replaced by individual options that can be checked.
+ *
* @return String the command string options
*/
+ @Deprecated
public String getCommandOptions()
{
return commandOptions;
diff --git a/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java b/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java
index c7865b0bc8..9d8d83dce9 100644
--- a/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java
+++ b/src/test/java/org/alfresco/repo/content/transform/magick/ImageMagickContentTransformerTest.java
@@ -44,7 +44,7 @@ import org.alfresco.service.cmr.repository.TransformationSourceOptions;
import org.alfresco.util.TempFileProvider;
/**
- * @see org.alfresco.repo.content.transform.magick.JMagickContentTransformer
+ * @see org.alfresco.repo.content.transform.magick.ImageMagickContentTransformerWorker
*
* @author Derek Hulley
*/
@@ -89,8 +89,9 @@ public class ImageMagickContentTransformerTest extends AbstractContentTransforme
assertEquals("Mimetype should be supported", true, reliability);
}
- protected void transform(String sourceMimetype, String targetMimetype, TransformationOptions options) throws IOException
+ protected long transform(String sourceMimetype, String targetMimetype, TransformationOptions options) throws IOException
{
+ long size = -1;
String[] quickFiles = getQuickFilenames(sourceMimetype);
for (String quickFile : quickFiles)
{
@@ -116,8 +117,10 @@ public class ImageMagickContentTransformerTest extends AbstractContentTransforme
targetWriter.setMimetype(targetMimetype);
transformer.transform(sourceReader.getReader(), targetWriter, options);
ContentReader targetReader = targetWriter.getReader();
- assertTrue(targetReader.getSize() > 0);
+ size = targetReader.getSize();
+ assertTrue(size > 0);
}
+ return size;
}
public void testGifToPng() throws Exception
@@ -125,13 +128,27 @@ public class ImageMagickContentTransformerTest extends AbstractContentTransforme
ImageTransformationOptions options = new ImageTransformationOptions();
transform(MimetypeMap.MIMETYPE_IMAGE_GIF, MimetypeMap.MIMETYPE_IMAGE_PNG, options);
}
-
+
public void testJpegToPng() throws Exception
{
ImageTransformationOptions options = new ImageTransformationOptions();
transform(MimetypeMap.MIMETYPE_IMAGE_JPEG, MimetypeMap.MIMETYPE_IMAGE_PNG, options);
}
+ public void testDeprecatedCommandOptions() throws Exception
+ {
+ // The commandOption should be removed, but is currently needed for custom renditions.
+ // This test uses it to resize the file. This happens to be one of the standard options.
+ ImageTransformationOptions options = new ImageTransformationOptions();
+ long defaultSize = transform(MimetypeMap.MIMETYPE_IMAGE_JPEG, MimetypeMap.MIMETYPE_IMAGE_PNG, options);
+
+ options.setCommandOptions("-resize 200%");
+ long biggerSize = transform(MimetypeMap.MIMETYPE_IMAGE_JPEG, MimetypeMap.MIMETYPE_IMAGE_PNG, options);
+
+ assertTrue("The commandOption appears not to have been used as the file size " + biggerSize +
+ " is not larger than the default size " + defaultSize, biggerSize > defaultSize);
+ }
+
public void testPageSourceOptions() throws Exception
{
// Test empty source options