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

📄 adminproxy.java

📁 一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	  System.exit(0);	} else if (cmd.equals(GC)) {	  Runtime runtime = Runtime.getRuntime();	  writer.println("before: " +			 runtime.freeMemory() + " octets free / " +			 runtime.totalMemory() + " octets.");	  runtime.gc();	  writer.println("after: " +			 runtime.freeMemory() + " octets free / " +			 runtime.totalMemory() + " octets.");	} else if (cmd.equals(SET_VARIABLE)) {	  try {	    if (st.countTokens() != 2)	      throw new Exception("Usage: set property value");	    String property = st.nextToken();	    String value = st.nextToken();	    // finds variable class and name	    int pindex = property.lastIndexOf('.');	    if (pindex == -1) {	      // bad formed property name, ignores	      throw new Exception("bad formed property name: " + property);	    }	    String varClassName = property.substring(0, pindex);	    String varName = property.substring(pindex + 1);	    try {	      // finds variable	      Class varClass = Class.forName(varClassName);	      Field var = varClass.getDeclaredField(varName);	      // sets variable according to its type	      String varType = var.getType().getName();	      if (varType.equals("boolean") ||		  varType.equals("java.lang.Boolean")) {		var.set(null, new Boolean(value));	      } else if (varType.equals("int") ||			 varType.equals("java.lang.Integer")) {		var.set(null, new Integer(value));	      } else if (varType.equals("java.lang.String")) {		var.set(null, value);	      } else {		throw new Exception("error setting property " +				    varClassName + "." + varName +				    ": unexpected type " + varType);	      }	    } catch (Exception exc) {	      if (debug) exc.printStackTrace(writer);	      throw new Exception("error setting property " +				  varClassName + "." + varName +				  ": " + exc.getMessage());	    }	    writer.println("done.");	  } catch (Exception exc) {	    writer.println(exc.getMessage());	  }	} else if (cmd.equals(GET_VARIABLE)) {	  try {	    if (st.countTokens() != 1)	      throw new Exception("Usage: get property");	    String property = st.nextToken();	    // finds variable class and name	    int pindex = property.lastIndexOf('.');	    if (pindex == -1) {	      // bad formed property name, ignores	      throw new Exception("bad formed property name: " + property);	    }	    String varClassName = property.substring(0, pindex);	    String varName = property.substring(pindex + 1);	    try {	      // finds variable	      Class varClass = Class.forName(varClassName);	      Field var = varClass.getDeclaredField(varName);	      // get the variable value	      Object value = var.get(null);	      writer.println(property + " = " + value);	    } catch (Exception exc) {	      if (debug) exc.printStackTrace(writer);	      throw new Exception("error getting property " +				  varClassName + "." + varName +				  ": " + exc.getMessage());	    }	  } catch (Exception exc) {	    writer.println(exc.getMessage());	  }	} else if (cmd.equals(THREADS)) {	  String group = null;	  if (st.hasMoreTokens())	    group = st.nextToken();	  ThreadGroup tg = Thread.currentThread().getThreadGroup();	  while (tg.getParent() != null)	    tg = tg.getParent();	  int nbt = tg.activeCount();	  Thread[] tab = new Thread[nbt];	  tg.enumerate(tab);	  for (int j=0; j<nbt; j++) {	    if ((group != null) &&		! tab[j].getThreadGroup().getName().equals(group))	      continue;	    writer.println("+----------------------------------------");	    writer.println("[" +			   ((group==null)?(tab[j].getThreadGroup().getName() + "."):"") +			   tab[j].getName() + "]" +			   (tab[j].isAlive()?" alive":"") +			   (tab[j].isDaemon()?" daemon":"") + "\n " +			   tab[j]);	  }	} else if (cmd.equals(LIST_MCONS)) {          for (Enumeration c=AgentServer.getConsumers();               c.hasMoreElements(); ) {            MessageConsumer cons = (MessageConsumer) c.nextElement();	    writer.println("+----------------------------------------");	    writer.println(cons);	  }	} else if (cmd.equals(START_MCONS)) {	  String domain = null;	  if (st.hasMoreTokens()) {	    // start the identified consumer.	    domain = st.nextToken();	  }          for (Enumeration c=AgentServer.getConsumers();               c.hasMoreElements(); ) {            MessageConsumer cons = (MessageConsumer) c.nextElement();	  	    if (((domain == null) || domain.equals(cons.getName()))) {	      try {		cons.start();		writer.println("start " + cons.getName() + " done.");	      } catch (Exception exc) {		writer.println("Can't start "+ cons.getName() + ": " +			       exc.getMessage());		if (debug) exc.printStackTrace(writer);	      }	    }	  }	} else if (cmd.equals(STOP_MCONS)) {	  String domain = null;	  if (st.hasMoreTokens()) {	    // stop the identified consumer.	    domain = st.nextToken();	  }          for (Enumeration c=AgentServer.getConsumers();               c.hasMoreElements(); ) {            MessageConsumer cons = (MessageConsumer) c.nextElement();	  	    if (((domain == null) || domain.equals(cons.getName()))) {	      cons.stop();	      writer.println("stop " + cons.getName() + " done.");	    }	  }	} else if (cmd.equals(LIST_SERVICE)) {	  ServiceDesc services[] = ServiceManager.getServices();	  for (int i=0; i<services.length; i++ ){	    writer.println("+----------------------------------------");	    writer.println(services[i].getClassName() + " (" +			   services[i].getArguments() + ")" +			   (services[i].isInitialized()?" initialized ":"") +			   (services[i].isRunning()?" running":""));	  }	} else if (cmd.equals(ADD_SERVICE)) {          try {            // Add a new Service            String sclass = null;            String args = null;            try {              sclass = st.nextToken();              if (st.hasMoreTokens())                args = st.nextToken();            } catch (NoSuchElementException exc) {              throw new Exception("Usage: add <sclass> [<args>]");            }            try {              ServiceManager.register(sclass, args);              writer.println("Service <" + sclass + "> registred.");              ServiceManager.start(sclass);              writer.println("Service <" + sclass + "> started.");            } catch (Exception exc) {              // Report the error              writer.println("Can't start service: " + exc.getMessage());              if (debug) exc.printStackTrace(writer);            }          } catch (Exception exc) {            writer.println(exc.getMessage());          } 	} else if (cmd.equals(REMOVE_SERVICE)) {	  // Remove an existing Service	  String sclass = null;	  try {	    sclass = st.nextToken();	  } catch (NoSuchElementException exc) {	    writer.println("Usage: " + REMOVE_SERVICE + " <sclass> [<args>]");            return;	  }	  try {	    ServiceManager.stop(sclass);	    writer.println("Service <" + sclass + "> stopped.");	  } catch (Exception exc) {	    writer.println("Can't stop service: " + exc.getMessage());	    if (debug) exc.printStackTrace(writer);	  }	  try {	    ServiceManager.unregister(sclass);	    writer.println("Service <" + sclass + "> unregistred.");	  } catch (Exception exc) {	    writer.println("Can't unregister service: " + exc.getMessage());	    if (debug) exc.printStackTrace(writer);	  }	} else if (cmd.equals(DUMP)) {          AgentId id = null;          try {            id = AgentId.fromString(st.nextToken());          } catch (IllegalArgumentException exc) {            writer.println("Usage: " + DUMP + " #x.y.z");            return;          }          try {            writer.println(AgentServer.getEngine().dumpAgent(id));          } catch (Exception exc) {            writer.println("Can't launch server: " + exc.getMessage());            if (debug) exc.printStackTrace(writer);          }	} else if (cmd.equals(NONE)) {	} else if (cmd.equals(PING)) {          writer.println(AgentServer.getServerId());        } else if (cmd.equals(CONFIG)) {          try {            A3CMLConfig a3CMLConfig = AgentServer.getConfig();            ByteArrayOutputStream baos = new ByteArrayOutputStream();            PrintWriter out = new PrintWriter(baos);            A3CML.toXML(a3CMLConfig, out);            out.flush();            baos.flush();            baos.close();            byte[] bytes = baos.toByteArray();            writer.println(new String(bytes));          } catch (Exception exc) {            writer.println("Can't load configuration: " + exc.getMessage());            if (debug) exc.printStackTrace(writer);          }        } else if (cmd.equals(LOG)){          PrintStream oldErr = System.err;          try {            System.setErr(new PrintStream(socket.getOutputStream()));            String topic = st.nextToken();            String level = st.nextToken();            int intLevel;            if (level.equals("DEBUG")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.DEBUG;            } else if (level.equals("ERROR")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.ERROR;            } else if (level.equals("FATAL")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.FATAL;            } else if (level.equals("INFO")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.INFO;            } else if (level.equals("INHERIT")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.INHERIT;            } else if (level.equals("WARN")) {              intLevel = org.objectweb.util.monolog.api.BasicLevel.WARN;            } else {              writer.println("Unknown level: " + level);              return;            }            Debug.setLoggerLevel(topic, intLevel);          } catch(Exception exc){            writer.println(exc.getMessage());          } finally{            System.setErr(oldErr);            writer.println("OK");          }        } else if (cmd.equals(HELP)) {	  writer.println(	    "Description of available commands:\n" +	    "\t" + HELP +	    "\n\t\tGives the summary of the options.\n" +	    "\t" + STOP_SERVER +	    "\n\t\tStops the server.\n" +	    "\t" + SET_VARIABLE + "variable value" +	    "\n\t\tSet the specified static variable with the given value.\n" +	    "\t" + GET_VARIABLE +	    "\n\t\tReturn the value of the specified static variable.\n" +	    "\t" + GC + 	    "\n\t\tRun the garbage collector in the specified A3 server.\n" +	    "\t" + THREADS + " [group]" +	    "\n\t\tList all threads in server JVM.\n" +	    "\t" + LIST_MCONS +	    "\n\t\tList all defined consumers.\n" +	    "\t" + START_MCONS + " [domain]" +	    "\n\t\tStarts the specified MessageConsumer.\n" +	    "\t" + STOP_MCONS + " [domain]" +	    "\n\t\tStops the specified MessageConsumer.\n" +	    "\t" + LIST_SERVICE +	    "\n\t\tList all registered services.\n" +	    "\t" + ADD_SERVICE + " classname arguments" +	    "\n\t\tRegisters and starts the specified Service.\n" +	    "\t" + REMOVE_SERVICE + " classname" +	    "\n\t\tStops then unregister the specified Service.\n" +             "\t" + CONFIG +             "\n\t\tReturns the configuration of the server in XML format.\n");	} else {	  writer.println("unknown command:" + cmd);	}      } finally {      }    }  }}

⌨️ 快捷键说明

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