⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commandmanager.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                  ret.append(str[i]).append("\n");            }            else {               ret.append(obj);            }         }         MsgUnit msgUnit = new MsgUnit("<key oid='__cmd:"+cmd+"'/>", ret.toString().getBytes(), "<qos/>");         return new MsgUnit[] { msgUnit };      }            try {         CommandWrapper w = new CommandWrapper(glob, oid);         if (args != null) w.setArgs(args);         String key = w.getThirdLevel();         if (w.getThirdLevel().startsWith("?")) {            key = "DEFAULT";  // One handler needs to register itself with "DEFAULT"         }         Object obj = this.handlerMap.get(key); // e.g. "topic" or "client" or "sysprop"         if (obj == null) {            throw new XmlBlasterException(glob, ErrorCode.USER_ILLEGALARGUMENT, ME, "Sorry can't process your command '" + oid + "', '" + w.getThirdLevel() + "' has no registered handler (key=" + key + ")");         }         I_CommandHandler handler = (I_CommandHandler)obj;         MsgUnit[] ret = handler.get(addressServer, sessionId, w);         if (ret == null) ret = new MsgUnit[0];         return ret;         //return (ret==null) ? "<qos><state id='NOT_FOUND' info='" + w.getCommand() + " has no results.'/></qos>" : ret;      }      catch (XmlBlasterException e) {         throw e;      }      catch (Throwable e) {         e.printStackTrace();         throw XmlBlasterException.convert(glob, ME, "get("+oid+")", e);      }   }   /**    * @param sessionId Is null if not logged in    * @param cmd The query string    * @return The SetReturn object:<br />    *         setReturn.returnString contains the actually set value or is null if not set.     */   public final SetReturn set(AddressServer addressServer,                String sessionId, String cmd) throws XmlBlasterException {      if (addressServer == null) {         addressServer = this.sessionInfo.getAddressServer(); // uses requestBroker.unsecureSessionInfo      }      if (sessionId == null) {         sessionId = this.sessionInfo.getSecuritySession().getSecretSessionId();      }      if (log.isLoggable(Level.FINER)) log.finer("set(" + cmd + ")");      if (cmd == null || cmd.length() < 1)         throw new XmlBlasterException(glob, ErrorCode.USER_ILLEGALARGUMENT, ME, "Please pass a command which is not null");                  if (cmd.startsWith(ContextNode.SCHEMA_JMX_DOMAIN)) { // JMX query starts with "org.xmlBlaster:"         // ObjectName = org.xmlBlaster:nodeClass=node,node="heron"         // org.xmlBlaster:nodeClass=node,node="heron"/action=getFreeMemStr         // org.xmlBlaster:nodeClass=node,node="heron"/action=usage?action=usage                  // java  -Djmx.invoke.getters=set ... org.xmlBlaster.Main         // org.xmlBlaster:nodeClass=node,node="heron"/action=getLastWarning?action=getLastWarning         // org.xmlBlaster:nodeClass=node,node="heron"/action=getLastWarning         // org.xmlBlaster:nodeClass=node,node="avalon_mycomp_com",clientClass=client,client="heron.mycomp.com",sessionClass=session,session="1"/action=getConnectionState         Object obj = JmxWrapper.getInstance(this.glob).invokeCommand(cmd);         StringBuffer ret = new StringBuffer(1024);         if (obj != null) {            if (obj instanceof String[]) {               String[] str = (String[])obj;               for(int i=0; i<str.length; i++)                  ret.append(str[i]).append("\n");            }            else {               ret.append(obj);            }         }         return new SetReturn(null, ret.toString());      }      try {         CommandWrapper w = new CommandWrapper(glob, cmd);         String key = w.getThirdLevel();         if (w.getThirdLevel().startsWith("?")) {            key = "DEFAULT";  // One handler needs to register itself with "DEFAULT"         }         Object obj = this.handlerMap.get(key);         if (obj == null) {            throw new XmlBlasterException(glob, ErrorCode.USER_ILLEGALARGUMENT, ME, "Sorry can't process your command '" + cmd + "', the third level '" + w.getThirdLevel() + "' has no registered handler (key=" + key + ")");         }         I_CommandHandler handler = (I_CommandHandler)obj;         return new SetReturn(w, handler.set(addressServer, sessionId, w));      }      catch (XmlBlasterException e) {         throw e;      }      catch (Throwable e) {         e.printStackTrace();         throw XmlBlasterException.convert(glob, ME, "set("+cmd+")", e);      }   }   /**    */   public String help() {      return "  XmlBlaster administration, see http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.commands.html";   }   /**    */   public String help(String cmd) {      return help();   }   public void shutdown() {      if (this.externMap != null && this.externMap.size() > 0) {         I_ExternGateway[] arr = (I_ExternGateway [])this.externMap.values().toArray(new I_ExternGateway[this.externMap.size()]);         for (int ii=0; ii<arr.length; ii++) {            arr[ii].shutdown();         }         externMap.clear();      }      if (this.handlerMap != null && this.handlerMap.size() > 0) {         I_CommandHandler[] arr = (I_CommandHandler [])this.handlerMap.values().toArray(new I_CommandHandler[this.handlerMap.size()]);         for (int ii=0; ii<arr.length; ii++) {            arr[ii].shutdown();  // If a handler has registered multiple times, it should be able to handle multiple shutdowns         }         this.handlerMap.clear();      }   }   /**    * A human readable name of the listener for logging.     * <p />    * Enforced by I_RunlevelListener    */   public String getName() {      return ME;   }   /**    * Invoked on run level change, see RunlevelManager.RUNLEVEL_HALTED and RunlevelManager.RUNLEVEL_RUNNING    * <p />    * Enforced by I_RunlevelListener    */   public void runlevelChange(int from, int to, boolean force) throws org.xmlBlaster.util.XmlBlasterException {      if (log.isLoggable(Level.FINER)) log.finer("Changing from run level=" + from + " to level=" + to + " with force=" + force);      if (to == from)         return;      if (to > from) { // startup         if (to == RunlevelManager.RUNLEVEL_STANDBY) {            initializeInternal();            initializeExternal();            log.info("Administration manager is ready");         }      }      if (to < from) { // shutdown         if (to == RunlevelManager.RUNLEVEL_HALTED) {            shutdown();         }      }   }   /**    * Dump state of this object into a XML ASCII string.    */   public final String toXml() {      return toXml((String)null);   }   /**    * Dump state of this object into a XML ASCII string.    * @param extraOffset indenting of tags for nice output    */   public synchronized final String toXml(String extraOffset) {      StringBuffer sb = new StringBuffer(1024);      String offset = "\n   ";      if (extraOffset == null) extraOffset = "";      offset += extraOffset;      sb.append(offset).append("<commandManager>");      /*      if (externMap != null && externMap.size() > 0) {         Iterator it = externMap.values().iterator();         while (it.hasNext()) {            I_ExternGatewax gw = (I_ExternGateway)it.next();            sb.append(gw.toXml(extraOffset + "   "));         }         externMap.clear();      }      if (handlerMap != null && handlerMap.size() > 0) {         Iterator it = handlerMap.values().iterator();         while (it.hasNext()) {            I_CommandHandler cmd = (I_CommandHandler)it.next();            sb.append(cmd.toXml(extraOffset + "   "));         }      }      */      sb.append(offset).append("</commandManager>");      return sb.toString();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -