You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by jb...@apache.org on 2011/02/18 11:35:37 UTC
svn commit: r1071942 -
/servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java
Author: jbonofre
Date: Fri Feb 18 10:35:36 2011
New Revision: 1071942
URL: http://svn.apache.org/viewvc?rev=1071942&view=rev
Log:
[SM-2024] Improve message flow logging.
Modified:
servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java
Modified: servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java?rev=1071942&r1=1071941&r2=1071942&view=diff
==============================================================================
--- servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java (original)
+++ servicemix/smx3/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java Fri Feb 18 10:35:36 2011
@@ -32,12 +32,16 @@ import javax.jbi.messaging.NormalizedMes
import javax.jbi.servicedesc.ServiceEndpoint;
import javax.transaction.Transaction;
import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import org.w3c.dom.Node;
+import org.apache.commons.lang.ObjectUtils;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.servicemix.JbiConstants;
import org.apache.servicemix.jbi.container.ActivationSpec;
import org.apache.servicemix.jbi.framework.ComponentContextImpl;
@@ -59,7 +63,7 @@ public abstract class MessageExchangeImp
public static final String FAULT = "fault";
- public static final int MAX_MSG_DISPLAY_SIZE = 1500;
+ public static final int MAX_MSG_DISPLAY_SIZE = Integer.MAX_VALUE;
public static final boolean PRESERVE_CONTENT = Boolean.getBoolean("org.apache.servicemix.preserveContent");
@@ -717,6 +721,7 @@ public abstract class MessageExchangeImp
this.txLock = txLock;
}
+ @Override
public String toString() {
try {
StringBuffer sb = new StringBuffer();
@@ -727,6 +732,7 @@ public abstract class MessageExchangeImp
sb.append(" id: ").append(getExchangeId()).append('\n');
sb.append(" status: ").append(getStatus()).append('\n');
sb.append(" role: ").append(getRole() == Role.CONSUMER ? "consumer" : "provider").append('\n');
+ sb.append(" mep: ").append(getPattern()).append('\n');
if (getInterfaceName() != null) {
sb.append(" interface: ").append(getInterfaceName()).append('\n');
}
@@ -739,6 +745,15 @@ public abstract class MessageExchangeImp
if (getOperation() != null) {
sb.append(" operation: ").append(getOperation()).append('\n');
}
+ if (getPropertyNames().size() > 0) {
+ sb.append(" properties: [").append('\n');
+ for (Object propName : getPropertyNames()) {
+ sb.append(" ").append(propName).append(" = ");
+ sb.append(getProperty((String)propName));
+ sb.append('\n');
+ }
+ sb.append(" ]").append('\n');
+ }
SourceTransformer st = new SourceTransformer();
display("in", sb, st);
display("out", sb, st);
@@ -757,15 +772,32 @@ public abstract class MessageExchangeImp
}
private void display(String msg, StringBuffer sb, SourceTransformer st) {
- if (getMessage(msg) != null) {
+ NormalizedMessage message = getMessage(msg);
+ if (message != null) {
sb.append(" ").append(msg).append(": ");
try {
- if (getMessage(msg).getContent() != null) {
+ Set<?> propertyNames = message.getPropertyNames();
+ if (propertyNames.size() > 0) {
+ sb.append("\n ").append(msg).append(" properties: [").append('\n');
+ for (Object propertyName : propertyNames) {
+ sb.append(" ").append(propertyName).append(" = ");
+ Object propertyValue = message.getProperty((String) propertyName);
+ if (propertyValue != null && propertyValue.getClass().getName().startsWith("java.lang")) {
+ sb.append(propertyValue);
+ } else {
+ sb.append(ObjectUtils.identityToString(propertyValue));
+ }
+ sb.append('\n');
+ }
+ sb.append(" ]").append('\n');
+ }
+ Source content = message.getContent();
+ if (content != null) {
if (PRESERVE_CONTENT) {
- sb.append(getMessage(msg).getContent().getClass());
+ sb.append(content.getClass());
} else {
- Node node = st.toDOMNode(getMessage(msg).getContent());
- getMessage(msg).setContent(new DOMSource(node));
+ Node node = st.toDOMNode(content);
+ message.setContent(new DOMSource(node));
String str = st.toString(node);
if (str.length() > MAX_MSG_DISPLAY_SIZE) {
sb.append(str.substring(0, MAX_MSG_DISPLAY_SIZE)).append("...");