Package javaclients

Source Code of javaclients.HelloWorldErase

// xmlBlaster/demo/javaclients/HelloWorldErase.java
package javaclients;

import java.util.logging.Logger;
import org.xmlBlaster.util.Global;
import org.xmlBlaster.util.XmlBlasterException;
import org.xmlBlaster.util.def.Constants;
import org.xmlBlaster.util.qos.HistoryQos;
import org.xmlBlaster.client.qos.ConnectQos;
import org.xmlBlaster.client.qos.ConnectReturnQos;
import org.xmlBlaster.client.qos.DisconnectQos;
import org.xmlBlaster.client.key.EraseKey;
import org.xmlBlaster.client.qos.EraseQos;
import org.xmlBlaster.client.qos.EraseReturnQos;
import org.xmlBlaster.client.I_XmlBlasterAccess;

/**
* This client connects to xmlBlaster and erases a configurable amount of messages.
* <p>
* Try using 'java javaclients.HelloWorldPublish' in another window to create some messages.
* </p>
*
* Invoke (after starting the xmlBlaster server):
* <pre>
*Erase all topics matching the given XPATH query:
* java javaclients.HelloWorldErase -xpath /xmlBlaster/key/myToaster
*
*Erase topic "Sport"
* java javaclients.HelloWorldErase -oid Sport
* </pre>
* @see javaclients.HelloWorldPublish
* @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.html" target="others">xmlBlaster interface</a>
*/
public class HelloWorldErase
{
   private final String ME = "HelloWorldErase";
   private final Global glob;
   private static Logger log = Logger.getLogger(HelloWorldErase.class.getName());

   public HelloWorldErase(Global glob) {
      this.glob = glob;

      try {
         boolean interactive = glob.getProperty().get("interactive", true);
         String oid = glob.getProperty().get("oid", "Hello");
         String xpath = glob.getProperty().get("xpath", (String)null);
         boolean forceDestroy = glob.getProperty().get("forceDestroy", false);
         boolean persistent = glob.getProperty().get("persistent", false);
         int historyNumErase = glob.getProperty().get("historyNumErase", -99);

         log.info("Used settings are:");
         log.info("   -interactive    " + interactive);
         log.info("   -oid            " + oid);
         log.info("   -xpath          " + xpath);
         log.info("   -forceDestroy   " + forceDestroy);
         log.info("   -persistent     " + persistent);

         I_XmlBlasterAccess con = glob.getXmlBlasterAccess();
         log.info("============= CreatingConnectQos");
         ConnectQos qos = new ConnectQos(glob);
         log.info("ConnectQos is " + qos.toXml());
         ConnectReturnQos crq = con.connect(qos, null)// Login to xmlBlaster, register for updates
         log.info("Connect success as " + crq.toXml());

         if (interactive) {
            log.info("Hit a key to erase");
            try { System.in.read(); } catch(java.io.IOException e) {}
         }

         EraseKey ek;
         if (xpath != null)
            ek = new EraseKey(glob, xpath, Constants.XPATH);
         else
            ek = new EraseKey(glob, oid);
         EraseQos eq = new EraseQos(glob);
         eq.setForceDestroy(forceDestroy);
         eq.setPersistent(persistent);
         if (historyNumErase != -99) {
            eq.getData().setHistoryQos(new HistoryQos(glob, historyNumErase));
         }
         EraseReturnQos[] eraseArr = con.erase(ek, eq);
         for (int i=0; i < eraseArr.length; i++) {
            log.info(eraseArr[i].toXml());
         }
         log.info("Erased " + eraseArr.length + " topics");

         log.info("Hit a key to exit");
         try { System.in.read(); } catch(java.io.IOException e) {}

         DisconnectQos dq = new DisconnectQos(glob);
         con.disconnect(dq);
      }
      catch (XmlBlasterException e) {
         log.severe(e.getMessage());
      }
      catch (Exception e) {
         e.printStackTrace();
         log.severe(e.toString());
      }
   }

   /**
    * Try
    * <pre>
    *   java javaclients.HelloWorldErase -help
    * </pre>
    * 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.err.println("\nExample:");
         System.err.println("  java javaclients.HelloWorldErase -oid hello\n");
         System.exit(1);
      }

      new HelloWorldErase(glob);
   }
}
TOP

Related Classes of javaclients.HelloWorldErase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.