From 58d6778173dde15dc34c49accfd996847ea2bab7 Mon Sep 17 00:00:00 2001 From: Derek Hulley Date: Mon, 20 Feb 2006 01:22:32 +0000 Subject: [PATCH] Fixed AR-435: Added system bootstrap and shutdown hooks for native executables - See the RuntimeExecBeansTest-context.xml for examples of how to put these together - Shutdown hooks are executed on ApplicationContext shutdown or VM shutdown, whichever is first Moved native executable error code detection into RuntimeExec class - This affects any existing RuntimeExecContentTransformers (e.g. TidyTransformer) Made OS search use regular expressions - Command search order is: Exact name, First matching REGEX, * - Note that * is a special case for 'default'. The REGEX equivalent is .* git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2448 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/content-services-context.xml | 2 +- .../messages/content-service.properties | 1 + .../RuntimeExecutableContentTransformer.java | 38 ++----------------- 3 files changed, 5 insertions(+), 36 deletions(-) diff --git a/config/alfresco/content-services-context.xml b/config/alfresco/content-services-context.xml index 08c25bb1d7..a2c071f1f1 100644 --- a/config/alfresco/content-services-context.xml +++ b/config/alfresco/content-services-context.xml @@ -211,7 +211,7 @@ imconvert ${source} ${options} ${target} - + imconvert "${source}" ${options} "${target}" diff --git a/config/alfresco/messages/content-service.properties b/config/alfresco/messages/content-service.properties index faf2337916..f7031ec3bd 100644 --- a/config/alfresco/messages/content-service.properties +++ b/config/alfresco/messages/content-service.properties @@ -1,3 +1,4 @@ # Content-related messages content.content_missing=The node''s content is missing: \n node: {0} \n reader: {1} \n Please contact your system administrator. +content.runtime_exec.property_moved=The property ''errorCodes'' has moved down onto the RuntimeExec class \ No newline at end of file diff --git a/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformer.java b/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformer.java index 05191e9f71..1a188e512f 100644 --- a/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformer.java +++ b/source/java/org/alfresco/repo/content/transform/RuntimeExecutableContentTransformer.java @@ -18,10 +18,7 @@ package org.alfresco.repo.content.transform; import java.io.File; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.service.cmr.repository.ContentIOException; @@ -69,13 +66,9 @@ public class RuntimeExecutableContentTransformer extends AbstractContentTransfor private MimetypeService mimetypeService; private RuntimeExec checkCommand; private RuntimeExec transformCommand; - private Set errCodes; public RuntimeExecutableContentTransformer() { - this.errCodes = new HashSet(2); - errCodes.add(1); - errCodes.add(2); } /** @@ -118,34 +111,9 @@ public class RuntimeExecutableContentTransformer extends AbstractContentTransfor */ public void setErrorCodes(String errCodesStr) { - StringTokenizer tokenizer = new StringTokenizer(errCodesStr, " ,"); - while(tokenizer.hasMoreElements()) - { - String errCodeStr = tokenizer.nextToken(); - // attempt to convert it to an integer - try - { - int errCode = Integer.parseInt(errCodeStr); - this.errCodes.add(errCode); - } - catch (NumberFormatException e) - { - throw new AlfrescoRuntimeException("Error codes string must be integers: " + errCodesStr); - } - } + throw new AlfrescoRuntimeException("content.runtime_exec.property_moved"); } - /** - * @param exitValue the command exit value - * @return Returns true if the code is a listed failure code - * - * @see #setErrorCodes(String) - */ - private boolean isFailureCode(int exitValue) - { - return errCodes.contains((Integer)exitValue); - } - /** * Executes the check command, if present. Any errors will result in this component * being rendered unusable within the transformer registry, but may still be called @@ -167,7 +135,7 @@ public class RuntimeExecutableContentTransformer extends AbstractContentTransfor { ExecutionResult result = checkCommand.execute(); // check the return code - available = !isFailureCode(result.getExitValue()); + available = result.getSuccess(); } else { @@ -263,7 +231,7 @@ public class RuntimeExecutableContentTransformer extends AbstractContentTransfor } // check - if (isFailureCode(result.getExitValue())) + if (!result.getSuccess()) { throw new ContentIOException("Transformation failed - status indicates an error: \n" + result); }