mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-08-14 17:58:27 +00:00
REPO-4334 Move metadata extraction into T-Engines (#247)
* Metadata extract code added to T-Engines * Required a refactor of duplicate code to avoid 3x more duplication: - try catches used to return return exit codes - calls to java libraries or commands to external processes - building of transform options in controllers, adaptors * integration tests based on current extracts performed in the repo * included extract code for libreoffice, and embed code even though not used out of the box any more. There may well be custom extracts using them that move to T-Engines * removal of unused imports * minor autoOrient / allowEnlargement bug fixes that were not included in Paddington on the T-Engine side.
This commit is contained in:
@@ -26,59 +26,32 @@
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML;
|
||||
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
|
||||
import static org.alfresco.transformer.fs.FileManager.createAttachment;
|
||||
import static org.alfresco.transformer.fs.FileManager.createSourceFile;
|
||||
import static org.alfresco.transformer.fs.FileManager.createTargetFile;
|
||||
import static org.alfresco.transformer.fs.FileManager.createTargetFileName;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.SOURCE_ENCODING;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.SOURCE_EXTENSION;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.SOURCE_MIMETYPE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TARGET_EXTENSION;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TARGET_MIMETYPE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TEST_DELAY;
|
||||
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
import static org.springframework.http.HttpStatus.OK;
|
||||
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.alfresco.transform.client.model.config.TransformConfig;
|
||||
import org.alfresco.transform.exceptions.TransformException;
|
||||
import org.alfresco.transformer.logging.LogEntry;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.alfresco.transformer.probes.ProbeTestTransform;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML;
|
||||
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.SOURCE_ENCODING;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TRANSFORM_NAME_PARAMETER;
|
||||
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
|
||||
import static org.springframework.http.HttpStatus.OK;
|
||||
|
||||
@Controller
|
||||
public class AIOController extends AbstractTransformerController
|
||||
{
|
||||
private static final Logger logger = LoggerFactory.getLogger(AIOController.class);
|
||||
|
||||
// This property can be sent by acs repository's legacy transformers to force a transform,
|
||||
// instead of letting this T-Engine determine it based on the request parameters.
|
||||
// This allows clients to specify transform names as they appear in the engine config files, for example:
|
||||
// imagemagick, libreoffice, PdfBox, TikaAuto, ....
|
||||
// See ATS-731.
|
||||
@Deprecated
|
||||
private static final String TRANSFORM_NAME_PROPERTY = "transformName";
|
||||
|
||||
@Autowired
|
||||
private AIOTransformRegistry transformRegistry;
|
||||
|
||||
@@ -94,19 +67,6 @@ public class AIOController extends AbstractTransformerController
|
||||
return getTransformerName() + " available";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processTransform(final File sourceFile, final File targetFile, final String sourceMimetype,
|
||||
final String targetMimetype, final Map<String, String> transformOptions, final Long timeout)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Processing request via queue endpoint. Params: sourceMimetype: '{}', targetMimetype: '{}', "
|
||||
+ "transformOptions: {}", sourceMimetype, targetMimetype, transformOptions);
|
||||
}
|
||||
final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
transformInternal( transform, sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
}
|
||||
|
||||
// TODO ATS-713 Currently uses the Misc probeTest. The implementation will need to be changed such that the test can be selected based on the required transform
|
||||
@Override
|
||||
public ProbeTestTransform getProbeTestTransform()
|
||||
@@ -122,68 +82,10 @@ public class AIOController extends AbstractTransformerController
|
||||
{
|
||||
Map<String, String> parameters = new HashMap<>();
|
||||
parameters.put(SOURCE_ENCODING, "UTF-8");
|
||||
transformInternal( "html", sourceFile, targetFile, MIMETYPE_HTML,
|
||||
MIMETYPE_TEXT_PLAIN, parameters);
|
||||
transform("html", MIMETYPE_HTML, MIMETYPE_TEXT_PLAIN, parameters, sourceFile, targetFile);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@PostMapping(value = "/transform", consumes = MULTIPART_FORM_DATA_VALUE)
|
||||
public ResponseEntity<Resource> transform(HttpServletRequest request,
|
||||
@RequestParam("file") MultipartFile sourceMultipartFile,
|
||||
@RequestParam(TARGET_EXTENSION) String targetExtension,
|
||||
@RequestParam(SOURCE_MIMETYPE) String sourceMimetype,
|
||||
@RequestParam(TARGET_MIMETYPE) String targetMimetype,
|
||||
@RequestParam Map<String, String> requestParameters,
|
||||
@RequestParam (value = TEST_DELAY, required = false) Long testDelay,
|
||||
|
||||
// The TRANSFORM_NAME_PROPERTY param allows ACS legacy transformers to specify which transform to use,
|
||||
// It can be removed once legacy transformers are removed from ACS.
|
||||
@RequestParam (value = TRANSFORM_NAME_PROPERTY, required = false) String requestTransformName)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Processing request via HTTP endpoint. Params: sourceMimetype: '{}', targetMimetype: '{}', "
|
||||
+ "targetExtension: '{}', requestParameters: {}", sourceMimetype, targetMimetype, targetExtension, requestParameters);
|
||||
}
|
||||
|
||||
//Remove all required parameters from request parameters to get the list of options
|
||||
List<String> optionsToFilter = Arrays.asList(SOURCE_EXTENSION, TARGET_EXTENSION, TARGET_MIMETYPE,
|
||||
SOURCE_MIMETYPE, TEST_DELAY, TRANSFORM_NAME_PROPERTY);
|
||||
Map<String, String> transformOptions = new HashMap<>(requestParameters);
|
||||
transformOptions.keySet().removeAll(optionsToFilter);
|
||||
transformOptions.values().removeIf(v -> v.isEmpty());
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Filtered requestParameters into transformOptions: {}" + transformOptions);
|
||||
}
|
||||
|
||||
final String targetFilename = createTargetFileName(
|
||||
sourceMultipartFile.getOriginalFilename(), targetExtension);
|
||||
getProbeTestTransform().incrementTransformerCount();
|
||||
final File sourceFile = createSourceFile(request, sourceMultipartFile);
|
||||
final File targetFile = createTargetFile(request, targetFilename);
|
||||
|
||||
// Check if transformName was provided in the request (this can happen for ACS legacy transformers)
|
||||
String transform = requestTransformName;
|
||||
if (transform == null || transform.isEmpty())
|
||||
{
|
||||
transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
}
|
||||
else if (logger.isInfoEnabled())
|
||||
{
|
||||
logger.info("Using transform name provided in the request: " + requestTransformName);
|
||||
}
|
||||
transformInternal(transform, sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
|
||||
final ResponseEntity<Resource> body = createAttachment(targetFilename, targetFile);
|
||||
LogEntry.setTargetSize(targetFile.length());
|
||||
long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success");
|
||||
time += LogEntry.addDelay(testDelay);
|
||||
getProbeTestTransform().recordTransformTime(time);
|
||||
return body;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<TransformConfig> info()
|
||||
@@ -193,9 +95,9 @@ public class AIOController extends AbstractTransformerController
|
||||
return new ResponseEntity<>(transformConfig, OK);
|
||||
}
|
||||
|
||||
protected void transformInternal(final String transformName, final File sourceFile, final File targetFile,
|
||||
final String sourceMimetype, final String targetMimetype,
|
||||
final Map<String, String> transformOptions)
|
||||
@Override
|
||||
protected void transform(String transformName, String sourceMimetype, String targetMimetype,
|
||||
Map<String, String> transformOptions, File sourceFile, File targetFile)
|
||||
{
|
||||
logger.debug("Processing transform with: transformName; '{}', sourceFile '{}', targetFile '{}', transformOptions" +
|
||||
" {}", transformName, sourceFile, targetFile, transformOptions);
|
||||
@@ -212,25 +114,7 @@ public class AIOController extends AbstractTransformerController
|
||||
logger.debug("Performing transform with name '{}' using transformer with id '{}'.", transformName, transformer.getTransformerId());
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Map<String, String> optionsWithTransformName = new HashMap<>(transformOptions);
|
||||
optionsWithTransformName.put(Transformer.TRANSFORM_NAME_PARAMETER, transformName);
|
||||
transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, optionsWithTransformName);
|
||||
|
||||
}
|
||||
catch (TransformException e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
catch (IllegalArgumentException e)
|
||||
{
|
||||
throw new TransformException(BAD_REQUEST.value(), e.getMessage(), e);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new TransformException(INTERNAL_SERVER_ERROR.value(), "Failed transform - transform:"
|
||||
+ transformName + " sourceMimetype:" + sourceMimetype + " targetMimetype:" + targetMimetype);
|
||||
}
|
||||
transformOptions.put(TRANSFORM_NAME_PARAMETER, transformName);
|
||||
transformer.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
|
||||
}
|
||||
}
|
||||
|
@@ -27,11 +27,11 @@
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import org.alfresco.transform.client.registry.TransformServiceRegistry;
|
||||
import org.alfresco.transformer.transformers.ImageMagickAdapter;
|
||||
import org.alfresco.transformer.transformers.LibreOfficeAdapter;
|
||||
import org.alfresco.transformer.transformers.MiscAdapter;
|
||||
import org.alfresco.transformer.transformers.PdfRendererAdapter;
|
||||
import org.alfresco.transformer.transformers.TikaAdapter;
|
||||
import org.alfresco.transformer.executors.ImageMagickCommandExecutor;
|
||||
import org.alfresco.transformer.executors.LibreOfficeJavaExecutor;
|
||||
import org.alfresco.transformer.executors.PdfRendererCommandExecutor;
|
||||
import org.alfresco.transformer.executors.TikaJavaExecutor;
|
||||
import org.alfresco.transformer.transformers.SelectingTransformer;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -70,11 +70,11 @@ public class AIOCustomConfig
|
||||
public TransformServiceRegistry aioTransformRegistry() throws Exception
|
||||
{
|
||||
AIOTransformRegistry aioTransformRegistry = new AIOTransformRegistry();
|
||||
aioTransformRegistry.registerTransformer(new MiscAdapter());
|
||||
aioTransformRegistry.registerTransformer(new TikaAdapter());
|
||||
aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath, imageMagickCodersPath, imageMagickConfigPath));
|
||||
aioTransformRegistry.registerTransformer(new LibreOfficeAdapter(libreofficePath));
|
||||
aioTransformRegistry.registerTransformer(new PdfRendererAdapter(pdfRendererPath));
|
||||
aioTransformRegistry.registerTransformer(new SelectingTransformer());
|
||||
aioTransformRegistry.registerTransformer(new TikaJavaExecutor());
|
||||
aioTransformRegistry.registerTransformer(new ImageMagickCommandExecutor(imageMagickExePath, imageMagickDynPath, imageMagickRootPath, imageMagickCodersPath, imageMagickConfigPath));
|
||||
aioTransformRegistry.registerTransformer(new LibreOfficeJavaExecutor(libreofficePath));
|
||||
aioTransformRegistry.registerTransformer(new PdfRendererCommandExecutor(pdfRendererPath));
|
||||
return aioTransformRegistry;
|
||||
}
|
||||
}
|
||||
|
@@ -26,10 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import static org.alfresco.transformer.logging.StandardMessages.LICENCE;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import org.alfresco.transformer.executors.ImageMagickCommandExecutor;
|
||||
import org.alfresco.transformer.executors.LibreOfficeJavaExecutor;
|
||||
import org.alfresco.transformer.executors.PdfRendererCommandExecutor;
|
||||
@@ -47,7 +44,9 @@ import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.event.EventListener;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.alfresco.transformer.logging.StandardMessages.LICENCE;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
|
||||
|
@@ -0,0 +1 @@
|
||||
#logging.level.org.alfresco.transformer.metadataExtractors=debug
|
@@ -26,15 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.alfresco.transformer.transformers.ImageMagickAdapter;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -46,6 +38,11 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebMvcTest(AIOController.class)
|
||||
@Import(AIOCustomConfig.class)
|
||||
@@ -56,27 +53,18 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilde
|
||||
public class AIOControllerImageMagickTest extends ImageMagickControllerTest
|
||||
{
|
||||
// All tests contained in ImageMagickControllerTest
|
||||
|
||||
ImageMagickAdapter adapter;
|
||||
|
||||
|
||||
@Autowired
|
||||
AIOTransformRegistry transformRegistry;
|
||||
|
||||
@PostConstruct
|
||||
private void init() throws Exception
|
||||
{
|
||||
adapter = new ImageMagickAdapter(EXE, DYN, ROOT, CODERS, CONFIG);
|
||||
}
|
||||
|
||||
@Before @Override
|
||||
public void before() throws IOException
|
||||
{
|
||||
ReflectionTestUtils.setField(commandExecutor, "transformCommand", mockTransformCommand);
|
||||
ReflectionTestUtils.setField(commandExecutor, "checkCommand", mockCheckCommand);
|
||||
ReflectionTestUtils.setField(adapter, "commandExecutor", commandExecutor);
|
||||
//Need to wire in the mocked adapter into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerTransformMapping();
|
||||
transformers.replace("imagemagick", adapter);
|
||||
//Need to wire in the mocked commandExecutor into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerEngineMapping();
|
||||
transformers.replace("imagemagick", commandExecutor);
|
||||
|
||||
mockTransformCommand("jpg", "png", "image/jpeg", true);
|
||||
}
|
||||
|
@@ -26,15 +26,8 @@
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.alfresco.transformer.executors.LibreOfficeJavaExecutor;
|
||||
import org.alfresco.transformer.transformers.LibreOfficeAdapter;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -42,9 +35,12 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebMvcTest(AIOController.class)
|
||||
@Import(AIOCustomConfig.class)
|
||||
@@ -54,7 +50,6 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilde
|
||||
*/
|
||||
public class AIOControllerLibreOfficeTest extends LibreOfficeControllerTest
|
||||
{
|
||||
|
||||
//Tests contained in LibreOfficeControllerTest
|
||||
|
||||
@Test
|
||||
@@ -64,25 +59,16 @@ public class AIOControllerLibreOfficeTest extends LibreOfficeControllerTest
|
||||
assertTrue("Wrong controller wired for test", controller instanceof AIOController);
|
||||
}
|
||||
|
||||
LibreOfficeAdapter adapter;
|
||||
|
||||
@Autowired
|
||||
AIOTransformRegistry transformRegistry;
|
||||
|
||||
@PostConstruct
|
||||
private void init() throws Exception
|
||||
{
|
||||
adapter = new LibreOfficeAdapter(execPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
// Used by the super class to mock the javaExecutor, a different implementation is required here
|
||||
protected void setJavaExecutor(AbstractTransformerController controller, LibreOfficeJavaExecutor javaExecutor)
|
||||
{
|
||||
ReflectionTestUtils.setField(adapter, "javaExecutor", javaExecutor);
|
||||
//Need to wire in the mocked adapter into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerTransformMapping();
|
||||
transformers.replace("libreoffice", adapter);
|
||||
//Need to wire in the mocked javaExecutor into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerEngineMapping();
|
||||
transformers.replace("libreoffice", javaExecutor);
|
||||
// No need to set the transform registry to the controller as it is @Autowired in
|
||||
}
|
||||
|
||||
|
@@ -26,14 +26,7 @@
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.alfresco.transformer.transformers.PdfRendererAdapter;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -44,6 +37,10 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebMvcTest(AIOController.class)
|
||||
@Import(AIOCustomConfig.class)
|
||||
@@ -53,27 +50,17 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilde
|
||||
*/
|
||||
public class AIOControllerPdfRendererTest extends AlfrescoPdfRendererControllerTest
|
||||
{
|
||||
// All tests contained IN AlfrescoPdfRendererControllerTest
|
||||
PdfRendererAdapter adapter;
|
||||
|
||||
@Autowired
|
||||
AIOTransformRegistry transformRegistry;
|
||||
|
||||
@PostConstruct
|
||||
private void init() throws Exception
|
||||
{
|
||||
adapter = new PdfRendererAdapter(execPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setFields()
|
||||
{
|
||||
ReflectionTestUtils.setField(commandExecutor, "transformCommand", mockTransformCommand);
|
||||
ReflectionTestUtils.setField(commandExecutor, "checkCommand", mockCheckCommand);
|
||||
ReflectionTestUtils.setField(adapter, "pdfExecutor", commandExecutor);
|
||||
//Need to wire in the mocked adapter into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerTransformMapping();
|
||||
transformers.replace("pdfrenderer", adapter);
|
||||
//Need to wire in the mocked commandExecutor into the controller...
|
||||
Map<String,Transformer> transformers = transformRegistry.getTransformerEngineMapping();
|
||||
transformers.replace("pdfrenderer", commandExecutor);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,56 +1,44 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.transformer.executors.LibreOfficeJavaExecutor;
|
||||
|
||||
public class LibreOfficeAdapter implements Transformer
|
||||
{
|
||||
private static String ID = "libreoffice";
|
||||
private LibreOfficeJavaExecutor javaExecutor;
|
||||
|
||||
public LibreOfficeAdapter(String execPath) throws Exception
|
||||
{
|
||||
javaExecutor = new LibreOfficeJavaExecutor(execPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype,
|
||||
Map<String, String> transformOptions)
|
||||
{
|
||||
javaExecutor.call(sourceFile, targetFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTransformerId()
|
||||
{
|
||||
return ID;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
|
||||
/**
|
||||
* Metadata integration tests in the Misc T-Engine, but run from the AIO T-Engine.
|
||||
*
|
||||
* @author adavis
|
||||
*/
|
||||
@RunWith(Parameterized.class)
|
||||
public class AIOMiscMetadataExtractsIT extends MiscMetadataExtractsIT
|
||||
{
|
||||
public AIOMiscMetadataExtractsIT(TestFileInfo testFileInfo)
|
||||
{
|
||||
super(testFileInfo);
|
||||
}
|
||||
}
|
@@ -24,35 +24,21 @@
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
package org.alfresco.transformer;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Parameterized;
|
||||
|
||||
public class MiscAdapter implements Transformer
|
||||
/**
|
||||
* Metadata integration tests in the Tika T-Engine, but run from the AIO T-Engine.
|
||||
*
|
||||
* @author adavis
|
||||
*/
|
||||
@RunWith(Parameterized.class)
|
||||
public class AIOTikaMetadataExtractsIT extends TikaMetadataExtractsIT
|
||||
{
|
||||
private static final String ID = "misc";
|
||||
private SelectingTransformer miscSelectingTransformer;
|
||||
|
||||
public MiscAdapter()
|
||||
public AIOTikaMetadataExtractsIT(TestFileInfo testFileInfo)
|
||||
{
|
||||
miscSelectingTransformer = new SelectingTransformer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype, Map<String,
|
||||
String> transformOptions)
|
||||
{
|
||||
String transformerName = transformOptions.get(TRANSFORM_NAME_PARAMETER);
|
||||
miscSelectingTransformer.transform(transformerName, sourceFile, targetFile,
|
||||
sourceMimetype, targetMimetype, transformOptions);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTransformerId()
|
||||
{
|
||||
return ID;
|
||||
super(testFileInfo);
|
||||
}
|
||||
}
|
||||
|
@@ -28,27 +28,20 @@ package org.alfresco.transformer;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.alfresco.transform.client.model.config.TransformConfig;
|
||||
import org.alfresco.transform.client.model.config.TransformOption;
|
||||
import org.alfresco.transform.client.registry.AbstractTransformRegistry;
|
||||
import org.alfresco.transform.client.registry.TransformCache;
|
||||
import org.alfresco.transform.exceptions.TransformException;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||
|
||||
/**
|
||||
* AIOTransformRegistry manages all of the sub transformers registered to it and provides aggregated TransformConfig.
|
||||
@@ -67,8 +60,8 @@ public class AIOTransformRegistry extends AbstractTransformRegistry
|
||||
|
||||
private ObjectMapper jsonObjectMapper = new ObjectMapper();
|
||||
|
||||
//Represents the mapping between a transform and a transformer, multiple mappings can point to the same transformer.
|
||||
private Map<String, Transformer> transformerTransformMapping = new HashMap();
|
||||
// Represents the mapping between a transform and a transformer, multiple mappings can point to the same transformer.
|
||||
private Map<String, Transformer> transformerEngineMapping = new HashMap();
|
||||
|
||||
/**
|
||||
* The registration will go through all supported sub transformers and map them to the transformer implementation.
|
||||
@@ -87,11 +80,11 @@ public class AIOTransformRegistry extends AbstractTransformRegistry
|
||||
for (org.alfresco.transform.client.model.config.Transformer transformerConfig : transformConfig.getTransformers())
|
||||
{
|
||||
String transformerName = transformerConfig.getTransformerName();
|
||||
if (transformerTransformMapping.containsKey(transformerName))
|
||||
if (transformerEngineMapping.containsKey(transformerName))
|
||||
{
|
||||
throw new Exception("Transformer name " + transformerName + " is already registered.");
|
||||
}
|
||||
transformerTransformMapping.put(transformerName, transformer);
|
||||
transformerEngineMapping.put(transformerName, transformer);
|
||||
log.debug("Registered transformer with name: '{}'.", transformerName);
|
||||
}
|
||||
|
||||
@@ -108,7 +101,7 @@ public class AIOTransformRegistry extends AbstractTransformRegistry
|
||||
*/
|
||||
public Transformer getByTransformName(final String transformName)
|
||||
{
|
||||
return getTransformerTransformMapping().get(transformName);
|
||||
return getTransformerEngineMapping().get(transformName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -144,14 +137,14 @@ public class AIOTransformRegistry extends AbstractTransformRegistry
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, Transformer> getTransformerTransformMapping()
|
||||
Map<String, Transformer> getTransformerEngineMapping()
|
||||
{
|
||||
return transformerTransformMapping;
|
||||
return transformerEngineMapping;
|
||||
}
|
||||
|
||||
void setTransformerTransformMapping(Map<String, Transformer> transformerTransformMapping)
|
||||
void setTransformerEngineMapping(Map<String, Transformer> transformerEngineMapping)
|
||||
{
|
||||
this.transformerTransformMapping = transformerTransformMapping;
|
||||
this.transformerEngineMapping = transformerEngineMapping;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,120 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
|
||||
import static org.alfresco.transformer.util.RequestParamMap.ALLOW_ENLARGEMENT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.ALPHA_REMOVE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.AUTO_ORIENT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.COMMAND_OPTIONS;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_GRAVITY;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_HEIGHT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_PERCENTAGE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_WIDTH;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_X_OFFSET;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.CROP_Y_OFFSET;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.END_PAGE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.MAINTAIN_ASPECT_RATIO;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.RESIZE_HEIGHT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.RESIZE_PERCENTAGE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.RESIZE_WIDTH;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.START_PAGE;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.THUMBNAIL;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TIMEOUT;
|
||||
import static org.alfresco.transformer.util.Util.stringToInteger;
|
||||
import static org.alfresco.transformer.util.Util.stringToLong;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.transformer.ImageMagickOptionsBuilder;
|
||||
import org.alfresco.transformer.executors.ImageMagickCommandExecutor;
|
||||
|
||||
public class ImageMagickAdapter implements Transformer
|
||||
{
|
||||
|
||||
private static String ID = "imagemagick";
|
||||
private ImageMagickCommandExecutor commandExecutor;
|
||||
|
||||
public ImageMagickAdapter(String exe, String dyn, String root, String coder, String config) throws Exception
|
||||
{
|
||||
commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root, coder, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype,
|
||||
Map<String, String> transformOptions)
|
||||
{
|
||||
|
||||
final String options = ImageMagickOptionsBuilder
|
||||
.builder()
|
||||
.withStartPage(transformOptions.get(START_PAGE))
|
||||
.withEndPage(transformOptions.get(END_PAGE))
|
||||
.withAlphaRemove(transformOptions.get(ALPHA_REMOVE))
|
||||
.withAutoOrient(transformOptions.get(AUTO_ORIENT))
|
||||
.withCropGravity(transformOptions.get(CROP_GRAVITY))
|
||||
.withCropWidth(transformOptions.get(CROP_WIDTH))
|
||||
.withCropHeight(transformOptions.get(CROP_HEIGHT))
|
||||
.withCropPercentage(transformOptions.get(CROP_PERCENTAGE))
|
||||
.withCropXOffset(transformOptions.get(CROP_X_OFFSET))
|
||||
.withCropYOffset(transformOptions.get(CROP_Y_OFFSET))
|
||||
.withThumbnail(transformOptions.get(THUMBNAIL))
|
||||
.withResizeWidth(transformOptions.get(RESIZE_WIDTH))
|
||||
.withResizeHeight(transformOptions.get(RESIZE_HEIGHT))
|
||||
.withResizePercentage(transformOptions.get(RESIZE_PERCENTAGE))
|
||||
.withAllowEnlargement(transformOptions.get(ALLOW_ENLARGEMENT))
|
||||
.withMaintainAspectRatio(transformOptions.get(MAINTAIN_ASPECT_RATIO))
|
||||
.withCommandOptions(transformOptions.get(COMMAND_OPTIONS))
|
||||
.build();
|
||||
|
||||
String pageRange = calculatePageRange(
|
||||
stringToInteger(transformOptions.get(START_PAGE)),
|
||||
stringToInteger(transformOptions.get(END_PAGE))
|
||||
);
|
||||
|
||||
Long timeout = stringToLong(transformOptions.get(TIMEOUT));
|
||||
|
||||
commandExecutor.run(options, sourceFile, pageRange, targetFile, timeout);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTransformerId()
|
||||
{
|
||||
return ID;
|
||||
}
|
||||
|
||||
// COPIED From ImageMagickController
|
||||
private static String calculatePageRange(Integer startPage, Integer endPage)
|
||||
{
|
||||
return startPage == null
|
||||
? endPage == null
|
||||
? ""
|
||||
: "[" + endPage + ']'
|
||||
: endPage == null || startPage.equals(endPage)
|
||||
? "[" + startPage + ']'
|
||||
: "[" + startPage + '-' + endPage + ']';
|
||||
}
|
||||
}
|
@@ -1,79 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
|
||||
import static org.alfresco.transformer.util.RequestParamMap.ALLOW_PDF_ENLARGEMENT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.HEIGHT_REQUEST_PARAM;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.MAINTAIN_PDF_ASPECT_RATIO;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.PAGE_REQUEST_PARAM;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TIMEOUT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.WIDTH_REQUEST_PARAM;
|
||||
import static org.alfresco.transformer.util.Util.stringToLong;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.transformer.executors.PdfRendererCommandExecutor;
|
||||
import org.alfresco.transformer.PdfRendererOptionsBuilder;
|
||||
|
||||
|
||||
public class PdfRendererAdapter implements Transformer
|
||||
{
|
||||
private static String ID = "pdfrenderer";
|
||||
private PdfRendererCommandExecutor pdfExecutor;
|
||||
|
||||
public PdfRendererAdapter(String execPath) throws Exception
|
||||
{
|
||||
pdfExecutor = new PdfRendererCommandExecutor(execPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype,
|
||||
Map<String, String> transformOptions)
|
||||
{
|
||||
|
||||
final String options = PdfRendererOptionsBuilder
|
||||
.builder()
|
||||
.withPage(transformOptions.get(PAGE_REQUEST_PARAM))
|
||||
.withWidth(transformOptions.get(WIDTH_REQUEST_PARAM))
|
||||
.withHeight(transformOptions.get(HEIGHT_REQUEST_PARAM))
|
||||
.withAllowPdfEnlargement(transformOptions.get(ALLOW_PDF_ENLARGEMENT))
|
||||
.withMaintainPdfAspectRatio(transformOptions.get(MAINTAIN_PDF_ASPECT_RATIO))
|
||||
.build();
|
||||
|
||||
Long timeout = stringToLong(transformOptions.get(TIMEOUT));
|
||||
|
||||
pdfExecutor.run(options, sourceFile, targetFile, timeout);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTransformerId()
|
||||
{
|
||||
return ID;
|
||||
}
|
||||
|
||||
}
|
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
|
||||
import org.alfresco.transformer.executors.TikaJavaExecutor;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import static java.lang.Boolean.parseBoolean;
|
||||
import static org.alfresco.transformer.executors.Tika.INCLUDE_CONTENTS;
|
||||
import static org.alfresco.transformer.executors.Tika.NOT_EXTRACT_BOOKMARKS_TEXT;
|
||||
import static org.alfresco.transformer.executors.Tika.TARGET_ENCODING;
|
||||
import static org.alfresco.transformer.executors.Tika.TARGET_MIMETYPE;
|
||||
|
||||
public class TikaAdapter implements Transformer
|
||||
{
|
||||
private static final String ID = "tika";
|
||||
private TikaJavaExecutor tikaJavaExecutor;
|
||||
|
||||
public TikaAdapter() throws Exception
|
||||
{
|
||||
tikaJavaExecutor = new TikaJavaExecutor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype,
|
||||
Map<String, String> transformOptions) throws Exception
|
||||
{
|
||||
final String transform = transformOptions.get(TRANSFORM_NAME_PARAMETER);
|
||||
|
||||
final boolean includeContents = parseBoolean(
|
||||
transformOptions.getOrDefault("includeContents", "false"));
|
||||
final boolean notExtractBookmarksText = parseBoolean(
|
||||
transformOptions.getOrDefault("notExtractBookmarksText", "false"));
|
||||
final String targetEncoding = transformOptions.getOrDefault("targetEncoding", "UTF-8");
|
||||
|
||||
tikaJavaExecutor.call(sourceFile, targetFile, transform,
|
||||
includeContents ? INCLUDE_CONTENTS : null,
|
||||
notExtractBookmarksText ? NOT_EXTRACT_BOOKMARKS_TEXT : null,
|
||||
TARGET_MIMETYPE + targetMimetype, TARGET_ENCODING + targetEncoding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTransformerId()
|
||||
{
|
||||
return ID;
|
||||
}
|
||||
}
|
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Transform Core
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2020 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 <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.transformer.transformers;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* Interface for transformers used with {@link org.alfresco.transformer.AIOTransformRegistry}.
|
||||
*/
|
||||
public interface Transformer
|
||||
{
|
||||
// Additional parameter used by transformers like {@link TikaAdapter} and {@link MiscAdapter}
|
||||
String TRANSFORM_NAME_PARAMETER = "alfresco.transform-name-parameter";
|
||||
|
||||
/**
|
||||
* Implementation of the actual transformation.
|
||||
*
|
||||
* @param sourceFile
|
||||
* @param targetFile
|
||||
* @param transformOptions
|
||||
* @throws Exception
|
||||
*/
|
||||
void transform(File sourceFile, File targetFile, String sourceMimetype,
|
||||
String targetMimetype, Map<String, String> transformOptions) throws Exception;
|
||||
|
||||
/**
|
||||
* @return A unique transformer id,
|
||||
*
|
||||
*/
|
||||
String getTransformerId();
|
||||
}
|
||||
|
||||
|
@@ -28,9 +28,9 @@ package org.alfresco.transformer;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.alfresco.transform.client.model.config.TransformConfig;
|
||||
import org.alfresco.transformer.transformers.MiscAdapter;
|
||||
import org.alfresco.transformer.transformers.TikaAdapter;
|
||||
import org.alfresco.transformer.transformers.Transformer;
|
||||
import org.alfresco.transformer.executors.TikaJavaExecutor;
|
||||
import org.alfresco.transformer.executors.Transformer;
|
||||
import org.alfresco.transformer.transformers.SelectingTransformer;
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.text.PDFTextStripper;
|
||||
import org.junit.Before;
|
||||
@@ -43,23 +43,22 @@ import java.io.OutputStreamWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.alfresco.transformer.transformers.TextToPdfContentTransformer.PAGE_LIMIT;
|
||||
import static org.alfresco.transformer.transformers.Transformer.TRANSFORM_NAME_PARAMETER;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.PAGE_LIMIT;
|
||||
import static org.alfresco.transformer.util.RequestParamMap.TRANSFORM_NAME_PARAMETER;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class AIOTransformRegistryTest
|
||||
{
|
||||
private static final String SOURCE_MIMETYPE = "text/html";
|
||||
private static final String TARGET_MIMETYPE = "text/plain";
|
||||
String SOURCE_ENCODING = "sourceEncoding";
|
||||
String TARGET_ENCODING = "targetEncoding";
|
||||
|
||||
AIOTransformRegistry aioTransformerRegistry = new AIOTransformRegistry();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
@@ -68,8 +67,8 @@ public class AIOTransformRegistryTest
|
||||
@Before
|
||||
public void before() throws Exception
|
||||
{
|
||||
aioTransformerRegistry.registerTransformer(new MiscAdapter());
|
||||
aioTransformerRegistry.registerTransformer(new TikaAdapter());
|
||||
aioTransformerRegistry.registerTransformer(new SelectingTransformer());
|
||||
aioTransformerRegistry.registerTransformer(new TikaJavaExecutor());
|
||||
|
||||
}
|
||||
|
||||
@@ -153,7 +152,7 @@ public class AIOTransformRegistryTest
|
||||
public void testDuplicateTransformsException() throws Exception
|
||||
{
|
||||
// The Misc transformers are already registered
|
||||
aioTransformerRegistry.registerTransformer(new MiscAdapter());
|
||||
aioTransformerRegistry.registerTransformer(new SelectingTransformer());
|
||||
}
|
||||
|
||||
// Test copied from Misc (HtmlParserContentTransformerTest) See ATS-712 aioTransformerRegistry - html
|
||||
@@ -187,7 +186,7 @@ public class AIOTransformRegistryTest
|
||||
parameters.put(SOURCE_ENCODING, "ISO-8859-1");
|
||||
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
|
||||
Transformer transformer = aioTransformerRegistry.getByTransformName("html");
|
||||
transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
@@ -201,7 +200,7 @@ public class AIOTransformRegistryTest
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
|
||||
parameters.put(SOURCE_ENCODING, "UTF-8");
|
||||
transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
@@ -214,7 +213,7 @@ public class AIOTransformRegistryTest
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
|
||||
parameters.put(SOURCE_ENCODING, "UTF-16");
|
||||
transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
@@ -240,7 +239,7 @@ public class AIOTransformRegistryTest
|
||||
parameters = new HashMap<>();
|
||||
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
|
||||
parameters.put(SOURCE_ENCODING, "ISO-8859-1");
|
||||
transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters);
|
||||
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
|
||||
assertEquals(expected, readFromFile(tmpD, "UTF-8"));
|
||||
tmpS.delete();
|
||||
tmpD.delete();
|
||||
@@ -298,7 +297,7 @@ public class AIOTransformRegistryTest
|
||||
parameters.put(PAGE_LIMIT, pageLimit);
|
||||
parameters.put(TRANSFORM_NAME_PARAMETER, "textToPdf");
|
||||
Transformer transformer = aioTransformerRegistry.getByTransformName("textToPdf");
|
||||
transformer.transform(sourceFile, targetFile, "text/plain", "application/pdf", parameters);
|
||||
transformer.transform("text/plain", "application/pdf", parameters, sourceFile, targetFile);
|
||||
|
||||
// Read back in the PDF and check it
|
||||
PDDocument doc = PDDocument.load(targetFile);
|
||||
|
@@ -69,6 +69,23 @@
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "HtmlMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "text/html", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/xhtml+xml", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "RFC822MetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "message/rfc822", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@@ -284,6 +284,7 @@
|
||||
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "application/xhtml+xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "text/xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.keynote", "priority": 120, "targetMediaType": "text/plain"},
|
||||
|
||||
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "text/plain"},
|
||||
@@ -293,6 +294,7 @@
|
||||
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "application/xhtml+xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "text/xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.numbers", "priority": 120, "targetMediaType": "text/plain"},
|
||||
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "text/plain"},
|
||||
@@ -352,6 +354,7 @@
|
||||
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "application/xhtml+xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/xml"},
|
||||
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "text/plain"},
|
||||
|
||||
{"sourceMediaType": "application/pdf", "priority": 55, "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/pdf", "maxSourceSizeBytes": 26214400, "priority": 55, "targetMediaType": "text/plain"},
|
||||
@@ -486,7 +489,12 @@
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/plain"},
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "application/xhtml+xml"},
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/xml"}
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "text/xml"},
|
||||
|
||||
{"sourceMediaType": "text/csv", "priority": 120, "targetMediaType": "text/html"},
|
||||
{"sourceMediaType": "text/csv", "priority": 120, "targetMediaType": "text/plain"},
|
||||
{"sourceMediaType": "text/csv", "priority": 120, "targetMediaType": "application/xhtml+xml"},
|
||||
{"sourceMediaType": "text/csv", "priority": 120, "targetMediaType": "text/xml"}
|
||||
],
|
||||
"transformOptions": [
|
||||
"tikaOptions"
|
||||
@@ -503,6 +511,464 @@
|
||||
"transformOptions": [
|
||||
"tikaOptions"
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "DWGMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/dwg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/vnd.dwg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-dwg", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "MailMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/vnd.ms-outlook", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "MP3MetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "audio/mpeg", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "OfficeMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/msword", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.visio", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.visio2013", "targetMediaType": "alfresco-metadata-extract"},
|
||||
|
||||
{"sourceMediaType": "application/x-tika-msoffice-embedded; format=ole10_native", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-project", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tika-msworks-spreadsheet", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-mspublisher", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tika-msoffice", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/sldworks", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tika-ooxml-protected", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "OpenDocumentMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.text", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.text-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.graphics", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.graphics-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.presentation-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.chart", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.chart-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.image", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.image-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.formula", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.formula-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.text-master", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.text-web", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.oasis.opendocument.database", "targetMediaType": "alfresco-metadata-extract"},
|
||||
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.presentation", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "applicationvnd.oasis.opendocument.image-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.text-web", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.image", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.spreadsheet-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.sun.xml.writer", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.graphics-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.chart", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.spreadsheet", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.text", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.text-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.formula", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.image-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.presentation-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "applicationvnd.oasis.opendocument.formula-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.chart-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.formula-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.text-master", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "applicationvnd.oasis.opendocument.chart-template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.oasis.opendocument.graphics", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "PdfBoxMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/pdf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/illustrator", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "PoiMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "targetMediaType": "alfresco-metadata-extract"},
|
||||
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint.template.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.addin.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.sheet.binary.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint.slide.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.drawing", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint.presentation.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slide", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.sheet.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-word.template.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-word.document.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-powerpoint.addin.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-xpsdocument", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.drawing.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.template.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "model/vnd.dwfx+xps", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.stencil", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.template", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio.stencil.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.template.macroenabled.12", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "TikaAudioMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "video/x-m4v", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-oggflac", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/mp4", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/vorbis", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/3gpp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-flac", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/3gpp2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/quicktime", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/mp4", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/mp4", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"transformerName": "TikaAutoMetadataExtractor",
|
||||
"supportedSourceAndTargetList": [
|
||||
{"sourceMediaType": "application/vnd.ms-htmlhelp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/atom+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/midi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/aaigrid", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-bag", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.apple.keynote", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-quattro-pro; version=9", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ibooks+zip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/wave", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-midi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/rss+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-netcdf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-daala", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/matlab-mat", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/aiff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/jaxa-pal-sar", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-pcraster", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/arg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-kro", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-hdf5-image", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/speex", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/big-gif", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/zlib", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-cosar", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ntv2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-archive", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/java-archive", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-vnd.sun.xml.writer", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gmt", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/gzip-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/ida", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/x-groovy", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-emf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rar", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/sar-ceos", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/acad", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/zip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/vnd.adobe.photoshop", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-sharedlib", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-m4a", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/webp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.wap.xhtml+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-aiff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-spreadsheetml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-airsar", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-pcidsk", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-java-pack200", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-fujibas", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-zmap", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-bmp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/bpg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/rtf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-xz", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-speex", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/ogg; codecs=speex", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-l1b", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gsbg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-sdat", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-visio", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-coredump", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-msaccess", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-dods", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/png", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-outlook-pst", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/bsb", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-cpio", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/ogg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tar", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-dbf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-ogm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-los-las", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/autocad_dwg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.workspace.3", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.workspace.4", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-bpg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "gzip/document", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/x-java", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-brotli", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/elas", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-jb2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-cappi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/epub+zip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ace2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-sas-data", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-hdf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-mff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-srp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/bmp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-ogguvs", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "drawing/dwg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-doq2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-acad", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-kml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-autocad", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-mff2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-snodas", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/terragen", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-wcs", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/x-c++src", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/timestamped-data", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/tiff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/msexcel", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-asp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rar-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-envi-hdr", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/iso19139+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-tnef", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ecrg-toc", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/aig", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-wav", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/emf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-bzip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/jdem", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-webp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-arj", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-lzma", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-java-vm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/envisat", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-doq1", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/vnd.wave", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ppi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/ilwis", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gunzip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-icon", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/ogg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/svg+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ms-owner", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-grib", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/ms-tnef", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/fits", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-mpeg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-bzip2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/tsv", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-fictionbook+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-p-aux", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-font-ttf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-xcf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-ms-bmp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/wmf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/eir", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-matlab-data", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/deflate64", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/wav", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rs2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-word", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tsx", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-lcp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-mbtiles", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-oggpcm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-epsilon", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-msgn", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/csv", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-dimap", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/vnd.microsoft.icon", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-envi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-dwg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.apple.numbers", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-word2006ml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-bt", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-font-adobe-metric", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rst", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vrt", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ctg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-e00-grid", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-ogg-flac", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-compress", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-psd", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/rss", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/sdts-raster", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/oxps", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/leveller", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ingr", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/sgi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-pnm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/raster", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-ogg-pcm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/ogg; codecs=opus", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/fits", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-r", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/gif", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/java-vm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/mspowerpoint", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-http", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rmf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ogg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/ogg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/applefile", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/rtf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/adrg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-ogg-rgb", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ngs-geoid", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-map", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/ceos", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/xpm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ers", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-ogg-yuv", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-isis2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-nwt-grd", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-isis3", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-nwt-grc", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/daala", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-blx", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tnef", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-dirac", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ndf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/vnd.wap.wbmp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/theora", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/kate", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/pkcs7-mime", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/fit", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-ctable2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-executable", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-isatab", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/grass-ascii-grid", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/plain", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/gzipped", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gxf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-cpg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-lan", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-xyz", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.apple.pages", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-jbig2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/nitf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/mbox", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/chm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-fast", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gsc", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-deflate", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-grib2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-ozi", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-pds", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.apple.iwork", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-usgs-dem", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.sheet.2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.sheet.3", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/dif+xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-excel.sheet.4", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-java", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/geotiff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gsag", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-snappy", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-theora", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/ntf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-pdf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/xml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.wordperfect; version=6.x", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/pkcs7-signature", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.wordperfect; version=5.1", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.wordperfect; version=5.0", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-arj-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/geotopic", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/x-java-source", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/basic", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/pcisdk", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rik", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/opus", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/jp2", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gtx", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-object", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/vnd.ms-wordml", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/x-wmf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rpf-toc", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-srtmhgt", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-generic-bin", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "text/vnd.iptc.anpa", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-msmetafile", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-wms", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-oggrgb", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/xcf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/photoshop", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-lz4", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-7z-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/gff", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-oggyuv", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-msdownload", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/jpeg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/icns", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-emf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-geo-pdf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-ogg-uvs", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "video/x-flv", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-zip-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/gzip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-tika-unix-dump", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-coasp", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-dipex", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-til", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gzip", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gs7bg", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-unix-archive", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-elf", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/dted", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-rasterlite", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "audio/x-mp4a", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-gzip-compressed", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "application/x-chm", "targetMediaType": "alfresco-metadata-extract"},
|
||||
{"sourceMediaType": "image/hfa", "targetMediaType": "alfresco-metadata-extract"}
|
||||
],
|
||||
"transformOptions": [
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user