Enhance logging inside TraceComponent.java to log NormalizedMassage properties
------------------------------------------------------------------------------

                 Key: SM-1315
                 URL: https://issues.apache.org/activemq/browse/SM-1315
             Project: ServiceMix
          Issue Type: Improvement
    Affects Versions: 3.2.1, 3.2
            Reporter: Bruce Snyder
            Assignee: Bruce Snyder
             Fix For: 3.2.2, 3.3
         Attachments: TraceComponent.java.diff.txt

Add more logging to TraceComponent.java, for the following:

* NormalizedMassage.getPropertyNames(): get the objects in some string format.
* If NormalizedMassage.getProperty() is of type javax.xml.transform.Source, 
convert the type of a String for logging 

See below code for possible example: 

{code:java}
/**
     * Outputs the properties on the [EMAIL PROTECTED] NormalizedMessage}. 
Properties of 
     * type [EMAIL PROTECTED] Source} are transformed to a [EMAIL PROTECTED] 
String} before 
     * being output.
     *
     * @param message The [EMAIL PROTECTED] NormalizedMessage} to be processed
     */
    @SuppressWarnings("unchecked")
    protected void outputProperties(NormalizedMessage message) {
        // Loop over all the properties on the normalized message 
        for (Object o : message.getPropertyNames()) {
            // NormalizedMessage API does not use generics. This interface is
            // written in Java older than 5.0. On the basis of other methods and
            // the default implementation of this interface we can assume that
            // only String keys are allowed.
            String key = (String) o;
            try {
                Object contents = message.getProperty(key);
                // Is this the only value type that we would like to treat
                // differently? The default behavior is to invoke toString() on
                // the object.
                if (contents instanceof Source) {
                    contents = getSourceTransformer().toString((Source) 
contents);
                }

                log.info("Value for property '" + key + "' is: " + contents);
            } catch (TransformerException e) {
                log.error("Failed to turn property '" + key + "' value into 
text: " + e, e);
            }
        }
    }
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to