mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-06-30 18:14:51 +00:00
ATS-728: Add optional Windows parameters for ImageMagickCommandExecutor (#229)
* ATS-728: Add optional Windows parameters for ImageMagickCommandExecutor * ATS-728: Split logic * ATS-728: Fix newly implemented AIOImageMagick tests
This commit is contained in:
parent
e2ba7676a6
commit
88116fc4af
@ -55,6 +55,12 @@ public class AIOCustomConfig
|
||||
@Value("${transform.core.imagemagick.root}")
|
||||
private String imageMagickRootPath;
|
||||
|
||||
@Value("${transform.core.imagemagick.coders}")
|
||||
private String imageMagickCodersPath;
|
||||
|
||||
@Value("${transform.core.imagemagick.config}")
|
||||
private String imageMagickConfigPath;
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Override the TransformRegistryImpl used in {@link AbstractTransformerController}
|
||||
@ -66,7 +72,7 @@ public class AIOCustomConfig
|
||||
AIOTransformRegistry aioTransformRegistry = new AIOTransformRegistry();
|
||||
aioTransformRegistry.registerTransformer(new MiscAdapter());
|
||||
aioTransformRegistry.registerTransformer(new TikaAdapter());
|
||||
aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath));
|
||||
aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath, imageMagickCodersPath, imageMagickConfigPath));
|
||||
aioTransformRegistry.registerTransformer(new LibreOfficeAdapter(libreofficePath));
|
||||
aioTransformRegistry.registerTransformer(new PdfRendererAdapter(pdfRendererPath));
|
||||
return aioTransformRegistry;
|
||||
|
@ -10,3 +10,5 @@ transform:
|
||||
root: ${IMAGEMAGICK_ROOT:/usr/lib64/ImageMagick-7.0.7}
|
||||
dyn: ${IMAGEMAGICK_DYN:/usr/lib64/ImageMagick-7.0.7/lib}
|
||||
exe: ${IMAGEMAGICK_EXE:/usr/bin/convert}
|
||||
coders: ${IMAGEMAGICK_CODERS:}
|
||||
config: ${IMAGEMAGICK_CONFIG:}
|
@ -63,7 +63,7 @@ public class AIOControllerImageMagickTest extends ImageMagickControllerTest
|
||||
@PostConstruct
|
||||
private void init() throws Exception
|
||||
{
|
||||
adapter = new ImageMagickAdapter(EXE, DYN, ROOT);
|
||||
adapter = new ImageMagickAdapter(EXE, DYN, ROOT, CODERS, CONFIG);
|
||||
}
|
||||
|
||||
@Before @Override
|
||||
|
@ -59,9 +59,9 @@ public class ImageMagickAdapter implements Transformer
|
||||
private static String ID = "imagemagick";
|
||||
private ImageMagickCommandExecutor commandExecutor;
|
||||
|
||||
public ImageMagickAdapter(String exe, String dyn, String root) throws Exception
|
||||
public ImageMagickAdapter(String exe, String dyn, String root, String coder, String config) throws Exception
|
||||
{
|
||||
commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root);
|
||||
commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root, coder, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -89,12 +89,18 @@ public class ImageMagickController extends AbstractTransformerController
|
||||
@Value("${transform.core.imagemagick.root}")
|
||||
private String ROOT;
|
||||
|
||||
@Value("${transform.core.imagemagick.coders}")
|
||||
private String CODERS;
|
||||
|
||||
@Value("${transform.core.imagemagick.config}")
|
||||
private String CONFIG;
|
||||
|
||||
ImageMagickCommandExecutor commandExecutor;
|
||||
|
||||
@PostConstruct
|
||||
private void init()
|
||||
{
|
||||
commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT);
|
||||
commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT, CODERS, CONFIG);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,3 +8,5 @@ transform:
|
||||
root: ${IMAGEMAGICK_ROOT:/usr/lib64/ImageMagick-7.0.7}
|
||||
dyn: ${IMAGEMAGICK_DYN:/usr/lib64/ImageMagick-7.0.7/lib}
|
||||
exe: ${IMAGEMAGICK_EXE:/usr/bin/convert}
|
||||
coders: ${IMAGEMAGICK_CODERS:}
|
||||
config: ${IMAGEMAGICK_CONFIG:}
|
@ -109,12 +109,18 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest
|
||||
@Value("${transform.core.imagemagick.root}")
|
||||
protected String ROOT;
|
||||
|
||||
@Value("${transform.core.imagemagick.coders}")
|
||||
protected String CODERS;
|
||||
|
||||
@Value("${transform.core.imagemagick.config}")
|
||||
protected String CONFIG;
|
||||
|
||||
ImageMagickCommandExecutor commandExecutor;
|
||||
|
||||
@PostConstruct
|
||||
private void init()
|
||||
{
|
||||
commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT);
|
||||
commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT, CODERS, CONFIG);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
|
@ -38,8 +38,10 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor
|
||||
private final String ROOT;
|
||||
private final String DYN;
|
||||
private final String EXE;
|
||||
private final String CODERS;
|
||||
private final String CONFIG;
|
||||
|
||||
public ImageMagickCommandExecutor(String exe, String dyn, String root)
|
||||
public ImageMagickCommandExecutor(String exe, String dyn, String root, String coders, String config)
|
||||
{
|
||||
if (exe == null || exe.isEmpty())
|
||||
{
|
||||
@ -56,6 +58,8 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor
|
||||
this.EXE = exe;
|
||||
this.DYN = dyn;
|
||||
this.ROOT = root;
|
||||
this.CODERS = coders;
|
||||
this.CONFIG = config;
|
||||
|
||||
super.transformCommand = createTransformCommand();
|
||||
super.checkCommand = createCheckCommand();
|
||||
@ -76,6 +80,16 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor
|
||||
processProperties.put("MAGICK_HOME", ROOT);
|
||||
processProperties.put("DYLD_FALLBACK_LIBRARY_PATH", DYN);
|
||||
processProperties.put("LD_LIBRARY_PATH", DYN);
|
||||
|
||||
//Optional properties (see also https://imagemagick.org/script/resources.php#environment)
|
||||
if (CODERS != null && !CODERS.isBlank())
|
||||
{
|
||||
processProperties.put("MAGICK_CODER_MODULE_PATH", CODERS);
|
||||
}
|
||||
if (CONFIG != null && !CONFIG.isBlank())
|
||||
{
|
||||
processProperties.put("MAGICK_CONFIGURE_PATH", CONFIG);
|
||||
}
|
||||
runtimeExec.setProcessProperties(processProperties);
|
||||
|
||||
Map<String, String> defaultProperties = new HashMap<>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user