mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-08-14 17:58:27 +00:00
ongoing [skip ci]
This commit is contained in:
@@ -39,6 +39,11 @@ import java.util.Map;
|
||||
*/
|
||||
public interface TransformManager
|
||||
{
|
||||
/**
|
||||
* @return the id of the request.
|
||||
*/
|
||||
String getRequestId();
|
||||
|
||||
/**
|
||||
* Allows a {@link CustomTransformer} to use a local source {@code File} rather than the supplied {@code InputStream}.
|
||||
* The file will be deleted once the request is completed. To avoid creating extra files, if a File has already
|
||||
|
@@ -26,13 +26,8 @@
|
||||
*/
|
||||
package org.alfresco.transform.base.messaging;
|
||||
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.jms.Queue;
|
||||
|
||||
import org.alfresco.transform.messages.TransformRequestValidator;
|
||||
import org.apache.activemq.command.ActiveMQQueue;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -45,6 +40,9 @@ import org.springframework.lang.NonNull;
|
||||
import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.jms.Queue;
|
||||
|
||||
/**
|
||||
* JMS and messaging configuration for the T-Engines. Contains the basic config in order to have the
|
||||
* T-Engine able to read from queues and send a reply back.
|
||||
|
@@ -37,6 +37,7 @@ import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Component
|
||||
public class CustomTransformers
|
||||
@@ -48,8 +49,6 @@ public class CustomTransformers
|
||||
|
||||
private final Map<String, CustomTransformer> customTransformersByName = new HashMap<>();
|
||||
|
||||
private CustomTransformer defaultCustomTransformer;
|
||||
|
||||
@PostConstruct
|
||||
private void initCustomTransformersByName()
|
||||
{
|
||||
@@ -61,19 +60,17 @@ public class CustomTransformers
|
||||
logger.info("Transformers:");
|
||||
customTransformers.stream()
|
||||
.sorted(Comparator.comparing(CustomTransformer::getTransformerName))
|
||||
.map(customTransformer -> " "+customTransformer.getTransformerName()).forEach(logger::info);
|
||||
.map(customTransformer -> customTransformer.getTransformerName())
|
||||
.filter(Objects::nonNull)
|
||||
.map(name -> " "+name)
|
||||
.forEach(logger::info);
|
||||
}
|
||||
}
|
||||
|
||||
public void setDefaultCustomTransformer(CustomTransformer defaultCustomTransformer)
|
||||
{
|
||||
this.defaultCustomTransformer = defaultCustomTransformer;
|
||||
}
|
||||
|
||||
public CustomTransformer get(String name)
|
||||
{
|
||||
CustomTransformer customTransformer = customTransformersByName.get(name);
|
||||
return customTransformer == null ? defaultCustomTransformer : customTransformer;
|
||||
return customTransformer == null ? customTransformersByName.get(null) : customTransformer;
|
||||
}
|
||||
|
||||
public void put(String name, CustomTransformer customTransformer)
|
||||
|
@@ -108,6 +108,12 @@ abstract class ProcessHandler extends FragmentHandler
|
||||
super.init();
|
||||
}
|
||||
|
||||
|
||||
public String getReference()
|
||||
{
|
||||
return reference;
|
||||
}
|
||||
|
||||
public void handleTransformRequest()
|
||||
{
|
||||
LogEntry.start();
|
||||
|
@@ -71,6 +71,11 @@ public class TransformManagerImpl implements TransformManager
|
||||
this.processHandler = processHandler;
|
||||
}
|
||||
|
||||
@Override public String getRequestId()
|
||||
{
|
||||
return processHandler.getReference();
|
||||
}
|
||||
|
||||
public InputStream setInputStream(InputStream inputStream)
|
||||
{
|
||||
this.inputStream = inputStream;
|
||||
@@ -130,14 +135,13 @@ public class TransformManagerImpl implements TransformManager
|
||||
return targetFile;
|
||||
}
|
||||
|
||||
File setTargetFile(File targetFile)
|
||||
public void setTargetFile(File targetFile)
|
||||
{
|
||||
this.targetFile = targetFile;
|
||||
if (startedWithTargetFile == null)
|
||||
{
|
||||
startedWithTargetFile = true;
|
||||
}
|
||||
return targetFile;
|
||||
}
|
||||
|
||||
public void keepTargetFile()
|
||||
@@ -179,7 +183,7 @@ public class TransformManagerImpl implements TransformManager
|
||||
{
|
||||
if (targetFile != null)
|
||||
{
|
||||
if (startedWithTargetFile == false)
|
||||
if (!startedWithTargetFile)
|
||||
{
|
||||
FileManager.copyFileToOutputStream(targetFile, outputStreamLengthRecorder);
|
||||
}
|
||||
|
@@ -47,9 +47,9 @@ public interface CustomTransformerFileAdaptor extends CustomTransformer
|
||||
{
|
||||
File sourceFile = transformManager.createSourceFile();
|
||||
File targetFile = transformManager.createTargetFile();
|
||||
transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
|
||||
transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile, transformManager);
|
||||
}
|
||||
|
||||
void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile) throws Exception;
|
||||
File sourceFile, File targetFile, TransformManager transformManager) throws Exception;
|
||||
}
|
@@ -8,7 +8,7 @@
|
||||
<tr><td><div style="text-align:right">directAccessUrl</div></td><td><input type="text" name="directAccessUrl"/></td></tr>
|
||||
<tr><td><div style="text-align:right">sourceMimetype</div></td><td><input type="text" name="sourceMimetype" value="" /></td>
|
||||
<td><select name="_sourceMimetype">
|
||||
<option value="" >-- file extension --</option>
|
||||
<option value="" >-- by file extension --</option>
|
||||
<option value="image/jpeg" >jpg</option>
|
||||
<option value="image/png">png</option>
|
||||
<option value="application/pdf">pdf</option>
|
||||
@@ -19,7 +19,7 @@
|
||||
</select></td></tr>
|
||||
<tr><td><div style="text-align:right">targetMimetype</div></td><td><input type="text" name="targetMimetype" value="" /></td>
|
||||
<td><select name="_targetMimetype">
|
||||
<option value="" >-- file extension --</option>
|
||||
<option value="" >-- by file extension --</option>
|
||||
<option value="image/jpeg" >jpg</option>
|
||||
<option value="image/png">png</option>
|
||||
<option value="application/pdf">pdf</option>
|
||||
|
@@ -37,8 +37,6 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -152,7 +150,7 @@ public class ImageMagickTransformer extends AbstractCommandExecutor implements C
|
||||
|
||||
@Override
|
||||
public void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile) throws TransformException
|
||||
File sourceFile, File targetFile, TransformManager transformManager) throws TransformException
|
||||
{
|
||||
final String options = ImageMagickOptionsBuilder
|
||||
.builder()
|
||||
|
@@ -47,8 +47,6 @@ import org.springframework.stereotype.Component;
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -133,7 +131,7 @@ public class LibreOfficeTransformer implements JavaExecutor, CustomTransformerFi
|
||||
|
||||
@Override
|
||||
public void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile)
|
||||
File sourceFile, File targetFile, TransformManager transformManager)
|
||||
{
|
||||
call(sourceFile, targetFile);
|
||||
}
|
||||
|
@@ -39,8 +39,6 @@ import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.List;
|
||||
@@ -86,7 +84,7 @@ public class AppleIWorksContentTransformer implements CustomTransformerFileAdapt
|
||||
|
||||
@Override
|
||||
public void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile)
|
||||
File sourceFile, File targetFile, TransformManager transformManager)
|
||||
{
|
||||
logger.debug("Performing IWorks to jpeg transform with sourceMimetype={} targetMimetype={}",
|
||||
sourceMimetype, targetMimetype);
|
||||
|
@@ -46,7 +46,6 @@ import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.Map;
|
||||
@@ -84,7 +83,7 @@ public class EMLTransformer implements CustomTransformerFileAdaptor
|
||||
|
||||
@Override
|
||||
public void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile) throws Exception
|
||||
File sourceFile, File targetFile, TransformManager transformManager) throws Exception
|
||||
{
|
||||
logger.debug("Performing RFC822 to text transform.");
|
||||
// Use try with resource
|
||||
|
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.transform.misc.transformers;
|
||||
|
||||
import org.alfresco.transform.base.TransformManager;
|
||||
import org.alfresco.transform.base.util.CustomTransformerFileAdaptor;
|
||||
import org.htmlparser.Parser;
|
||||
import org.htmlparser.beans.StringBean;
|
||||
@@ -88,7 +89,7 @@ public class HtmlParserContentTransformer implements CustomTransformerFileAdapto
|
||||
@Override
|
||||
public void transform(final String sourceMimetype, final String targetMimetype,
|
||||
final Map<String, String> transformOptions,
|
||||
final File sourceFile, final File targetFile) throws Exception
|
||||
final File sourceFile, final File targetFile, TransformManager transformManager) throws Exception
|
||||
{
|
||||
String sourceEncoding = transformOptions.get(SOURCE_ENCODING);
|
||||
checkEncodingParameter(sourceEncoding, SOURCE_ENCODING);
|
||||
|
@@ -40,7 +40,6 @@ import org.springframework.stereotype.Component;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.Map;
|
||||
@@ -70,7 +69,7 @@ public class OOXMLThumbnailContentTransformer implements CustomTransformerFileAd
|
||||
|
||||
@Override
|
||||
public void transform(final String sourceMimetype, final String targetMimetype, final Map<String, String> parameters,
|
||||
final File sourceFile, final File targetFile) throws Exception
|
||||
final File sourceFile, final File targetFile, TransformManager transformManager) throws Exception
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
|
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.transform.misc.transformers;
|
||||
|
||||
import org.alfresco.transform.base.TransformManager;
|
||||
import org.alfresco.transform.base.util.CustomTransformerFileAdaptor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -80,7 +81,7 @@ public class StringExtractingContentTransformer implements CustomTransformerFile
|
||||
*/
|
||||
@Override
|
||||
public void transform(final String sourceMimetype, final String targetMimetype, final Map<String, String> transformOptions,
|
||||
final File sourceFile, final File targetFile) throws Exception
|
||||
final File sourceFile, final File targetFile, TransformManager transformManager) throws Exception
|
||||
{
|
||||
String sourceEncoding = transformOptions.get(SOURCE_ENCODING);
|
||||
String targetEncoding = transformOptions.get(TARGET_ENCODING);
|
||||
|
@@ -116,7 +116,7 @@ public class TextToPdfContentTransformer implements CustomTransformerFileAdaptor
|
||||
@Override
|
||||
public void transform(final String sourceMimetype, final String targetMimetype, final Map<String,
|
||||
String> transformOptions,
|
||||
final File sourceFile, final File targetFile) throws Exception
|
||||
final File sourceFile, final File targetFile, TransformManager transformManager) throws Exception
|
||||
{
|
||||
String sourceEncoding = transformOptions.get(SOURCE_ENCODING);
|
||||
String stringPageLimit = transformOptions.get(PAGE_LIMIT);
|
||||
|
@@ -81,7 +81,7 @@ public class HtmlParserContentTransformerTest
|
||||
|
||||
Map<String, String> parameters = new HashMap<>();
|
||||
parameters.put(SOURCE_ENCODING, "ISO-8859-1");
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD, transformManager);
|
||||
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
@@ -94,7 +94,7 @@ public class HtmlParserContentTransformerTest
|
||||
tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt");
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(SOURCE_ENCODING, "UTF-8");
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD, transformManager);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
@@ -106,7 +106,7 @@ public class HtmlParserContentTransformerTest
|
||||
tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt");
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(SOURCE_ENCODING, "UTF-16");
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD, transformManager);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
@@ -131,7 +131,7 @@ public class HtmlParserContentTransformerTest
|
||||
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(SOURCE_ENCODING, "ISO-8859-1");
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD, transformManager);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
|
@@ -201,7 +201,7 @@ public class TextToPdfContentTransformerTest
|
||||
Map<String, String> parameters = new HashMap<>();
|
||||
parameters.put(PAGE_LIMIT, pageLimit);
|
||||
parameters.put(SOURCE_ENCODING, encoding);
|
||||
transformer.transform("text/plain", "application/pdf", parameters, sourceFile, targetFile);
|
||||
transformer.transform("text/plain", "application/pdf", parameters, sourceFile, targetFile, transformManager);
|
||||
|
||||
// Read back in the PDF and check it
|
||||
PDDocument doc = PDDocument.load(targetFile);
|
||||
|
@@ -37,8 +37,6 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -105,7 +103,7 @@ public class PdfRendererTransformer extends AbstractCommandExecutor implements C
|
||||
|
||||
@Override
|
||||
public void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
|
||||
File sourceFile, File targetFile) throws TransformException
|
||||
File sourceFile, File targetFile, TransformManager transformManager) throws TransformException
|
||||
{
|
||||
final String options = PdfRendererOptionsBuilder
|
||||
.builder()
|
||||
|
Reference in New Issue
Block a user