Changeset 24896 for main


Ignore:
Timestamp:
2011-12-14T16:01:55+13:00 (12 years ago)
Author:
sjm84
Message:

Reformatting this file ahead of some changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/util/GlobalProperties.java

    r22085 r24896  
    2525import org.apache.log4j.*;
    2626
    27 /** holds some global properties for the application. Read from a properties file */
    28 public class GlobalProperties {
     27/**
     28 * holds some global properties for the application. Read from a properties file
     29 */
     30public class GlobalProperties
     31{
     32    static Logger logger = Logger.getLogger(org.greenstone.util.GlobalProperties.class.getName());
     33    private static Properties properties = null;
     34    private static String properties_filename = "global.properties";
     35    private static String gsdl3_home = null;
     36    private static String gsdl3_web_address = null;
    2937
     38    // Note, that if the servlet is reloadable, then it is reloaded each time the file is changed.
     39    static
     40    {
     41        //load in the properties
     42        properties = new Properties();
     43        reload();
     44    }
    3045
    31     static Logger logger = Logger.getLogger(org.greenstone.util.GlobalProperties.class.getName());
    32     private static Properties properties = null;
    33     private static String properties_filename = "global.properties";
    34     private static String gsdl3_home = null;
    35     private static String gsdl3_web_address = null;
    36    
    37     // Note, that if the servlet is reloadable, then it is reloaded each time the file is changed.
    38     static {
    39         //load in the properties
    40         properties = new Properties();
    41         reload();
    42     }
    43    
    44     /** get the value of the property 'key'. returns null if not found */
    45     public static String getProperty(String key) {
    46         return properties.getProperty(key);
    47     }
     46    /** get the value of the property 'key'. returns null if not found */
     47    public static String getProperty(String key)
     48    {
     49        return properties.getProperty(key);
     50    }
    4851
    49     /** get the value of the property 'key'.
    50      * returns default_value if not found */
    51     public static String getProperty(String key, String default_value) {
    52         return properties.getProperty(key, default_value);
    53     }
     52    /**
     53     * get the value of the property 'key'. returns default_value if not found
     54     */
     55    public static String getProperty(String key, String default_value)
     56    {
     57        return properties.getProperty(key, default_value);
     58    }
    5459
    55     /** some special ones */
    56     public static String getGSDL3Home() {
    57         return gsdl3_home;
    58     }
     60    /** some special ones */
     61    public static String getGSDL3Home()
     62    {
     63        return gsdl3_home;
     64    }
    5965
    60     public static String getGSDL3WebAddress() {
    61         return gsdl3_web_address;
    62     }
    63    
    64     public static void reload() {
    65         try {
     66    public static String getGSDL3WebAddress()
     67    {
     68        return gsdl3_web_address;
     69    }
    6670
     71    public static void reload()
     72    {
     73        try
     74        {
    6775
    68             InputStream in = Class.forName("org.greenstone.util.GlobalProperties").getClassLoader().getResourceAsStream(properties_filename);
    69             if (in != null) {
    70             logger.debug("loading global properties");
    71             properties.load(in);
    72             in.close();
    73             } else {
    74             logger.error("couldn't load global properties!");
    75             }
    76             gsdl3_home = properties.getProperty("gsdl3.home");
    77             // make sure the path separators are correct
    78             File gs3_file = new File(gsdl3_home);
    79             gsdl3_home = gs3_file.getPath();
     76            InputStream in = Class.forName("org.greenstone.util.GlobalProperties").getClassLoader().getResourceAsStream(properties_filename);
     77            if (in != null)
     78            {
     79                logger.debug("loading global properties");
     80                properties.load(in);
     81                in.close();
     82            }
     83            else
     84            {
     85                logger.error("couldn't load global properties!");
     86            }
     87            gsdl3_home = properties.getProperty("gsdl3.home");
     88            // make sure the path separators are correct
     89            File gs3_file = new File(gsdl3_home);
     90            gsdl3_home = gs3_file.getPath();
    8091
    81             //build the gsdl3 web address, in a way resilient to errors and ommisions in global.properties, simplifying where possible
    82             //aiming for a string with no trailing slash, eg "http://localhost:8080/greenstone3" or "http://www.mygreenstonelibrary.com"
    83             String protocolSpecifier = null, hostSpecifier = null, portSpecifier = null, contextSpecifier = null;
     92            //build the gsdl3 web address, in a way resilient to errors and ommisions in global.properties, simplifying where possible
     93            //aiming for a string with no trailing slash, eg "http://localhost:8080/greenstone3" or "http://www.mygreenstonelibrary.com"
     94            String protocolSpecifier = null, hostSpecifier = null, portSpecifier = null, contextSpecifier = null;
    8495
    85             //protocol
    86             if ( properties.getProperty("tomcat.protocol") == null || properties.getProperty("tomcat.protocol").equals("") ) {
    87                 protocolSpecifier = "http://";
    88             } else {
    89                 if ( properties.getProperty("tomcat.protocol").endsWith("://") ) {
    90                     protocolSpecifier = properties.getProperty("tomcat.protocol");
    91                 } else {
    92                     protocolSpecifier = properties.getProperty("tomcat.protocol") + "://";
    93                 }
    94             }
     96            //protocol
     97            if (properties.getProperty("tomcat.protocol") == null || properties.getProperty("tomcat.protocol").equals(""))
     98            {
     99                protocolSpecifier = "http://";
     100            }
     101            else
     102            {
     103                if (properties.getProperty("tomcat.protocol").endsWith("://"))
     104                {
     105                    protocolSpecifier = properties.getProperty("tomcat.protocol");
     106                }
     107                else
     108                {
     109                    protocolSpecifier = properties.getProperty("tomcat.protocol") + "://";
     110                }
     111            }
    95112
    96             //hostname
    97             if ( properties.getProperty("tomcat.server") == null ) {
    98                 hostSpecifier = "localhost";
    99             } else {
    100                 hostSpecifier = properties.getProperty("tomcat.server");
    101                 while ( hostSpecifier.endsWith("/") ) {
    102                     hostSpecifier = hostSpecifier.substring( 0, hostSpecifier.length()-1 );
    103                 }
    104             }
     113            //hostname
     114            if (properties.getProperty("tomcat.server") == null)
     115            {
     116                hostSpecifier = "localhost";
     117            }
     118            else
     119            {
     120                hostSpecifier = properties.getProperty("tomcat.server");
     121                while (hostSpecifier.endsWith("/"))
     122                {
     123                    hostSpecifier = hostSpecifier.substring(0, hostSpecifier.length() - 1);
     124                }
     125            }
    105126
    106             //port
    107             if (
    108                 properties.getProperty("tomcat.port") == null ||
    109                 properties.getProperty("tomcat.port").equals("") ||
    110                 ( protocolSpecifier.equals("http://") && properties.getProperty("tomcat.port").equals("80") ) ||
    111                 ( protocolSpecifier.equals("https://") && properties.getProperty("tomcat.port").equals("443") )
    112                 ) {
    113                 portSpecifier = "";
    114             } else {
    115                 portSpecifier = ":" + properties.getProperty("tomcat.port");
    116             }
     127            //port
     128            if (properties.getProperty("tomcat.port") == null || properties.getProperty("tomcat.port").equals("") || (protocolSpecifier.equals("http://") && properties.getProperty("tomcat.port").equals("80")) || (protocolSpecifier.equals("https://") && properties.getProperty("tomcat.port").equals("443")))
     129            {
     130                portSpecifier = "";
     131            }
     132            else
     133            {
     134                portSpecifier = ":" + properties.getProperty("tomcat.port");
     135            }
    117136
    118             //context path
    119             if ( properties.getProperty("tomcat.context") == null || properties.getProperty("tomcat.context").equals("") || properties.getProperty("tomcat.context").equals("/") ) {
    120                 contextSpecifier = "";
    121             } else {
    122                 contextSpecifier = properties.getProperty("tomcat.context");
    123                 if ( !contextSpecifier.startsWith("/") ) {
    124                     contextSpecifier = "/" + contextSpecifier;
    125                 }
    126             }
     137            //context path
     138            if (properties.getProperty("tomcat.context") == null || properties.getProperty("tomcat.context").equals("") || properties.getProperty("tomcat.context").equals("/"))
     139            {
     140                contextSpecifier = "";
     141            }
     142            else
     143            {
     144                contextSpecifier = properties.getProperty("tomcat.context");
     145                if (!contextSpecifier.startsWith("/"))
     146                {
     147                    contextSpecifier = "/" + contextSpecifier;
     148                }
     149            }
    127150
    128             //string it all together
    129             gsdl3_web_address = protocolSpecifier + hostSpecifier + portSpecifier + contextSpecifier;
     151            //string it all together
     152            gsdl3_web_address = protocolSpecifier + hostSpecifier + portSpecifier + contextSpecifier;
    130153
    131         } catch (Exception e) {
    132             logger.error( "Exception trying to reload global.properties: " + e );
    133         }
    134     }
     154        }
     155        catch (Exception e)
     156        {
     157            logger.error("Exception trying to reload global.properties: " + e);
     158        }
     159    }
    135160}
Note: See TracChangeset for help on using the changeset viewer.