Ignore:
Timestamp:
2009-04-01T19:31:09+13:00 (15 years ago)
Author:
ak19
Message:

Updated Server files for Linux GS2 Local Library Server to work the same way as the Windows GS2 LLS. Basically the major difference is that build.properties is no longer used but glisite.cfg or llssite.cfg depending on whether or not gs2-server.sh is launched from gli. There are a few additional changes required for this to keep it consistent with the way the Windows GS2 LLS works: storing the preview URL in glisite.cfg/llssite.cfg while the server is running and removing it when the server has stopped, Server2.java's main method taking the configfile as an additional parameter (and corresponding adjustments in the gsicontrol.sh script of GS2).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • greenstone3/trunk/src/java/org/greenstone/server/Server2.java

    r18770 r18868  
    66import java.io.FileOutputStream;
    77import java.util.Properties;
     8import java.util.ArrayList;
    89
    910import org.apache.log4j.*;
     
    1617    protected String libraryURL;
    1718
    18     public Server2(String gsdl2_home, String lang)
     19    public Server2(String gsdl2_home, String lang, String configfile)
    1920    {
    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
    2324
    2425    Property = new Server2Property();
     
    3031    START_CMD     = "web-start";
    3132    RESTART_CMD   = "web-restart";
    32     CONFIGURE_CMD = "configure-web";
     33    CONFIGURE_CMD = "configure-web " + configfile;
    3334    STOP_CMD      = "web-stop";
    3435
     
    122123        recordError("Could not open gsdlsite_cfg for reading, using default library prefix.");
    123124        }
    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);
    127127
    128128    } catch(Exception e) {
     
    132132
    133133    libraryURL = "http://" + host + ":" + port + suffix;
    134     //recordSuccess("**** browser URL is: " + libraryURL);
    135134   
     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);
    136141    }
    137142   
     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    }
    138154
    139155    public static void main (String[] args)
    140156    {
    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]");
    143159        System.exit(1);
    144160    }
     
    151167    }
    152168   
    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);
    155179    }
    156180}
Note: See TracChangeset for help on using the changeset viewer.