Changeset 24896
- Timestamp:
- 2011-12-14T16:01:55+13:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/util/GlobalProperties.java
r22085 r24896 25 25 import org.apache.log4j.*; 26 26 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 */ 30 public 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; 29 37 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 } 30 45 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 } 48 51 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 } 54 59 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 } 59 65 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 } 66 70 71 public static void reload() 72 { 73 try 74 { 67 75 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(); 80 91 81 82 83 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; 84 95 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 } 95 112 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 } 105 126 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 } 117 136 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 } 127 150 128 129 151 //string it all together 152 gsdl3_web_address = protocolSpecifier + hostSpecifier + portSpecifier + contextSpecifier; 130 153 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 } 135 160 }
Note:
See TracChangeset
for help on using the changeset viewer.