1 package org.codehaus.xfire.transport.dead; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 import org.codehaus.xfire.MessageContext; 6 import org.codehaus.xfire.XFireException; 7 import org.codehaus.xfire.exchange.OutMessage; 8 import org.codehaus.xfire.transport.AbstractChannel; 9 10 /*** 11 * A channel which does nothing except log when a message is sent from it. 12 * 13 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 14 */ 15 public class DeadLetterChannel 16 extends AbstractChannel 17 { 18 private static final Log logger = LogFactory.getLog(DeadLetterChannel.class); 19 20 public DeadLetterChannel(DeadLetterTransport transport) 21 { 22 setTransport(transport); 23 } 24 25 public void open() 26 throws Exception 27 { 28 } 29 30 public void send(MessageContext context, OutMessage message) 31 throws XFireException 32 { 33 Object body = message.getBody(); 34 if (body instanceof Exception) 35 logger.error("Could not deliver message to " + message.getUri(), (Exception) body); 36 else 37 logger.error("Could not deliver message to " + message.getUri()+ ": " + body); 38 } 39 40 public void close() 41 { 42 } 43 }