Changeset 18868 for greenstone3
- Timestamp:
- 2009-04-01T19:31:09+13:00 (15 years ago)
- Location:
- greenstone3/trunk/src/java/org/greenstone/server
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
greenstone3/trunk/src/java/org/greenstone/server/BaseProperty.java
r18693 r18868 5 5 public final String GSDL_HOME; 6 6 public final String GSDL_VERSION; 7 public final String AUTOSTART = "server.auto.start"; 7 public final String AUTOSTART; 8 public final String START_BROWSER; 9 8 10 public final String DEFAULT_SERVLET = "server.default.servlet"; 9 11 … … 19 21 public final String SERVER_SETTINGS; 20 22 21 protected BaseProperty(String version, String web_port )23 protected BaseProperty(String version, String web_port, String autostart, String startbrowser) 22 24 { 23 25 // property names … … 27 29 SERVER_CONTROL = "Server"+version+"Control"; 28 30 SERVER_SETTINGS = "Server"+version+"Settings"; 31 AUTOSTART = autostart; 32 START_BROWSER = startbrowser; 29 33 } 30 34 -
greenstone3/trunk/src/java/org/greenstone/server/BaseServer.java
r18770 r18868 24 24 static protected final int SERVER_START_FAILED = 1; 25 25 static protected final int BROWSER_LAUNCHED = 2; 26 static protected final int BROWSER_LAUNCH_FAILED = 3; 26 static protected final int BROWSER_LAUNCH_FAILED = 3; 27 static protected final int START_SERVER = 4; 27 28 28 static protected Properties build_properties;29 static protected Properties config_properties; 29 30 static protected Logger logger_; 30 31 31 static public File build_properties_file;32 static public File config_properties_file; 32 33 static public Dictionary dictionary; 33 34 static public BaseProperty Property; … … 37 38 protected String gsdl_home; 38 39 protected String logs_folder; 40 protected boolean start_browser; 41 39 42 protected BaseServerControl server_control_; 40 43 41 protected BaseServer(String gsdl_home, String lang, String build_properties_path, String logs)44 protected BaseServer(String gsdl_home, String lang, String config_properties_path, String logs) 42 45 { 43 46 this.gsdl_home = gsdl_home; … … 49 52 logger_ = Logger.getLogger(BaseServer.class.getName()); 50 53 51 build_properties_file = new File(build_properties_path);52 53 if (! build_properties_file.exists()) {54 logger_.fatal("Can't find build.properties file "+build_properties_path);54 config_properties_file = new File(config_properties_path); 55 56 if (!config_properties_file.exists()) { 57 logger_.fatal("Can't find configuration file "+config_properties_path); 55 58 System.exit(1); 56 59 } 57 60 58 build_properties = new Properties();59 reload BuildProperties();60 61 config_properties = new Properties(); 62 reloadConfigProperties(); 63 61 64 dictionary = new Dictionary("server", lang, this.getClass().getClassLoader()); 62 65 … … 65 68 public void autoStart() 66 69 { 67 String auto_start = build_properties.getProperty(BaseServer.Property.AUTOSTART); 68 if (auto_start != null && auto_start.equals("true")) { 69 restart(); 70 } 71 else{ 72 start(); 73 } 74 70 String auto_start = config_properties.getProperty(BaseServer.Property.AUTOSTART, "true"); 71 72 if (auto_start.equals("true") || auto_start.equals("1")) { 73 String start_browser = config_properties.getProperty(BaseServer.Property.START_BROWSER, "true"); 74 75 if (start_browser.equals("true") || start_browser.equals("1")) { 76 restart(); 77 } 78 else{ 79 start(); 80 } 81 } else { 82 reload(); // browser URL or other important properties may not yet be initialised 83 server_state_ = START_SERVER; 84 server_control_.updateControl(); 85 } 75 86 } 76 87 … … 91 102 public abstract String getBrowserURL(); 92 103 public abstract void reload(); // reload properties, since they may have changed 104 protected void preStop() {} 93 105 94 106 public void reconfigRequired() … … 118 130 } 119 131 else{ 120 recordSuccess(CONFIGURE_CMD); 132 recordSuccess(CONFIGURE_CMD); 121 133 } 122 134 … … 162 174 String url = getBrowserURL(); 163 175 //recordError("**** browserURL: " + url); 164 BrowserLauncher launcher = new BrowserLauncher( build_properties.getProperty(BaseServer.Property.BROWSER_PATH),url);176 BrowserLauncher launcher = new BrowserLauncher(config_properties.getProperty(BaseServer.Property.BROWSER_PATH, ""),url); 165 177 logger_.info(message); 166 178 … … 203 215 204 216 public void stop(boolean silent) { 217 preStop(); 205 218 if(!silent) { 206 219 server_control_.displayMessage(dictionary.get("ServerControl.Stopping")); … … 217 230 } 218 231 219 public void reload BuildProperties() {232 public void reloadConfigProperties() { 220 233 try { 221 FileInputStream in = new FileInputStream( build_properties_file);234 FileInputStream in = new FileInputStream(config_properties_file); 222 235 223 236 if (in != null) { 224 logger_.info("loading build properties");225 build_properties.load(in);237 logger_.info("loading configuration properties: " + config_properties_file); 238 config_properties.load(in); 226 239 in.close(); 227 240 } else { 228 logger_.error("Couldn't load build properties!");241 logger_.error("Couldn't load configuration properties from " + config_properties_file + "!"); 229 242 } 230 243 } catch (Exception e) { 231 logger_.error("Exception trying to reload build.properties: "+e);244 logger_.error("Exception trying to reload configuration properties " +config_properties_file + ": " +e); 232 245 } 233 246 -
greenstone3/trunk/src/java/org/greenstone/server/BaseServerControl.java
r18693 r18868 132 132 public void updateControl(){ 133 133 switch (server.getServerState()){ 134 case BaseServer.START_SERVER: 134 135 case BaseServer.SERVER_STARTED: 135 136 { … … 157 158 case BaseServer.BROWSER_LAUNCH_FAILED: 158 159 { 159 enter_button.setText(stringToHTML(BaseServer.dictionary.get("ServerControl.EnterLibrary"))); 160 enter_button.setText(stringToHTML(BaseServer.dictionary.get("ServerControl.EnterLibrary") 161 + "(URL: " + server.getBrowserURL() + ")")); 160 162 enter_button.setEnabled(true); 161 163 fMenu.setEnabled(true); … … 201 203 public void actionPerformed(ActionEvent ev) { 202 204 switch (server.getServerState()){ 205 case BaseServer.START_SERVER: 206 { 207 Thread runInThread = new Thread(new Runnable(){ 208 public void run(){ 209 server.start(); 210 server.launchBrowser(); 211 } 212 },"start server and launch browser"); 213 214 runInThread.start(); 215 break; 216 } 203 217 case BaseServer.SERVER_STARTED: case BaseServer.BROWSER_LAUNCH_FAILED: 204 218 { -
greenstone3/trunk/src/java/org/greenstone/server/BaseServerSettings.java
r18710 r18868 44 44 45 45 try { 46 this.portNum = Integer.parseInt(server. build_properties.getProperty(BaseServer.Property.WEB_PORT));46 this.portNum = Integer.parseInt(server.config_properties.getProperty(BaseServer.Property.WEB_PORT)); 47 47 } 48 48 catch(Exception e){ … … 50 50 } 51 51 52 this.browserPath = server. build_properties.getProperty(BaseServer.Property.BROWSER_PATH);52 this.browserPath = server.config_properties.getProperty(BaseServer.Property.BROWSER_PATH); 53 53 54 54 if (this.browserPath == null || this.browserPath.equals("")){ … … 60 60 } 61 61 62 String auto_start_str = server. build_properties.getProperty(BaseServer.Property.AUTOSTART);62 String auto_start_str = server.config_properties.getProperty(BaseServer.Property.AUTOSTART); 63 63 if ((auto_start_str.trim()).equals("true")) { 64 64 this.autoStart = true; … … 222 222 223 223 public void actionPerformed(ActionEvent ev) { 224 // save everything to build_properties if things have changed224 // save everything to config_properties if things have changed 225 225 boolean has_changed = false; 226 226 boolean require_restart = false; … … 268 268 269 269 ScriptReadWrite scriptReadWrite = new ScriptReadWrite(); 270 oldFileLines = scriptReadWrite.readInFile(BaseServer. build_properties_file);270 oldFileLines = scriptReadWrite.readInFile(BaseServer.config_properties_file); 271 271 272 272 newFileLines = scriptReadWrite.queryReplace(oldFileLines, BaseServer.Property.WEB_PORT, portNum+""); … … 284 284 newFileLines = scriptReadWrite.queryReplace(newFileLines,BaseServer.Property.BROWSER_PATH, browserPath); 285 285 286 scriptReadWrite.writeOutFile(BaseServer. build_properties_file,286 scriptReadWrite.writeOutFile(BaseServer.config_properties_file, 287 287 newFileLines); 288 server.reload BuildProperties();288 server.reloadConfigProperties(); 289 289 if (require_restart){ 290 290 JOptionPane.showMessageDialog(null,server.dictionary.get("ServerSetting.SettingChanged"),"Info", JOptionPane.INFORMATION_MESSAGE); -
greenstone3/trunk/src/java/org/greenstone/server/ScriptReadWrite.java
r13229 r18868 46 46 public ArrayList queryReplace(ArrayList fileLines_ex, String param, 47 47 String newValue) { 48 48 // only replace existing, don't append if param does not exist 49 return replaceOrAddLine(fileLines_ex, param, newValue, false); 50 } 51 52 // if the parameter exists, then a replace is performed, else the parameter-value 53 // is appended 54 public ArrayList replaceOrAddLine(ArrayList fileLines_ex, String param, String newValue, 55 boolean replaceElseAdd) 56 { 49 57 String oneLine = null; 50 58 String newLine = null; … … 63 71 newLine = param + "=" + newValue; 64 72 fileLines_ex.set(i, newLine); 73 replaceElseAdd = false; // replaced, no longer need to add in any case 65 74 break; 66 75 } 67 76 } 77 } 78 // If we've made no replacement and need to append the new item 79 if(replaceElseAdd) { 80 fileLines_ex.add(param+"="+newValue); 68 81 } 69 82 return fileLines_ex; -
greenstone3/trunk/src/java/org/greenstone/server/Server2.java
r18770 r18868 6 6 import java.io.FileOutputStream; 7 7 import java.util.Properties; 8 import java.util.ArrayList; 8 9 9 10 import org.apache.log4j.*; … … 16 17 protected String libraryURL; 17 18 18 public Server2(String gsdl2_home, String lang )19 public Server2(String gsdl2_home, String lang, String configfile) 19 20 { 20 super(gsdl2_home, lang, 21 gsdl2_home+File.separator+"lib"+File.separator+"java"+File.separator+"build.properties",22 "etc"+File.separator+"logs-gsi"); 21 super(gsdl2_home, lang, configfile, "etc"+File.separator+"logs-gsi"); 22 // configfile can be either glisite.cfg or llssite.cfg 23 23 24 24 25 Property = new Server2Property(); … … 30 31 START_CMD = "web-start"; 31 32 RESTART_CMD = "web-restart"; 32 CONFIGURE_CMD = "configure-web ";33 CONFIGURE_CMD = "configure-web " + configfile; 33 34 STOP_CMD = "web-stop"; 34 35 … … 122 123 recordError("Could not open gsdlsite_cfg for reading, using default library prefix."); 123 124 } 124 reloadBuildProperties(); 125 host = build_properties.getProperty("apache.server", host); 126 port = build_properties.getProperty("apache.port", port); 125 reloadConfigProperties(); 126 port = config_properties.getProperty("portnumber", port); 127 127 128 128 } catch(Exception e) { … … 132 132 133 133 libraryURL = "http://" + host + ":" + port + suffix; 134 //recordSuccess("**** browser URL is: " + libraryURL);135 134 135 // the URL has been changed 136 // write the URL to the file since this should work like GS2's Local Lib Server for Windows 137 ScriptReadWrite scriptReadWrite = new ScriptReadWrite(); 138 ArrayList fileLines = scriptReadWrite.readInFile(BaseServer.config_properties_file); 139 scriptReadWrite.replaceOrAddLine(fileLines, "url", libraryURL, true); 140 scriptReadWrite.writeOutFile(config_properties_file, fileLines); 136 141 } 137 142 143 // About to stop the webserver 144 // Custom GS2 action: remove the url property from the config file 145 protected void preStop() { 146 ScriptReadWrite scriptReadWrite = new ScriptReadWrite(); 147 ArrayList fileLines = scriptReadWrite.readInFile(BaseServer.config_properties_file); 148 if (fileLines.contains("url="+getBrowserURL())) { 149 // would be last element, remove it: 150 fileLines.remove(fileLines.size()-1); 151 } 152 scriptReadWrite.writeOutFile(config_properties_file, fileLines); 153 } 138 154 139 155 public static void main (String[] args) 140 156 { 141 if ((args.length < 1) || (args.length >2)) {142 System.err.println("Usage: java org.greenstone.server.Server2 <gsdl2-home-dir> [lang] ");157 if ((args.length < 1) || (args.length > 3)) { 158 System.err.println("Usage: java org.greenstone.server.Server2 <gsdl2-home-dir> [lang] [--config=configfile]"); 143 159 System.exit(1); 144 160 } … … 151 167 } 152 168 153 String lang = (args.length==2) ? args[1] : "en"; 154 new Server2(gsdl2_home,lang); 169 String lang = (args.length>=2) ? args[1] : "en"; 170 171 // if no config file is given, then the following defaults to llssite.cfg 172 String configfile = (args.length==3 && args[2].startsWith("--config=")) ? args[2] : gsdl2_home+File.separator+"llssite.cfg"; 173 int equalSign = configfile.indexOf('='); 174 if(equalSign != -1) { 175 configfile = configfile.substring(equalSign+1); 176 } 177 178 new Server2(gsdl2_home,lang,configfile); 155 179 } 156 180 } -
greenstone3/trunk/src/java/org/greenstone/server/Server2Property.java
r18693 r18868 9 9 // Initialising customised final variables 10 10 // Version number, WEB_PORT 11 super("2", " apache.port");11 super("2", "portnumber", "autoenter", "start_browser"); 12 12 } 13 13 -
greenstone3/trunk/src/java/org/greenstone/server/Server2Settings.java
r18719 r18868 3 3 import java.awt.BorderLayout; 4 4 import java.awt.event.*; 5 import java.util.ArrayList; 5 6 import javax.swing.*; 6 7 import javax.swing.event.*; … … 40 41 } 41 42 43 public void save(ScriptReadWrite scriptReadWrite, ArrayList newFileLines) 44 { 45 String newAutoEnter = autoEnter.isSelected() ? "1" : "0"; 46 newFileLines = scriptReadWrite.queryReplace(newFileLines, BaseServer.Property.AUTOSTART, newAutoEnter); 47 } 48 42 49 public void stateChanged(ChangeEvent e) { 43 50 int portNumber = ((Integer)portNumber_spinner.getValue()).intValue(); 44 51 String url = (String)prefix_combobox.getSelectedItem(); 45 52 url.replace('\\', '/'); 46 53 String pre = ""; 47 54 if(url.indexOf("http://") != -1) { … … 67 74 68 75 public void actionPerformed(ActionEvent e) { 69 System.err.println("*** Port number changed in url box!");70 76 String url = (String)prefix_combobox.getSelectedItem(); 71 77 int portNumber = 80; -
greenstone3/trunk/src/java/org/greenstone/server/Server3.java
r18770 r18868 38 38 39 39 public String getBrowserURL() { 40 return GlobalProperties.getGSDL3WebAddress()+ build_properties.getProperty(BaseServer.Property.DEFAULT_SERVLET);40 return GlobalProperties.getGSDL3WebAddress()+ config_properties.getProperty(BaseServer.Property.DEFAULT_SERVLET); 41 41 } 42 42 -
greenstone3/trunk/src/java/org/greenstone/server/Server3Property.java
r18693 r18868 8 8 { 9 9 // Initialising customised final variables 10 // Version number, WEB_PORT 11 super("3", "tomcat.port"); 10 // Version number, WEB_PORT, autoenter, startbrowser 11 // For GS3, the last two are controlled by the same property 12 super("3", "tomcat.port", "server.auto.start", "server.auto.start"); 12 13 } 13 14 -
greenstone3/trunk/src/java/org/greenstone/server/Server3Settings.java
r18708 r18868 31 31 JLabel servlet_label = new JLabel(server.dictionary.get(BaseServer.Property.SERVER_SETTINGS+".URL")); 32 32 33 this.servletDefault = server. build_properties.getProperty(BaseServer.Property.DEFAULT_SERVLET).replaceAll("/","");33 this.servletDefault = server.config_properties.getProperty(BaseServer.Property.DEFAULT_SERVLET).replaceAll("/",""); 34 34 35 35 servlet_combobox = new JComboBox(); … … 86 86 public void save(ScriptReadWrite scriptReadWrite, ArrayList newFileLines) 87 87 { 88 String newAutoEnter = (new Boolean(autoEnter.isSelected())).toString(); 89 newFileLines = scriptReadWrite.queryReplace(newFileLines, BaseServer.Property.AUTOSTART, newAutoEnter); 90 88 91 String newServletDef = (String) servlet_combobox.getSelectedItem(); 89 92 newFileLines = scriptReadWrite.queryReplace(newFileLines,BaseServer.Property.DEFAULT_SERVLET, (String) url_mappings.get(newServletDef));
Note:
See TracChangeset
for help on using the changeset viewer.