added engine selection
This commit is contained in:
parent
b448025ee2
commit
41164123a3
@ -36,9 +36,10 @@ import com.vladsch.flexmark.util.misc.Extension;
|
||||
|
||||
@Component
|
||||
public class FlexmarkTransformer implements Transformer {
|
||||
|
||||
public static final String ID = "flexmark";
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(FlexmarkTransformer.class);
|
||||
private final String id = "flexmark";
|
||||
private final List<String> classSearchPrefixes = Arrays.asList("", "com.vladsch.flexmark.ext.{name}.", "com.vladsch.flexmark.ext.");
|
||||
private final Pattern extClassNamePattern = Pattern.compile("[\\.]?(([A-Za-z0-9]+)Extension|[A-Za-z0-9]+)$");
|
||||
|
||||
@ -56,7 +57,7 @@ public class FlexmarkTransformer implements Transformer {
|
||||
|
||||
@Override
|
||||
public String getTransformerId() {
|
||||
return this.id;
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -29,6 +29,8 @@
|
||||
package com.inteligr8.alfresco.module.alfmarkdown;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
@ -75,11 +77,12 @@ public class TransformerController extends AbstractTransformerController {
|
||||
private final MediaType defaultTarget = MediaType.TEXT_HTML;
|
||||
|
||||
@Autowired
|
||||
private Transformer transformer;
|
||||
private List<Transformer> transformers;
|
||||
|
||||
@Value("${transform.alfmarkdown.version}")
|
||||
private String version;
|
||||
|
||||
private Map<String, Transformer> engineMap;
|
||||
private ProbeTestTransform probe;
|
||||
|
||||
@Override
|
||||
@ -92,6 +95,13 @@ public class TransformerController extends AbstractTransformerController {
|
||||
return this.version;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void mapEngines() {
|
||||
this.engineMap = new HashMap<>();
|
||||
for (Transformer transformer : this.transformers)
|
||||
this.engineMap.put(transformer.getTransformerId(), transformer);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void initProbe() {
|
||||
this.probe = new ProbeTestTransform(this, "quick.src", "quick.trgt",
|
||||
@ -137,8 +147,12 @@ public class TransformerController extends AbstractTransformerController {
|
||||
if (!MediaType.TEXT_MARKDOWN_VALUE.equals(sourceMimetype))
|
||||
throw new TransformException(HttpStatus.BAD_REQUEST.value(), "This transformer does not support source data of the '" + sourceMimetype + "' type");
|
||||
|
||||
String engine = transformOptions.getOrDefault(RequestParamConstants.ENGINE, FlexmarkTransformer.ID);
|
||||
if (!this.engineMap.containsKey(engine))
|
||||
throw new TransformException(HttpStatus.BAD_REQUEST.value(), "This transformer does not support the following engine: " + engine);
|
||||
|
||||
try {
|
||||
this.transformer.transform(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
|
||||
this.engineMap.get(engine).transform(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
|
||||
} catch (Exception e) {
|
||||
this.logger.error("The transformation encountered an unexpected issue", e);
|
||||
throw new TransformException(HttpStatus.INTERNAL_SERVER_ERROR.value(), "The transformer encountered an unexpected");
|
||||
|
Loading…
x
Reference in New Issue
Block a user