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

📄 configcontroller.java

📁 一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
  }    public void addNetwork(String serverName,                         String domainName,                         int port) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.addNetwork(" +                  serverName + ',' +                  domainName + ',' +                  port + ')');    short sid = a3cmlConfig.getServerIdByName(serverName);    addNetwork(sid, domainName, port);  }  public void addNetwork(short serverId,                         String domainName,                         int port) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.addNetwork(" +                  serverId + ',' +                  domainName + ',' +                  port + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverId);    A3CMLNetwork newNetwork = new A3CMLNetwork(domainName, port);        try {      server.addNetwork(newNetwork);      A3CMLDomain domain =         (A3CMLDomain) a3cmlConfig.getDomain(domainName);      domain.addServer(server);    } catch (Exception exc) {      // Idempotent    }        if (serverId == AgentServer.getServerId()) {      startScript.add(        new StartNetworkCmd(domainName));    }  }  public void setNetworkPort(String serverName,                             String domainName,                             int port) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.setNetworkPort(" +                  serverName + ',' +                  domainName + ',' +                  port + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    A3CMLNetwork network = server.getNetwork(domainName);    if (network != null) {      network.port = port;    } else {      throw new Exception("Unknown network");    }        if (server.sid == AgentServer.getServerId()) {      startScript.add(        new ReconfigureServerNetworkCmd(domainName, port));    } else {      startScript.add(        new ReconfigureClientNetworkCmd(          server.sid, domainName, port));    }  }  public void setJVMArgs(String serverName,                         String jvmArgs) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.setJVMArgs(" +                  serverName + ',' +                  jvmArgs + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    server.jvmArgs = jvmArgs;  }  public void setProperty(String propName,                          String value) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.setProperty(" +                  propName + ',' +                  value + ')');    checkStatus(Status.CONFIG);    a3cmlConfig.addProperty(      new A3CMLProperty(propName, value));  }  public void setServerProperty(String serverName,                                String propName,                                String value) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.setServerProperty(" +                  serverName + ',' +                  propName + +',' +                  value + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    server.addProperty(new A3CMLProperty(propName,                                         value));  }  public void setServerNat(String serverName,                           String translatedServerName,                           String translationHostName,                           int translationPort) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.setServerNat(" +                  serverName + ',' +                 translatedServerName + ',' +                 translationHostName + ',' +                 translationPort + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    short sid = a3cmlConfig.getServerIdByName(translatedServerName);    server.addNat(new A3CMLNat(sid, translationHostName,                               translationPort));  }  public void removeDomain(String domainName) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.removeDomain(" + domainName + ')');    checkStatus(Status.CONFIG);    try {      Vector serversToRemove = new Vector();      A3CMLDomain domain = a3cmlConfig.getDomain(domainName);      for (int i = 0; i < domain.servers.size(); i++) {        A3CMLServer server = (A3CMLServer) domain.servers.elementAt(i);        if (server.networks.size() == 1) {          serversToRemove.addElement(server);        } else {          removeNetwork(server.name, domainName);        }      }            for (int i = 0; i < serversToRemove.size(); i++) {        A3CMLServer server =           (A3CMLServer)serversToRemove.elementAt(i);        if (server.sid != AgentServer.getServerId()) {          removeServer(server.name);        } else {          // Remove the network          removeNetwork(server.name, domainName);        }      }            a3cmlConfig.removeDomain(domainName);    } catch (fr.dyade.aaa.agent.conf.UnknownDomainException exc) {      // Do nothing (idempotency)    }  }  public void removeNetwork(String serverName,                             String domainName) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.removeNetwork(" +                  serverName + ',' +                  domainName + ')');    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    server.removeNetwork(domainName);    if (server.sid == AgentServer.getServerId()) {      stopScript.addElement(new StopNetworkCmd(domainName));    }  }  public void removeServer(String serverName) throws Exception {    checkStatus(Status.CONFIG);    try {      A3CMLServer server = a3cmlConfig.getServer(serverName);      ServerDesc servDesc = AgentServer.getServerDesc(server.sid);      removeServer(servDesc);    } catch (fr.dyade.aaa.agent.conf.UnknownServerException exc) {      // The server has already been removed.      // This may happen e.g. if the domain used       // to communicate with it has been deleted.      // Idempotent: do nothing    }  }  public void removeServer(short serverId) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.removeServer(" +                  serverId + ')');     try {      checkStatus(Status.CONFIG);      ServerDesc servDesc = AgentServer.getServerDesc(serverId);      removeServer(servDesc);    } catch (fr.dyade.aaa.agent.conf.UnknownServerException exc) {      // The server has already been removed.      // This may happen e.g. if the domain used       // to communicate with it has been deleted.      // Idempotent: do nothing    }  }  private void removeServer(ServerDesc servDesc) throws Exception {    if (servDesc.sid != AgentServer.getServerId()) {      deleteServer(servDesc);      a3cmlConfig.removeServer(servDesc.sid);    } else {      // else don't remove the local server      throw new Exception("Can't remove local server");    }  }  private void deleteServer(ServerDesc servDesc) throws Exception {    if (servDesc.domain instanceof Network)      ((Network) servDesc.domain).delServer(servDesc.sid);    AgentServer.removeServerDesc(servDesc.sid);    for (Enumeration e = AgentServer.elementsServerDesc();          e.hasMoreElements(); ) {      ServerDesc sd = (ServerDesc)e.nextElement();      if (sd.gateway == servDesc.sid) {        sd.gateway = -1;        sd.domain = null;      }    }  }    public void removeService(String serverName,                            String serviceClassName) throws Exception {    checkStatus(Status.CONFIG);    A3CMLServer server = a3cmlConfig.getServer(serverName);    server.removeService(serviceClassName);  }    private void stopNetwork(String domainName) throws Exception {    AgentServer.removeConsumer(domainName);  }  private void stopService(String serviceClassName) throws Exception {    ServiceManager.stop(serviceClassName);  }  private void startNetwork(String domainName) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.startNetwork(" +                  domainName + ')');    A3CMLServer a3cmlServer = a3cmlConfig.getServer(AgentServer.getServerId());    A3CMLNetwork a3cmlNetwork = a3cmlServer.getNetwork(domainName);    if (a3cmlNetwork == null) throw new Exception(      "Unknown network " + domainName);    try {      Network network =              (Network) AgentServer.getConsumer(domainName);      network.start();    } catch (Exception exc) {      A3CMLDomain a3cmlDomain =         (A3CMLDomain) a3cmlConfig.getDomain(domainName);              Network network =         (Network) Class.forName(a3cmlDomain.network).newInstance();      short[] domainSids = new short[a3cmlDomain.servers.size()];      for (int i = 0; i < domainSids.length; i++) {        domainSids[i] =           ((A3CMLServer) a3cmlDomain.servers.elementAt(i)).sid;      }      AgentServer.addConsumer(domainName, network);      if (logger.isLoggable(BasicLevel.DEBUG))        logger.log(BasicLevel.DEBUG,                    " -> init network " + a3cmlDomain.name                   + ',' + a3cmlNetwork.port);      network.init(a3cmlDomain.name,                    a3cmlNetwork.port,                    domainSids);      network.start();    }  }  private void reconfigureServerNetwork(String domainName,                                        int port) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.reconfigureServerNetwork(" +                  domainName + ',' +                  port + ')');    Network network =      (Network) AgentServer.getConsumer(domainName);    network.stop();    network.setPort(port);    network.start();  }  private void reconfigureClientNetwork(short sid,                                         String domainName,                                        int port) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.reconfigureClientNetwork(" +                  sid + ',' +                  domainName + ',' +                  port + ')');    A3CMLServer a3cmlServer = a3cmlConfig.getServer(sid);    ServerDesc serverDesc =       AgentServer.getServerDesc(sid);    if (domainName.equals(serverDesc.getDomainName())) {      serverDesc.updateSockAddr(        serverDesc.getHostname(),        port);    }  }  private void startService(String serviceClassName,                            String args) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                 "ConfigController.startService(" +                  serviceClassName + ',' +                  args + ')');    A3CMLServer a3cmlServer =       a3cmlConfig.getServer(AgentServer.getServerId());    ServiceManager.register(     serviceClassName, args);    ServiceDesc desc =       (ServiceDesc) ServiceManager.manager.registry.get(        serviceClassName);    if (desc.running) return;    ServiceManager.start(desc);  }  private void startServer(short sid) throws Exception {    if (logger.isLoggable(BasicLevel.DEBUG))      logger.log(BasicLevel.DEBUG,                  "ConfigController.startServer(" + sid + ')');    A3CMLServer server = a3cmlConfig.getServer(sid);    ServerDesc desc = AgentServer.getServerDesc(sid);    AgentServer.initServerDesc(desc, server);    if (desc.gateway == desc.sid) {      if (desc.domain instanceof Network) {        ((Network) desc.domain).addServer(server.sid);      } else {        throw new Error("Unknown gateway type: " + desc.domain);      }    }  }  static class StartServerCmd {    public short sid;    public StartServerCmd(short sid) {      this.sid = sid;    }  }  static class StartServiceCmd {    public String serviceClassName;    public String args;    public StartServiceCmd(String serviceClassName,                            String args) {      this.serviceClassName = serviceClassName;      this.args = args;    }  }  static class StartNetworkCmd {    public String domainName;    public StartNetworkCmd(String domainName) {      this.domainName = domainName;    }  }  static class StopNetworkCmd {    public String domainName;        public StopNetworkCmd(String domainName) {      this.domainName = domainName;    }  }  static class ReconfigureClientNetworkCmd {    public short sid;    public String domainName;    public int port;        public ReconfigureClientNetworkCmd(      short sid,      String domainName,      int port) {      this.sid = sid;      this.domainName = domainName;      this.port = port;    }  }  static class ReconfigureServerNetworkCmd {    public String domainName;    public int port;        public ReconfigureServerNetworkCmd(      String domainName,      int port) {      this.domainName = domainName;      this.port = port;    }  }}

⌨️ 快捷键说明

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