// xmlBlaster/demo/HelloWorld8.java import java.util.logging.Logger; import org.xmlBlaster.client.I_Callback; import org.xmlBlaster.client.I_XmlBlasterAccess; import org.xmlBlaster.client.key.PublishKey; import org.xmlBlaster.client.key.UpdateKey; import org.xmlBlaster.client.qos.ConnectQos; import org.xmlBlaster.client.qos.ConnectReturnQos; import org.xmlBlaster.client.qos.DisconnectQos; import org.xmlBlaster.client.qos.PublishQos; import org.xmlBlaster.client.qos.PublishReturnQos; import org.xmlBlaster.client.qos.UpdateQos; import org.xmlBlaster.util.Global; import org.xmlBlaster.util.MsgUnit; import org.xmlBlaster.util.SessionName; import org.xmlBlaster.util.XmlBlasterException; import org.xmlBlaster.util.def.Constants; import org.xmlBlaster.util.qos.address.Destination; /** * Shows the request/reply pattern. *
* A sender and a receiver client connect to xmlBlaster, * the sender sends a request message to the receiver and blocks until a reply arrives. * The receiver responds with a reply message. * * Invoke: java HelloWorld8 * * Note: This does not work with our 'email' protocol unless we configure * two separate email accounts for each client connection. * @see xmlBlaster interface */ public class HelloWorld8 { private static Logger log = Logger.getLogger(HelloWorld8.class.getName()); private I_XmlBlasterAccess sender = null; private final String senderName = "TheDesperate"; private I_XmlBlasterAccess receiver = null; private final String receiverName = "TheKnowing"; public HelloWorld8(final Global glob) { try { { // setup the sender client ... sender = glob.getXmlBlasterAccess(); ConnectQos qos = new ConnectQos(sender.getGlobal(), senderName, "secret"); ConnectReturnQos conRetQos = sender.connect(qos, null); // Login to xmlBlaster log.info("Sender connected to xmlBlaster " + conRetQos.getSessionName().getRelativeName()); } { // setup the receiver client which processes the request (usually another process) ... Global globReceiver = glob.getClone(null); receiver = globReceiver.getXmlBlasterAccess(); ConnectQos qos = new ConnectQos(receiver.getGlobal(), receiverName, "secret"); ConnectReturnQos conRetQos = receiver.connect(qos, new I_Callback() { public String update(String cbSessionId, UpdateKey updateKey, byte[] content, UpdateQos updateQos) { log.info(receiverName+": Receiving asynchronous message '" + updateKey.getOid() + "' in receiver default handler"); log.info(receiverName+": Received: " + updateKey.toXml() + "\n* java HelloWorld8 -help ** for usage help */ public static void main(String args[]) { Global glob = new Global(); if (glob.init(args) != 0) { // Get help with -help System.out.println(glob.usage()); System.out.println("Example: java HelloWorld8\n"); System.exit(1); } new HelloWorld8(glob); } }