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

📄 a3cmlcluster.java

📁 一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。
💻 JAVA
字号:
/* * Copyright (C) 2001 - 2004 ScalAgent Distributed Technologies  * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 * USA. * * Initial developer(s): Nicolas Tachker (Scalagent) * Contributor(s): */package fr.dyade.aaa.agent.conf;import java.io.*;import java.util.*;import org.objectweb.util.monolog.api.BasicLevel;import org.objectweb.util.monolog.api.Logger;public class A3CMLCluster implements Serializable {  public short sid = -1;  public String name = null;  public String jvmArgs = null;  public Hashtable servers = null;  public Hashtable properties = null;  public A3CMLCluster(short sid,                      String name) throws Exception {    this.sid = sid;    this.name = name;    this.properties = new Hashtable();    this.servers = new Hashtable();  }  /**   * Adds a server.   *   * @param server	The description of added server.   * @exception DuplicateServerException   *			If the server already exist.   */  public final void addServer(A3CMLServer server) throws DuplicateServerException {    Short id = new Short(server.sid);    if (servers.containsKey(id))      throw new DuplicateServerException("Duplicate server id. #" + server.sid);    server.name = "cluster_" + sid + "_" + server.sid;    server.sid = sid;    servers.put(id, server);  }    /**   * Removes a server.   *   * @param sid  	The unique server identifier.   * @return	 	The server description if exists.   * @exception UnknownServerException   * 		 	If the server does not exist.   */  public final A3CMLServer removeServer(short sid) throws UnknownServerException {    A3CMLServer server = null;    Short id = new Short(sid);    if (servers.containsKey(id))      server = (A3CMLServer) servers.remove(id);    else      throw new UnknownServerException("Unknown server id. #" + sid);    return server;  }    /**   * Remove a server.   *   * @param name 	The server name.   * @return	 	The server description if exists.   * @exception UnknownServerException   *			If the server does not exist.   */  public final A3CMLServer removeServer(String name) throws UnknownServerException {    return removeServer(getServerIdByName(name));  }    /**   * Returns true if the configuration contains a server with specified id.   *   * @param sid  server id   * @return	 true if contain sid; false otherwise.   */  public final boolean containsServer(short sid) {    return servers.containsKey(new Short(sid));  }    /**   * Gets a server identifier from its name.   *   * @param name 	The server name.   * @return	 	The server identifier.   * @exception UnknownServerException   * 		 	If the server does not exist.   */  public short getServerIdByName(String name) throws UnknownServerException {    for (Enumeration s = servers.elements(); s.hasMoreElements(); ) {      A3CMLServer server = (A3CMLServer) s.nextElement();      if (server.name.equals(name)) return server.sid;    }    throw new UnknownServerException("Unknown server " + name);  }  /**   * Returns true if the configuration contains a server with specified name.   *   * @param name server name   * @return	 true if contain name; false otherwise.   */  public final boolean containsServer(String name) {    try {      getServerIdByName(name);    } catch (UnknownServerException exc) {      return false;    }    return true;  }  /**   * Returns the description of a server.   *   * @param name 	The server identifier.   * @return	 	The server description if exist.   * @exception UnknownServerException   * 		 	If the server does not exist.   */  public final A3CMLServer getServer(short sid) throws UnknownServerException {    A3CMLServer server = (A3CMLServer) servers.get(new Short(sid));    if (server == null)      throw new UnknownServerException("Unknown server id. #" + sid);    return server;  }  /**   * Returns the description of a server.   *   * @param name 	The server name.   * @return	 	The server description if exist.   * @exception UnknownServerException   * 		 	If the server does not exist.   */  public final A3CMLServer getServer(String name) throws UnknownServerException {    for (Enumeration s = servers.elements(); s.hasMoreElements(); ) {      A3CMLServer server = (A3CMLServer) s.nextElement();      if (server.name.equals(name)) return server;    }    throw new UnknownServerException("Unknown server id for server " + name);  }  /**   * add property   *   * @param prop A3CMLProperty   * @return	 the previous value of the specified prop.name in   *             this hashtable, or null if it did not have one.   * @exception	Exception   */  public final A3CMLProperty addProperty(A3CMLProperty prop) throws Exception {    return (A3CMLProperty) properties.put(prop.name, prop);  }  /**   * remove property   *   * @param name property name   * @return	 the value to which the name had been mapped in    *             this hashtable, or null if the name did not have a mapping.   */  public final A3CMLProperty removeProperty(String name) {    return (A3CMLProperty) properties.remove(name);  }  /**   * contains property   *   * @param name property name   * @return	 true if contain name; false otherwise.   */  public final boolean containsProperty(String name) {    return properties.containsKey(name);  }  /**   * Returns the specified property.   */  public final A3CMLProperty getProperty(String name) {    return (A3CMLProperty) properties.get(name);  }  /**   * Get the JVM argument for a particular agent server identified by its id.   *   * @param id		agent server identifier.   * @return		the arguments as declared in configuration file   * @exception	UnknownServerException   *			The specified server does not exist.   */  public final String getJvmArgs(short sid) throws UnknownServerException {    A3CMLServer server = getServer(sid);    return server.getJvmArgs();  }    /**   * Get the JVM argument for a particular agent server identified by its name.   *   * @param name	agent server name.   * @return		the arguments as declared in configuration file   * @exception	UnknownServerException   *			The specified server does not exist.   */  public final String getJvmArgs(String name) throws UnknownServerException {    A3CMLServer server = getServer(name);    return server.getJvmArgs();  }  public String toString() {    StringBuffer strBuf = new StringBuffer();    strBuf.append("(").append(super.toString());    strBuf.append(",sid=").append(sid);    strBuf.append(",name=").append(name);    strBuf.append(",jvmArgs=").append(jvmArgs);    strBuf.append(",properties=").append(properties);    strBuf.append(",servers=").append(servers);    strBuf.append(")");    return strBuf.toString();  }    public boolean equals(Object obj) {    if (obj == null) return false;    if (obj instanceof A3CMLCluster) {      A3CMLCluster cluster = (A3CMLCluster) obj;      if (sid == cluster.sid &&          name.equals(cluster.name) &&          servers.equals(cluster.servers) &&          properties.equals(cluster.properties))        return true;    }    return false;  }}

⌨️ 快捷键说明

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