MNT-24883 send full file name to ats transform

This commit is contained in:
bsayan2
2025-05-22 20:46:33 +05:30
parent 7c8a75ce6c
commit 6273d19f5b
3 changed files with 15 additions and 12 deletions

View File

@@ -33,14 +33,13 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import org.alfresco.httpclient.HttpClientConfig; import org.alfresco.httpclient.HttpClientConfig;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.content.metadata.AsynchronousExtractor; import org.alfresco.repo.content.metadata.AsynchronousExtractor;
import org.alfresco.repo.rendition2.RenditionDefinition2; import org.alfresco.repo.rendition2.RenditionDefinition2;
import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.*;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.MimetypeService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.transform.config.TransformOption; import org.alfresco.transform.config.TransformOption;
import org.alfresco.util.Pair; import org.alfresco.util.Pair;
import org.springframework.beans.factory.annotation.Autowired;
/** /**
* A local transformer using flat transform options. * A local transformer using flat transform options.
@@ -50,6 +49,7 @@ import org.alfresco.util.Pair;
public class LocalTransformImpl extends AbstractLocalTransform public class LocalTransformImpl extends AbstractLocalTransform
{ {
private RemoteTransformerClient remoteTransformerClient; private RemoteTransformerClient remoteTransformerClient;
TransformerDebug transformerDebug;
private boolean available = false; private boolean available = false;
@@ -64,6 +64,7 @@ public class LocalTransformImpl extends AbstractLocalTransform
{ {
super(name, transformerDebug, mimetypeService, strictMimeTypeCheck, strictMimetypeExceptions, super(name, transformerDebug, mimetypeService, strictMimeTypeCheck, strictMimetypeExceptions,
retryTransformOnDifferentMimeType, transformsTransformOptions, localTransformServiceRegistry); retryTransformOnDifferentMimeType, transformsTransformOptions, localTransformServiceRegistry);
this.transformerDebug = transformerDebug;
remoteTransformerClient = new RemoteTransformerClient(name, baseUrl, httpClientConfig); remoteTransformerClient = new RemoteTransformerClient(name, baseUrl, httpClientConfig);
remoteTransformerClient.setStartupRetryPeriodSeconds(startupRetryPeriodSeconds); remoteTransformerClient.setStartupRetryPeriodSeconds(startupRetryPeriodSeconds);
@@ -190,7 +191,8 @@ public class LocalTransformImpl extends AbstractLocalTransform
args[i++] = targetMimetype; args[i++] = targetMimetype;
targetExtension = AsynchronousExtractor.getExtension(targetMimetype, sourceExtension, targetExtension); targetExtension = AsynchronousExtractor.getExtension(targetMimetype, sourceExtension, targetExtension);
remoteTransformerClient.request(reader, writer, sourceMimetype, sourceExtension, targetExtension, String fileName = transformerDebug.getFilename(sourceNodeRef,true);
remoteTransformerClient.request(reader, writer, fileName, sourceMimetype, sourceExtension, targetExtension,
timeoutMs, log, args); timeoutMs, log, args);
} }
} }

View File

@@ -90,7 +90,7 @@ public class RemoteTransformerClient
return baseUrl; return baseUrl;
} }
public void request(ContentReader reader, ContentWriter writer, String sourceMimetype, String sourceExtension, public void request(ContentReader reader, ContentWriter writer, String fileName,String sourceMimetype, String sourceExtension,
String targetExtension, long timeoutMs, Log logger, String... args) String targetExtension, long timeoutMs, Log logger, String... args)
{ {
@@ -103,7 +103,7 @@ public class RemoteTransformerClient
try (InputStream contentStream = reader.getContentInputStream()) try (InputStream contentStream = reader.getContentInputStream())
{ {
HttpEntity reqEntity = getRequestEntity(contentStream, sourceMimetype, sourceExtension, targetExtension, timeoutMs, HttpEntity reqEntity = getRequestEntity(contentStream, sourceMimetype, fileName, targetExtension, timeoutMs,
args, sj); args, sj);
request(logger, sourceExtension, targetExtension, reqEntity, writer, sj.toString()); request(logger, sourceExtension, targetExtension, reqEntity, writer, sj.toString());
@@ -114,10 +114,10 @@ public class RemoteTransformerClient
} }
} }
HttpEntity getRequestEntity(ContentReader reader, String sourceMimetype, String sourceExtension, String targetExtension, HttpEntity getRequestEntity(ContentReader reader, String sourceMimetype,String fileName, String targetExtension,
long timeoutMs, String[] args, StringJoiner sj) long timeoutMs, String[] args, StringJoiner sj)
{ {
return getRequestEntity(reader.getContentInputStream(), sourceMimetype, sourceExtension, targetExtension, timeoutMs, args, sj); return getRequestEntity(reader.getContentInputStream(), sourceMimetype, fileName, targetExtension, timeoutMs, args, sj);
} }
void request(Log logger, String sourceExtension, String targetExtension, HttpEntity reqEntity, ContentWriter writer, String args) void request(Log logger, String sourceExtension, String targetExtension, HttpEntity reqEntity, ContentWriter writer, String args)
@@ -331,12 +331,12 @@ public class RemoteTransformerClient
return httpclient.execute(httpGet); return httpclient.execute(httpGet);
} }
private HttpEntity getRequestEntity(InputStream contentStream, String sourceMimetype, String sourceExtension, private HttpEntity getRequestEntity(InputStream contentStream, String sourceMimetype, String filename,
String targetExtension, long timeoutMs, String[] args, StringJoiner sj) String targetExtension, long timeoutMs, String[] args, StringJoiner sj)
{ {
MultipartEntityBuilder builder = MultipartEntityBuilder.create(); MultipartEntityBuilder builder = MultipartEntityBuilder.create();
ContentType contentType = ContentType.create(sourceMimetype); ContentType contentType = ContentType.create(sourceMimetype);
builder.addBinaryBody("file", contentStream, contentType, "tmp." + sourceExtension); builder.addBinaryBody("file", contentStream, contentType, filename);
builder.addTextBody("targetExtension", targetExtension); builder.addTextBody("targetExtension", targetExtension);
sj.add("targetExtension" + '=' + targetExtension); sj.add("targetExtension" + '=' + targetExtension);
for (int i = 0; i < args.length; i += 2) for (int i = 0; i < args.length; i += 2)

View File

@@ -94,6 +94,7 @@ public class RemoteTransformerClientTest
@Spy @Spy
private RemoteTransformerClient remoteTransformerClient = new RemoteTransformerClient("TRANSFORMER", "http://localhost:1234/test", new HttpClientConfig()); private RemoteTransformerClient remoteTransformerClient = new RemoteTransformerClient("TRANSFORMER", "http://localhost:1234/test", new HttpClientConfig());
private String fileName="test.doc";
private String sourceMimetype = "application/msword"; private String sourceMimetype = "application/msword";
private String sourceExtension = "doc"; private String sourceExtension = "doc";
private String targetExtension = "pdf"; private String targetExtension = "pdf";
@@ -141,7 +142,7 @@ public class RemoteTransformerClientTest
private void requestTransform() throws IllegalAccessException private void requestTransform() throws IllegalAccessException
{ {
remoteTransformerClient.request(mockReader, mockWriter, sourceMimetype, sourceExtension, targetExtension, remoteTransformerClient.request(mockReader, mockWriter, fileName, sourceMimetype, sourceExtension, targetExtension,
timeoutMs, mockLogger); timeoutMs, mockLogger);
} }