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 }