Class TransformerDebug

java.lang.Object
org.alfresco.repo.content.transform.TransformerDebug
Direct Known Subclasses:
AdminUiTransformerDebug

public class TransformerDebug extends Object
Debugs transformers selection and activity.

As transformations are frequently composed of lower level transformations, log messages include a prefix to identify the transformation. A numeric dot notation is used (such as 123.1.2 indicating the second third level transformation of the 123rd top level transformation).

Author:
Alan Davis
  • Field Details

  • Constructor Details

    • TransformerDebug

      public TransformerDebug()
  • Method Details

    • setExtensionLookup

      public void setExtensionLookup(TransformerDebug.ExtensionLookup extensionLookup)
    • setTransformerLog

      public void setTransformerLog(org.apache.commons.logging.Log transformerLog)
    • setTransformerDebugLog

      public void setTransformerDebugLog(org.apache.commons.logging.Log transformerDebugLog)
    • setNodeService

      public void setNodeService(NodeService nodeService)
    • setMimetypeService

      public void setMimetypeService(MimetypeService mimetypeService)
    • setPreviousTransformId

      public void setPreviousTransformId(int id)
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Throws:
      Exception
    • pushTransform

      public void pushTransform(String transformerName, String fromUrl, String sourceMimetype, String targetMimetype, long sourceSize, Map<String,String> options, String renditionName, NodeRef sourceNodeRef)
    • pushMisc

      public void pushMisc()
      Adds a new level to the stack to get a new request number or nesting number. Called prior to working out what transformers are active and prior to listing the supported mimetypes for an active transformer.
    • logBasicDetails

      protected void logBasicDetails(TransformerDebug.Frame frame, long sourceSize, Map<String,String> options, String renditionName, String message, boolean firstLevel)
    • popTransform

      public void popTransform()
      Called after performing a transform.
    • popMisc

      public void popMisc()
      Removes a frame from the stack. Called prior to working out what transformers are active and prior to listing the supported mimetypes for an active transformer.
    • pop

      protected int pop(TransformerDebug.Call callType, boolean suppressFinish, boolean suppressChecking)
    • isEnabled

      public boolean isEnabled()
      Indicates if any logging is required.
    • setDebugOutput

      public static boolean setDebugOutput(boolean debugOutput)
      Enable or disable debug log output. Normally used to hide calls to getTransformer as trace rather than debug level log messages. There are lots of these and it makes it hard to see what is going on.
      Parameters:
      debugOutput - if true both debug and trace is generated. Otherwise all output is trace.
      Returns:
      the original value.
    • debug

      public void debug(String message)
      Log a message prefixed with the current transformation reference.
      Parameters:
      message -
    • debugUsingPreviousReference

      public void debugUsingPreviousReference(String message)
      Log a message prefixed with the previous transformation reference, used by this Thread.
      Parameters:
      message -
    • debug

      public void debug(String message, Throwable t)
      Log a message prefixed with the current transformation reference and include a exception, suppressing the stack trace if repeated as we return up the stack of transformers.
      Parameters:
      message -
    • log

      protected void log(String message)
    • log

      protected void log(String message, boolean debug)
    • setCause

      public <T extends Throwable> T setCause(T t)
      Sets the cause of a transformation failure, so that only the message of the Throwable is reported later rather than the full stack trace over and over.
    • getStringBuilder

      public StringBuilder getStringBuilder()
      Returns the current StringBuilder (if any) being used to capture debug information for the current Thread.
    • setStringBuilder

      public void setStringBuilder(StringBuilder sb)
      Sets the StringBuilder to be used to capture debug information for the current Thread.
    • getFilename

      public String getFilename(NodeRef sourceNodeRef, boolean firstLevel)
    • getSourceAndTargetExt

      protected String getSourceAndTargetExt(String sourceMimetype, String targetMimetype)
    • replaceWithMetadataExtensionIfEmbedOrExtract

      public static String replaceWithMetadataExtensionIfEmbedOrExtract(String targetMimetype, String sourceExtension, String targetExtension)
    • getMimetypeExt

      protected String getMimetypeExt(String mimetype)
    • spaces

      protected String spaces(int i)
    • ms

      public String ms(long time)
    • fileSize

      public String fileSize(long size)
    • debugTransformServiceRequest

      public int debugTransformServiceRequest(String sourceMimetype, long sourceSize, NodeRef sourceNodeRef, int contentHashcode, String filename, String targetMimetype, Map<String,String> options, String renditionName)
      Debugs a request to the Transform Service
    • getRenditionName

      public String getRenditionName(String renditionName)
    • isMetadataExtractMimetype

      public static boolean isMetadataExtractMimetype(String targetMimetype)
    • isMetadataEmbedMimetype

      public static boolean isMetadataEmbedMimetype(String targetMimetype)
    • debugTransformServiceResponse

      public void debugTransformServiceResponse(long requested, int id, String msg, Collection<String> debugLines)
      Debugs a response to the Transform Service
    • debugTransformServiceResponsePreConsume

      public boolean debugTransformServiceResponsePreConsume(long requested, int id, String msg, Collection<String> debugLines)
      Debugs a response to the Transform Service
    • debugTransformServiceResponsePostConsume

      public void debugTransformServiceResponsePostConsume(boolean suppressFinish)
      Debugs a response to the Transform Service
    • toString

      public static String toString(Map<String,String> options)
      Obtains a String for log messages.
      Parameters:
      options - to be turned into a string.
      Returns:
      a string of options that may be included in debug messages.