diff --git a/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java b/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java index 0e96c360..48ec051d 100644 --- a/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java +++ b/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java @@ -16,6 +16,7 @@ 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.logging.StandardMessages.ENTERPRISE_LICENCE; +import static org.springframework.http.HttpStatus.OK; import java.io.File; import java.util.Arrays; @@ -155,7 +156,7 @@ public class AlfrescoPdfRendererController extends AbstractTransformerController final ResponseEntity body = createAttachment(targetFilename, targetFile); LogEntry.setTargetSize(targetFile.length()); - long time = LogEntry.setStatusCodeAndMessage(200, "Success"); + long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); time += LogEntry.addDelay(testDelay); getProbeTestTransform().recordTransformTime(time); return body; diff --git a/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java b/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java index 25e58846..51f50afe 100644 --- a/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java +++ b/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java @@ -32,6 +32,8 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.when; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.OK; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -191,7 +193,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro .param("allowEnlargement", "true") .param("maintainAspectRatio", "true")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -211,7 +213,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro .param("allowEnlargement", "false") .param("maintainAspectRatio", "false")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -231,7 +233,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro when(mockExecutionResult.getExitValue()).thenReturn(1); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", "xxx")) - .andExpect(status().is(400)) + .andExpect(status().is(BAD_REQUEST.value())) .andExpect(status().reason(containsString("Transformer exit code was not 0: \nSTDERR"))); } @@ -259,7 +261,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro HttpHeaders headers = new HttpHeaders(); headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=quick." + sourceExtension); ResponseEntity response = new ResponseEntity<>(new FileSystemResource( - sourceFile), headers, HttpStatus.OK); + sourceFile), headers, OK); when(alfrescoSharedFileStoreClient.retrieveFile(sourceFileRef)).thenReturn(response); when(alfrescoSharedFileStoreClient.saveFile(any())).thenReturn(new FileRefResponse(new FileRefEntity(targetFileRef))); diff --git a/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java b/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java index 883ec1f7..7d834a9d 100644 --- a/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java +++ b/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java @@ -18,6 +18,8 @@ import static org.alfresco.transformer.fs.FileManager.createTargetFileName; import static org.alfresco.transformer.logging.StandardMessages.ENTERPRISE_LICENCE; import static org.alfresco.transformer.util.Util.stringToBoolean; import static org.alfresco.transformer.util.Util.stringToInteger; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.OK; import java.io.File; import java.util.Arrays; @@ -166,7 +168,7 @@ public class ImageMagickController extends AbstractTransformerController final ResponseEntity body = createAttachment(targetFilename, targetFile); LogEntry.setTargetSize(targetFile.length()); - long time = LogEntry.setStatusCodeAndMessage(200, "Success"); + long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); time += LogEntry.addDelay(testDelay); getProbeTestTransform().recordTransformTime(time); return body; @@ -217,7 +219,7 @@ public class ImageMagickController extends AbstractTransformerController } else if (!GRAVITY_VALUES.contains(cropGravity)) { - throw new TransformException(400, "Invalid cropGravity value"); + throw new TransformException(BAD_REQUEST.value(), "Invalid cropGravity value"); } } diff --git a/alfresco-docker-imagemagick/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java b/alfresco-docker-imagemagick/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java index 11e5ef17..80ee9779 100644 --- a/alfresco-docker-imagemagick/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java +++ b/alfresco-docker-imagemagick/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java @@ -32,6 +32,8 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.when; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.OK; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -186,7 +188,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest .file(sourceFile) .param("targetExtension", targetExtension) .param("cropGravity", value)) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -199,7 +201,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest .file(sourceFile) .param("targetExtension", targetExtension) .param("cropGravity", "badValue")) - .andExpect(status().is(400)); + .andExpect(status().is(BAD_REQUEST.value())); } @Test @@ -231,7 +233,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest .param("allowEnlargement", "true") .param("maintainAspectRatio", "true")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -265,7 +267,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest .param("allowEnlargement", "false") .param("maintainAspectRatio", "false")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -282,7 +284,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest .param("resizeWidth", "321") .param("resizeHeight", "654") .param("commandOptions", "( horrible command / );")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick."+targetExtension)); } @@ -302,7 +304,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest when(mockExecutionResult.getExitValue()).thenReturn(1); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", "xxx")) - .andExpect(status().is(400)) + .andExpect(status().is(BAD_REQUEST.value())) .andExpect(status().reason(containsString("Transformer exit code was not 0: \nSTDERR"))); } @@ -330,7 +332,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest HttpHeaders headers = new HttpHeaders(); headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=quick." + sourceExtension); ResponseEntity response = new ResponseEntity<>(new FileSystemResource( - sourceFile), headers, HttpStatus.OK); + sourceFile), headers, OK); when(alfrescoSharedFileStoreClient.retrieveFile(sourceFileRef)).thenReturn(response); when(alfrescoSharedFileStoreClient.saveFile(any())).thenReturn(new FileRefResponse(new FileRefEntity(targetFileRef))); diff --git a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java index a6351ab3..872efe47 100644 --- a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java +++ b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java @@ -16,6 +16,7 @@ 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.logging.StandardMessages.ENTERPRISE_LICENCE; +import static org.springframework.http.HttpStatus.OK; import java.io.File; import java.util.Arrays; @@ -120,7 +121,7 @@ public class LibreOfficeController extends AbstractTransformerController final ResponseEntity body = createAttachment(targetFilename, targetFile); LogEntry.setTargetSize(targetFile.length()); - long time = LogEntry.setStatusCodeAndMessage(200, "Success"); + long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); time += LogEntry.addDelay(testDelay); getProbeTestTransform().recordTransformTime(time); return body; diff --git a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java index 794b9488..47bbb926 100644 --- a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java +++ b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java @@ -1,5 +1,8 @@ package org.alfresco.transformer.executors; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; + import java.io.File; import java.io.IOException; @@ -62,9 +65,10 @@ public class LibreOfficeJavaExecutor implements JavaExecutor } catch (OfficeException e) { - throw new TransformException(400, "LibreOffice server conversion failed: \n" + - " from file: " + sourceFile + "\n" + - " to file: " + targetFile, e); + throw new TransformException(BAD_REQUEST.value(), + "LibreOffice server conversion failed: \n" + + " from file: " + sourceFile + "\n" + + " to file: " + targetFile, e); } catch (Throwable throwable) { @@ -86,7 +90,8 @@ public class LibreOfficeJavaExecutor implements JavaExecutor if (!targetFile.exists() || targetFile.length() == 0L) { - throw new TransformException(500, "Transformer failed to create an output file"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer failed to create an output file"); } } @@ -120,7 +125,8 @@ public class LibreOfficeJavaExecutor implements JavaExecutor } catch (IOException iox) { - throw new TransformException(500, "Error creating empty PDF file", iox); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Error creating empty PDF file", iox); } } } diff --git a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java index e6614111..f4694b5b 100644 --- a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java +++ b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java @@ -24,6 +24,8 @@ import static org.alfresco.transformer.fs.FileManager.createTargetFile; import static org.alfresco.transformer.fs.FileManager.createTargetFileName; import static org.alfresco.transformer.logging.StandardMessages.ENTERPRISE_LICENCE; import static org.alfresco.transformer.util.Util.stringToBoolean; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.OK; import java.io.File; import java.util.Arrays; @@ -129,7 +131,7 @@ public class TikaController extends AbstractTransformerController { if (!TRANSFORM_NAMES.contains(transform)) { - throw new TransformException(400, "Invalid transform value"); + throw new TransformException(BAD_REQUEST.value(), "Invalid transform value"); } String targetFilename = createTargetFileName(sourceMultipartFile.getOriginalFilename(), targetExtension); @@ -148,7 +150,7 @@ public class TikaController extends AbstractTransformerController final ResponseEntity body = createAttachment(targetFilename, targetFile); LogEntry.setTargetSize(targetFile.length()); - long time = LogEntry.setStatusCodeAndMessage(200, "Success"); + long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); time += LogEntry.addDelay(testDelay); getProbeTestTransform().recordTransformTime(time); return body; diff --git a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/executors/TikaJavaExecutor.java b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/executors/TikaJavaExecutor.java index 84af7ac5..f6bea547 100644 --- a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/executors/TikaJavaExecutor.java +++ b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/executors/TikaJavaExecutor.java @@ -1,6 +1,7 @@ package org.alfresco.transformer.executors; -import org.springframework.stereotype.Component; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; import java.io.File; import java.io.IOException; @@ -11,6 +12,7 @@ import org.alfresco.transformer.exceptions.TransformException; import org.alfresco.transformer.logging.LogEntry; import org.apache.tika.exception.TikaException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.xml.sax.SAXException; @Component @@ -35,15 +37,16 @@ public class TikaJavaExecutor implements JavaExecutor } catch (IllegalArgumentException e) { - throw new TransformException(400, getMessage(e)); + throw new TransformException(BAD_REQUEST.value(), getMessage(e)); } catch (Exception e) { - throw new TransformException(500, getMessage(e)); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), getMessage(e)); } if (!targetFile.exists() || targetFile.length() == 0) { - throw new TransformException(500, "Transformer failed to create an output file"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer failed to create an output file"); } } diff --git a/alfresco-docker-tika/src/test/java/org/alfresco/transformer/TikaControllerTest.java b/alfresco-docker-tika/src/test/java/org/alfresco/transformer/TikaControllerTest.java index a8acc050..d38fdc36 100644 --- a/alfresco-docker-tika/src/test/java/org/alfresco/transformer/TikaControllerTest.java +++ b/alfresco-docker-tika/src/test/java/org/alfresco/transformer/TikaControllerTest.java @@ -63,6 +63,8 @@ import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.when; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; +import static org.springframework.http.HttpStatus.OK; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -236,7 +238,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest ? mockMvcRequest("/transform", sourceFile, "targetExtension", this.targetExtension) : mockMvcRequest("/transform", sourceFile, "targetExtension", this.targetExtension, "includeContents", includeContents.toString()); MvcResult result = mockMvc.perform(requestBuilder) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + this.targetExtension)). andReturn(); String content = result.getResponse().getContentAsString(); @@ -335,7 +337,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest mockTransformCommand(PDF, TXT, MIMETYPE_PDF, true); targetEncoding = "rubbish"; mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(500)); + .andExpect(status().is(INTERNAL_SERVER_ERROR.value())); } // --- Archive --- @@ -498,7 +500,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest { mockTransformCommand(PDF, TXT, MIMETYPE_PDF, true); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension).param("notExtractBookmarksText", "true")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + targetExtension)); } @@ -538,7 +540,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest HttpHeaders headers = new HttpHeaders(); headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=quick." + sourceExtension); ResponseEntity response = new ResponseEntity<>(new FileSystemResource( - sourceFile), headers, HttpStatus.OK); + sourceFile), headers, OK); when(alfrescoSharedFileStoreClient.retrieveFile(sourceFileRef)).thenReturn(response); when(alfrescoSharedFileStoreClient.saveFile(any())).thenReturn(new FileRefResponse(new FileRefEntity(targetFileRef))); diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java index e74a62d3..556a35d6 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java @@ -29,6 +29,7 @@ import static org.alfresco.transformer.fs.FileManager.buildFile; import static org.alfresco.transformer.fs.FileManager.createTargetFileName; import static org.alfresco.transformer.fs.FileManager.getFilenameFromContentDisposition; import static org.alfresco.transformer.fs.FileManager.save; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import java.io.File; @@ -151,7 +152,7 @@ public abstract class AbstractTransformerController implements TransformControll } catch (Exception e) { - reply.setStatus(500); + reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails("Failed at reading the source file. " + e.getMessage()); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); @@ -177,7 +178,7 @@ public abstract class AbstractTransformerController implements TransformControll } catch (Exception e) { - reply.setStatus(500); + reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails("Failed at processing transformation. " + e.getMessage()); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); @@ -205,7 +206,7 @@ public abstract class AbstractTransformerController implements TransformControll } catch (Exception e) { - reply.setStatus(500); + reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails("Failed at writing the transformed file. " + e.getMessage()); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java index e92d1bc5..0eb4b7c6 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java @@ -1,5 +1,7 @@ package org.alfresco.transformer; +import static org.springframework.http.HttpStatus.BAD_REQUEST; + import java.io.File; import java.io.IOException; import java.util.Collection; @@ -92,7 +94,7 @@ public interface TransformController String transformerName = getTransformerName(); String name = e.getParameterName(); String message = "Request parameter " + name + " is of the wrong type"; - int statusCode = 400; + int statusCode = BAD_REQUEST.value(); logger.error(message); @@ -108,7 +110,7 @@ public interface TransformController String transformerName = getTransformerName(); String name = e.getParameterName(); String message = "Request parameter " + name + " is missing"; - int statusCode = 400; + int statusCode = BAD_REQUEST.value(); logger.error(message); diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java index 31a48263..ee54490b 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java @@ -1,5 +1,8 @@ package org.alfresco.transformer.executors; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; + import java.io.File; import java.util.Map; @@ -34,12 +37,14 @@ public abstract class AbstractCommandExecutor implements CommandExecutor if (result.getExitValue() != 0 && result.getStdErr() != null && result.getStdErr().length() > 0) { - throw new TransformException(400, "Transformer exit code was not 0: \n" + result.getStdErr()); + throw new TransformException(BAD_REQUEST.value(), + "Transformer exit code was not 0: \n" + result.getStdErr()); } if (!targetFile.exists() || targetFile.length() == 0) { - throw new TransformException(500, "Transformer failed to create an output file"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer failed to create an output file"); } } @@ -52,13 +57,15 @@ public abstract class AbstractCommandExecutor implements CommandExecutor RuntimeExec.ExecutionResult result = checkCommand.execute(); if (result.getExitValue() != 0 && result.getStdErr() != null && result.getStdErr().length() > 0) { - throw new TransformException(500, "Transformer version check exit code was not 0: \n" + result); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer version check exit code was not 0: \n" + result); } version = result.getStdOut().trim(); if (version.isEmpty()) { - throw new TransformException(500, "Transformer version check failed to create any output"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer version check failed to create any output"); } } diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java index 7a1f61b5..e983733f 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/fs/FileManager.java @@ -1,5 +1,9 @@ package org.alfresco.transformer.fs; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INSUFFICIENT_STORAGE; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; + import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -64,7 +68,7 @@ public class FileManager if (filename == null || filename.isEmpty()) { String sourceOrTarget = source ? "source" : "target"; - int statusCode = source ? 400 : 500; + int statusCode = source ? BAD_REQUEST.value() : INTERNAL_SERVER_ERROR.value(); throw new TransformException(statusCode, "The " + sourceOrTarget + " filename was not supplied"); } return filename; @@ -78,7 +82,8 @@ public class FileManager } catch (IOException e) { - throw new TransformException(507, "Failed to store the source file", e); + throw new TransformException(INSUFFICIENT_STORAGE.value(), + "Failed to store the source file", e); } } @@ -90,7 +95,7 @@ public class FileManager } catch (IOException e) { - throw new TransformException(507, "Failed to store the source file", e); + throw new TransformException(INSUFFICIENT_STORAGE.value(), "Failed to store the source file", e); } } @@ -105,12 +110,14 @@ public class FileManager } else { - throw new TransformException(500, "Could not read the target file: " + file.getPath()); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Could not read the target file: " + file.getPath()); } } catch (MalformedURLException e) { - throw new TransformException(500, "The target filename was malformed: " + file.getPath(), e); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "The target filename was malformed: " + file.getPath(), e); } } diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/logging/LogEntry.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/logging/LogEntry.java index 2d0fdbb2..28839cc0 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/logging/LogEntry.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/logging/LogEntry.java @@ -26,6 +26,7 @@ package org.alfresco.transformer.logging; import static java.lang.Math.max; +import static org.springframework.http.HttpStatus.OK; import java.text.SimpleDateFormat; import java.util.Collection; @@ -196,7 +197,7 @@ public final class LogEntry public static void complete() { LogEntry logEntry = currentLogEntry.get(); - if (logEntry.statusCode == 200) + if (logEntry.statusCode == OK.value()) { logEntry.durationStreamOut = System.currentTimeMillis() - logEntry.start - logEntry.durationStreamIn - max(logEntry.durationTransform, 0) - max(logEntry.durationDelay, 0); diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/probes/ProbeTestTransform.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/probes/ProbeTestTransform.java index 748646e6..bc0a9442 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/probes/ProbeTestTransform.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/probes/ProbeTestTransform.java @@ -27,6 +27,10 @@ package org.alfresco.transformer.probes; import static org.alfresco.transformer.fs.FileManager.SOURCE_FILE; import static org.alfresco.transformer.fs.FileManager.TARGET_FILE; +import static org.springframework.http.HttpStatus.INSUFFICIENT_STORAGE; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; +import static org.springframework.http.HttpStatus.OK; +import static org.springframework.http.HttpStatus.TOO_MANY_REQUESTS; import java.io.File; import java.io.IOException; @@ -187,7 +191,7 @@ public abstract class ProbeTestTransform { String probeMessage = getProbeMessage(isLiveProbe); String message = "Success - No transform."; - LogEntry.setStatusCodeAndMessage(200, probeMessage + message); + LogEntry.setStatusCodeAndMessage(OK.value(), probeMessage + message); if (!isLiveProbe && !readySent.getAndSet(true)) { logger.info(probeMessage+message); @@ -223,9 +227,10 @@ public abstract class ProbeTestTransform if (time > maxTime) { - throw new TransformException(500, getMessagePrefix(isLiveProbe) + - message + " which is more than " + livenessPercent + - "% slower than the normal value of " + normalTime + "ms"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + getMessagePrefix(isLiveProbe) + + message + " which is more than " + livenessPercent + + "% slower than the normal value of " + normalTime + "ms"); } // We don't care if the ready or live probe works out if we are 'ready' to take requests. @@ -240,14 +245,14 @@ public abstract class ProbeTestTransform { if (die.get()) { - throw new TransformException(429, getMessagePrefix(isLiveProbe) + + throw new TransformException(TOO_MANY_REQUESTS.value(), getMessagePrefix(isLiveProbe) + "Transformer requested to die. A transform took longer than "+ (maxTransformTime *1000)+" seconds"); } if (maxTransformCount > 0 && transformCount.get() > maxTransformCount) { - throw new TransformException(429, getMessagePrefix(isLiveProbe) + + throw new TransformException(TOO_MANY_REQUESTS.value(), getMessagePrefix(isLiveProbe) + "Transformer requested to die. It has performed more than "+ maxTransformCount+" transformations"); } @@ -264,7 +269,7 @@ public abstract class ProbeTestTransform } catch (IOException e) { - throw new TransformException(507, getMessagePrefix(isLiveProbe)+ + throw new TransformException(INSUFFICIENT_STORAGE.value(), getMessagePrefix(isLiveProbe)+ "Failed to store the source file", e); } long length = sourceFile.length(); @@ -320,17 +325,19 @@ public abstract class ProbeTestTransform String probeMessage = getProbeMessage(isLiveProbe); if (!targetFile.exists() || !targetFile.isFile()) { - throw new TransformException(500, probeMessage +"Target File \""+targetFile.getAbsolutePath()+"\" did not exist"); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + probeMessage + "Target File \"" + targetFile.getAbsolutePath() + "\" did not exist"); } long length = targetFile.length(); if (length < minExpectedLength || length > maxExpectedLength) { - throw new TransformException(500, probeMessage +"Target File \""+targetFile.getAbsolutePath()+ - "\" was the wrong size ("+ length+"). Needed to be between "+minExpectedLength+" and "+ - maxExpectedLength); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + probeMessage + "Target File \"" + targetFile.getAbsolutePath() + + "\" was the wrong size (" + length + "). Needed to be between " + + minExpectedLength + " and " + maxExpectedLength); } LogEntry.setTargetSize(length); - LogEntry.setStatusCodeAndMessage(200, probeMessage +"Success - "+message); + LogEntry.setStatusCodeAndMessage(OK.value(), probeMessage + "Success - " + message); } private String getMessagePrefix(boolean isLiveProbe) diff --git a/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java b/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java index 9e0abe8d..6de4388b 100644 --- a/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java +++ b/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java @@ -28,6 +28,9 @@ package org.alfresco.transformer; import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +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.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -158,7 +161,7 @@ public abstract class AbstractTransformerControllerTest public void simpleTransformTest() throws Exception { mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + targetExtension)); } @@ -168,7 +171,7 @@ public abstract class AbstractTransformerControllerTest { long start = System.currentTimeMillis(); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension, "testDelay", "400")) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + targetExtension)); long ms = System.currentTimeMillis() - start; @@ -181,7 +184,7 @@ public abstract class AbstractTransformerControllerTest public void noTargetFileTest() throws Exception { mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", "xxx")) - .andExpect(status().is(500)); + .andExpect(status().is(INTERNAL_SERVER_ERROR.value())); } @Test @@ -191,7 +194,7 @@ public abstract class AbstractTransformerControllerTest sourceFile = new MockMultipartFile("file", "../quick." + sourceExtension, sourceMimetype, expectedSourceFileBytes); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + targetExtension)); } @@ -203,7 +206,7 @@ public abstract class AbstractTransformerControllerTest sourceFile = new MockMultipartFile("file", "../quick", sourceMimetype, expectedSourceFileBytes); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(200)) + .andExpect(status().is(OK.value())) .andExpect(content().bytes(expectedTargetFileBytes)) .andExpect(header().string("Content-Disposition", "attachment; filename*= UTF-8''quick." + targetExtension)); } @@ -215,7 +218,7 @@ public abstract class AbstractTransformerControllerTest sourceFile = new MockMultipartFile("file", "abc/", sourceMimetype, expectedSourceFileBytes); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(400)) + .andExpect(status().is(BAD_REQUEST.value())) .andExpect(status().reason(containsString("The source filename was not supplied"))); } @@ -225,7 +228,7 @@ public abstract class AbstractTransformerControllerTest sourceFile = new MockMultipartFile("file", "", sourceMimetype, expectedSourceFileBytes); mockMvc.perform(mockMvcRequest("/transform", sourceFile, "targetExtension", targetExtension)) - .andExpect(status().is(400)) + .andExpect(status().is(BAD_REQUEST.value())) .andExpect(status().reason(containsString("The source filename was not supplied"))); } @@ -233,7 +236,7 @@ public abstract class AbstractTransformerControllerTest public void noTargetExtensionTest() throws Exception { mockMvc.perform(mockMvcRequest("/transform", sourceFile)) - .andExpect(status().is(400)) + .andExpect(status().is(BAD_REQUEST.value())) .andExpect(status().reason(containsString("Request parameter targetExtension is missing"))); } @@ -280,12 +283,12 @@ public abstract class AbstractTransformerControllerTest .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .content(tr)) - .andExpect(status().is(HttpStatus.BAD_REQUEST.value())) + .andExpect(status().is(BAD_REQUEST.value())) .andReturn().getResponse().getContentAsString(); TransformReply transformReply = objectMapper.readValue(transformationReplyAsString, TransformReply.class); // Assert the reply - assertEquals(HttpStatus.BAD_REQUEST.value(), transformReply.getStatus()); + assertEquals(BAD_REQUEST.value(), transformReply.getStatus()); } }