Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

org.alfresco.repo.content.transform
Class TransformerDebug
java.lang.Object
  org.alfresco.repo.content.transform.TransformerDebug

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).

In order to track of the nesting of transforms, this class has a stack to represent the Transformers. Each Transformer calls pushTransform(org.alfresco.repo.content.transform.ContentTransformer, String, String, String, long, org.alfresco.service.cmr.repository.TransformationOptions) at the start of a transform and popTransform() at the end. However the top level transform may be selected from a list of available transformers. To record this activity, pushAvailable(String, String, String, org.alfresco.service.cmr.repository.TransformationOptions), unavailableTransformer(org.alfresco.repo.content.transform.ContentTransformer, String, String, long) (to record the reason a transformer is rejected), availableTransformers(List, long, org.alfresco.service.cmr.repository.TransformationOptions, String) (to record the available transformers) and popAvailable() are called.

Author:
Alan Davis

Constructor Summary
TransformerDebug(NodeService nodeService, MimetypeService mimetypeService, ContentTransformerRegistry transformerRegistry, TransformerConfig transformerConfig, org.apache.commons.logging.Log transformerLog, org.apache.commons.logging.Log transformerDebugLog)
          Constructor
Method Summary
void
activeTransformer(int mimetypePairCount, ContentTransformer transformer, String sourceMimetype, String targetMimetype, long maxSourceSizeKBytes, boolean firstMimetypePair)
void
activeTransformer(String sourceMimetype, String targetMimetype, int transformerCount, ContentTransformer transformer, long maxSourceSizeKBytes, boolean firstTransformer)
void
availableTransformers(List<ContentTransformer> transformers, long sourceSize, TransformationOptions options, String calledFrom)
          Called once all available transformers have been identified.
void
blacklistTransform(ContentTransformer transformer, String sourceMimetype, String targetMimetype, TransformationOptions options)
          Called when a transformer has been ignored because of a blacklist entry.
void
debug(String message)
          Log a message prefixed with the current transformation reference.
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.
fileSize(long size)
getFileName(TransformationOptions options, boolean firstLevel, long sourceSize)
getSourceMimetypes(String sourceExtension)
          Returns a collection of mimetypes ordered by extension, but unlike the version in MimetypeService throws an exception if the sourceExtension is supplied but does not match a mimetype.
getStringBuilder()
          Returns the current StringBuilder (if any) being used to capture debug information for the current Thread.
getTargetMimetypes(String sourceExtension, String targetExtension, Collection<String> sourceMimetypes)
          Identical to getSourceMimetypes for the target, but avoids doing the look up if the sourceExtension is the same as the tragetExtension, so will have the same result.
getTestFileExtensionsAndMimetypes()
void
inactiveTransformer(ContentTransformer transformer)
boolean
isEnabled()
          Indicates if any logging is required.
ms(long time)
void
popAvailable()
          Called after working out what transformers are available and any resulting transform has been called.
void
popIsTransformableSize()
          Called after returning from a nested isTransformable.
void
popMisc()
          Removes a frame from the stack.
void
popTransform()
          Called after performing a transform.
void
pushAvailable(String fromUrl, String sourceMimetype, String targetMimetype, TransformationOptions options)
          Called prior to working out what transformers are available.
void
pushIsTransformableSize(ContentTransformer transformer)
          Called prior to calling a nested isTransformable.
void
pushMisc()
          Adds a new level to the stack to get a new request number or nesting number.
void
pushTransform(ContentTransformer transformer, String fromUrl, String sourceMimetype, String targetMimetype, long sourceSize, TransformationOptions options)
          Called prior to performing a transform.
<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.
void
setContentService(ContentService contentService)
static boolean
setDebugOutput(boolean debugOutput)
          Enable or disable debug log output.
void
setStringBuilder(StringBuilder sb)
          Sets the StringBuilder to be used to capture debug information for the current Thread.
sortTransformersByName(String transformerName)
          Returns a sorted list of all transformers sorted by name.
testTransform(String sourceExtension, String targetExtension, String use)
testTransform(String transformerName, String sourceExtension, String targetExtension, String use)
transformationsByExtension(String sourceExtension, String targetExtension, boolean toString, boolean format42, boolean onlyNonDeterministic, String use)
          Returns a String and /or debug that provides a list of supported transformations sorted by source and target mimetype extension.
transformationsByTransformer(String transformerName, boolean toString, boolean format42, String use)
          Returns a String and /or debug that provides a list of supported transformations for each transformer.
void
unavailableTransformer(ContentTransformer transformer, String sourceMimetype, String targetMimetype, long maxSourceSizeKBytes)
          Called to identify a transformer that cannot be used during working out available transformers.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Constructor Detail
TransformerDebug
public TransformerDebug(NodeService nodeService,
                        MimetypeService mimetypeService,
                        ContentTransformerRegistry transformerRegistry,
                        TransformerConfig transformerConfig,
                        org.apache.commons.logging.Log transformerLog,
                        org.apache.commons.logging.Log transformerDebugLog)
Constructor
Method Detail
setContentService
public void setContentService(ContentService contentService)

pushAvailable
public void pushAvailable(String fromUrl,
                          String sourceMimetype,
                          String targetMimetype,
                          TransformationOptions options)
Called prior to working out what transformers are available.

blacklistTransform
public void blacklistTransform(ContentTransformer transformer,
                               String sourceMimetype,
                               String targetMimetype,
                               TransformationOptions options)
Called when a transformer has been ignored because of a blacklist entry.

pushTransform
public void pushTransform(ContentTransformer transformer,
                          String fromUrl,
                          String sourceMimetype,
                          String targetMimetype,
                          long sourceSize,
                          TransformationOptions options)
Called prior to performing a transform.

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.

pushIsTransformableSize
public void pushIsTransformableSize(ContentTransformer transformer)
Called prior to calling a nested isTransformable.

unavailableTransformer
public void unavailableTransformer(ContentTransformer transformer,
                                   String sourceMimetype,
                                   String targetMimetype,
                                   long maxSourceSizeKBytes)
Called to identify a transformer that cannot be used during working out available transformers.

availableTransformers
public void availableTransformers(List<ContentTransformer> transformers,
                                  long sourceSize,
                                  TransformationOptions options,
                                  String calledFrom)
Called once all available transformers have been identified.

inactiveTransformer
public void inactiveTransformer(ContentTransformer transformer)

activeTransformer
public void activeTransformer(int mimetypePairCount,
                              ContentTransformer transformer,
                              String sourceMimetype,
                              String targetMimetype,
                              long maxSourceSizeKBytes,
                              boolean firstMimetypePair)

activeTransformer
public void activeTransformer(String sourceMimetype,
                              String targetMimetype,
                              int transformerCount,
                              ContentTransformer transformer,
                              long maxSourceSizeKBytes,
                              boolean firstTransformer)

popAvailable
public void popAvailable()
Called after working out what transformers are available and any resulting transform has been called.

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.

popIsTransformableSize
public void popIsTransformableSize()
Called after returning from a nested isTransformable.

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.

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.

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.

transformationsByTransformer
public String transformationsByTransformer(String transformerName,
                                           boolean toString,
                                           boolean format42,
                                           String use)
Returns a String and /or debug that provides a list of supported transformations for each transformer.
Parameters:
transformerName - restricts the list to one transformer. Unrestricted if null.
toString - indicates that a String value should be returned in addition to any debug.
format42 - indicates the old 4.1.4 format should be used which did not order the transformers and only included top level transformers.
use - to which the transformation will be put (such as "Index", "Preview", null).

transformationsByExtension
public String transformationsByExtension(String sourceExtension,
                                         String targetExtension,
                                         boolean toString,
                                         boolean format42,
                                         boolean onlyNonDeterministic,
                                         String use)
Returns a String and /or debug that provides a list of supported transformations sorted by source and target mimetype extension.
Parameters:
sourceExtension - restricts the list to one source extension. Unrestricted if null.
targetExtension - restricts the list to one target extension. Unrestricted if null.
toString - indicates that a String value should be returned in addition to any debug.
format42 - indicates the new 4.2 rather than older 4.1.4 format should be used. The 4.1.4 format did not order the transformers or mimetypes and only included top level transformers.
onlyNonDeterministic - if true only report transformations where there is more than one transformer available with the same priority.
use - to which the transformation will be put (such as "Index", "Preview", null).

getSourceMimetypes
public Collection<StringgetSourceMimetypes(String sourceExtension)
Returns a collection of mimetypes ordered by extension, but unlike the version in MimetypeService throws an exception if the sourceExtension is supplied but does not match a mimetype.
Parameters:
sourceExtension - to restrict the collection to one entry
Throws:
IllegalArgumentException - if there is no match. The message indicates this.

getTargetMimetypes
public Collection<StringgetTargetMimetypes(String sourceExtension,
                                             String targetExtension,
                                             Collection<String> sourceMimetypes)
Identical to getSourceMimetypes for the target, but avoids doing the look up if the sourceExtension is the same as the tragetExtension, so will have the same result.
Parameters:
sourceExtension - used to restrict the sourceMimetypes
targetExtension - to restrict the collection to one entry
sourceMimetypes - that match the sourceExtension
Throws:
IllegalArgumentException - if there is no match. The message indicates this.

getFileName
public String getFileName(TransformationOptions options,
                          boolean firstLevel,
                          long sourceSize)

ms
public String ms(long time)

fileSize
public String fileSize(long size)

sortTransformersByName
public Collection<ContentTransformersortTransformersByName(String transformerName)
Returns a sorted list of all transformers sorted by name.
Parameters:
transformerName - to restrict the collection to one entry
Returns:
a new Collection of sorted transformers
Throws:
IllegalArgumentException - if transformerName is not found.

testTransform
public String testTransform(String sourceExtension,
                            String targetExtension,
                            String use)

testTransform
public String testTransform(String transformerName,
                            String sourceExtension,
                            String targetExtension,
                            String use)

getTestFileExtensionsAndMimetypes
public String[] getTestFileExtensionsAndMimetypes()

Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005–2016 Alfresco Software. All rights reserved.

Java API documentation generated with DocFlex/Javadoc 1.6.1 using JavadocPro template set.