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:
Kristian Dimitrov 2020-04-22 11:32:23 +01:00 committed by GitHub
parent e2ba7676a6
commit 88116fc4af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 45 additions and 9 deletions

View File

@ -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;

View File

@ -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:}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:}

View File

@ -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

View File

@ -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<>();