1 29 30 package com.caucho.boot; 31 32 import com.caucho.config.BuilderProgram; 33 import com.caucho.config.ConfigException; 34 import com.caucho.config.types.InitProgram; 35 import com.caucho.util.L10N; 36 37 import java.util.ArrayList ; 38 39 public class ClusterConfig { 40 private static final L10N L = new L10N(ClusterConfig.class); 41 42 private ResinConfig _resin; 43 44 private ArrayList <InitProgram> _serverDefaultList 45 = new ArrayList <InitProgram>(); 46 47 private ArrayList <ResinWatchdog> _serverList 48 = new ArrayList <ResinWatchdog>(); 49 50 private String _id = ""; 51 52 ClusterConfig(ResinConfig resin) 53 { 54 _resin = resin; 55 } 56 57 public void setId(String id) 58 { 59 _id = id; 60 } 61 62 public String getId() 63 { 64 return _id; 65 } 66 67 public ResinConfig getResin() 68 { 69 return _resin; 70 } 71 72 75 public void addServerDefault(InitProgram program) 76 throws Throwable 77 { 78 _serverDefaultList.add(program); 79 } 80 81 public ResinWatchdog createServer() 82 { 83 ResinWatchdog watchdog = new ResinWatchdog(this); 84 85 for (int i = 0; i < _serverDefaultList.size(); i++) 86 _serverDefaultList.get(i).configure(watchdog); 87 88 return watchdog; 89 } 90 91 public void addServer(ResinWatchdog server) 92 throws ConfigException 93 { 94 if (_resin.findServer(server.getId()) != null) 95 throw new ConfigException(L.l("<server id='{0}'> is a duplicate server. servers must have unique ids.", 96 server.getId())); 97 98 _serverList.add(server); 99 } 100 101 104 public void addBuilderProgram(BuilderProgram program) 105 { 106 } 107 108 111 public ResinWatchdog findServer(String id) 112 { 113 for (int i = 0; i < _serverList.size(); i++) { 114 ResinWatchdog server = _serverList.get(i); 115 116 if (id.equals(server.getId())) 117 return server; 118 } 119 120 return null; 121 } 122 123 public String toString() 124 { 125 return "ClusterConfig[" + _id + "]"; 126 } 127 } 128 | Popular Tags |