KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ubermq > jms > server > proc > EchoMessageProcessor


1 package com.ubermq.jms.server.proc;
2
3 import java.nio.*;
4 import java.util.*;
5 import com.ubermq.kernel.*;
6 import com.ubermq.kernel.overflow.*;
7
8 /**
9  * A simple demonstration of a message processor that echoes bytes back
10  * to the sending connection.
11  */

12 public class EchoMessageProcessor implements com.ubermq.kernel.IMessageProcessor
13 {
14     private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(EchoMessageProcessor.class);
15     private LinkedList allConnections;
16
17     public EchoMessageProcessor()
18     {
19         allConnections = new LinkedList();
20     }
21
22     public void accept(IConnectionInfo ci)
23     {
24         log.info("accepted " + ci);
25         allConnections.add(ci);
26     }
27
28     public void remove(IConnectionInfo ci)
29     {
30         allConnections.remove(ci);
31     }
32
33     public void process(IConnectionInfo sender, IDatagram d)
34     {
35         // simply copy the bytes back to ALL connections...
36
// except the caller.
37
IConnectionInfo conn;
38         for(Iterator i = allConnections.iterator();i.hasNext();)
39         {
40             conn = (IConnectionInfo)i.next();
41             if (!conn.equals(sender))
42             {
43                 log.info("outputting " + d + " to " + conn);
44                 try
45                 {
46                     conn.output(d, new DropIncoming());
47                 }
48                 catch (java.io.IOException JavaDoc e)
49                 {
50                     log.error("", e);
51                 }
52             }
53         }
54     }
55 }
56
Popular Tags