2006/unicorn/src/org/w3c/unicorn Framework.java,1.3,1.4

Update of /sources/public/2006/unicorn/src/org/w3c/unicorn
In directory hutz:/tmp/cvs-serv31198/src/org/w3c/unicorn

Modified Files:
	Framework.java 
Log Message:
Initialization now throws Exceptions and stops if a fatal error is encountered
+ separated init tasks on InitAction

Index: Framework.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/Framework.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Framework.java	28 Aug 2009 16:11:41 -0000	1.3
+++ Framework.java	31 Aug 2009 11:35:55 -0000	1.4
@@ -33,6 +33,7 @@
 import org.w3c.unicorn.contract.Observer;
 import org.w3c.unicorn.contract.WADLUnmarshaller;
 import org.w3c.unicorn.contract.WADLUnmarshallerXPath;
+import org.w3c.unicorn.exceptions.InitializationFailedException;
 import org.w3c.unicorn.exceptions.UnknownParserException;
 import org.w3c.unicorn.language.Language;
 import org.w3c.unicorn.response.parser.ResponseParser;
@@ -109,32 +110,35 @@
 	 */
 	public static void init() {
 		reset();
-		initCore();
-		initConfig();
-		initUnmarshallers();
-		initResponseParsers();
-		initObservers();
-		initTasklists();
-		initLanguages();
-		initVelocity();
+		try {
+			initCore();
+			initConfig();
+			initUnmarshallers();
+			initResponseParsers();
+			initObservers();
+			initTasklists();
+			initLanguages();
+			initVelocity();
+		} catch (InitializationFailedException e) {
+			logger.fatal(e.getMessage(), e);
+		}
+		
 	}
 	
-	public static void initCore() {// throws Exception {
+	public static void initCore() throws InitializationFailedException {
 		
 		// Checks that unicorn.home (JVM parameter) is set to an existing directory
 		String ucnHome = System.getProperty("unicorn.home");
 		if (ucnHome == null) {
 			String fatal = "\"unicorn.home\" is not set in the JVM parameters. Please read the README file before trying to install Unicorn";
 			System.err.println("FATAL: " + fatal);
-			logger.fatal(fatal);
-			return;
+			throw new InitializationFailedException(fatal);
 		} else {
 			File ucnHomeFile = new File(ucnHome);
 			if (!ucnHomeFile.exists() || !ucnHomeFile.isDirectory()) {
 				String fatal = "JVM parameter \"unicorn.home\" is not an existing directory: " + System.getProperty("unicorn.home");
 				System.err.println("FATAL: " + fatal);
-				logger.fatal(fatal);
-				return;
+				throw new InitializationFailedException(fatal);
 			} else {
 				unicornHome = ucnHomeFile.toURI();
 				logger.info("OK - JVM parameter \"unicorn.home\" was found: " + unicornHome.getPath());
@@ -149,7 +153,7 @@
 			logger.info("OK - JVM parameter \"unicorn.home\" was found: " + unicornHome.getPath());
 			logger.info("OK - Log4j successfully initialized");
 			logger.debug("> Used log4j.properties file: " + log4jPath);
-			logger.debug("> log4j.properties:" + (UCNProperties) unicornPropertiesFiles.get("log4j.properties"));
+			//logger.debug("> log4j.properties:" + (UCNProperties) unicornPropertiesFiles.get("log4j.properties")); // already logged by loadConfigFile()
 		} catch (FileNotFoundException e) {
 			logger.warn("Log4j config file \"log4j.properties\" could not be found: " + log4jPath);
 			logger.warn("Log4j will not be initialized");
@@ -159,7 +163,7 @@
 		}
 		
 	}	
-	public static void initConfig() {
+	public static void initConfig() throws InitializationFailedException {
 		// Load unicorn.properties	
 		logger.debug("-------------------------------------------------------");
 		String unicornPath = unicornHome.getPath() + "/WEB-INF/conf/unicorn.properties";
@@ -167,14 +171,12 @@
 			loadConfigFile(unicornPath, true);
 			logger.info("OK - Config file unicorn.properties successfully loaded");
 		} catch (FileNotFoundException e) {
-			logger.fatal("Unicorn config file \"unicorn.properties\" could not be found: " + unicornPath);
-			return;
+			throw new InitializationFailedException("Unicorn config file \"unicorn.properties\" could not be found: " + unicornPath);
 		} catch (IOException e) {
-			logger.fatal("Error reading \"unicorn.properties\": ", e);
-			return;
+			throw new InitializationFailedException("Error reading \"unicorn.properties\": " + e.getMessage());
 		}
 
-		// Loading config files
+		// Loading other config files
 		for (String fileName : configFiles) {
 			String path = Property.get("PATH_TO_CONF_FILES") + fileName;
 			logger.debug("-------------------------------------------------------");
@@ -182,11 +184,9 @@
 				loadConfigFile(path, false);
 				logger.info("OK - Config file " + fileName + " successfully loaded");
 			} catch (FileNotFoundException e) {
-				logger.fatal("Mandatory config file \"" + fileName + "\" could not be found: " + path);
-				return;
+				throw new InitializationFailedException("Mandatory config file \"" + fileName + "\" could not be found: " + path);
 			} catch (IOException e) {
-				logger.fatal("Error reading \"" + fileName + "\": ", e);
-				return;
+				throw new InitializationFailedException("Error reading \"" + fileName + "\": " + e.getMessage());
 			}
 		}
 	}
@@ -255,7 +255,7 @@
 				namespace + "value"));
 		logger.info("OK - RDFUnmarshallerJena successfully initialized.");
 	}
-	public static void initResponseParsers() {
+	public static void initResponseParsers() throws InitializationFailedException {
 	    // Load the map of ResponseParser
 		logger.debug("-------------------------------------------------------");
 		logger.debug("Loading available parsers form responseParsers.properties");
@@ -274,14 +274,13 @@
 			}
 		}
 		if (mapOfReponseParser.size() == 0) {
-			logger.fatal("There is no parser loaded. Check responseParsers.properties.");
-			return;
+			throw new InitializationFailedException("There is no parser loaded. Check responseParsers.properties.");
 		} else {
 			logger.info("OK - " + mapOfReponseParser.size() + " parser(s) successfully loaded.");
 		}
 
 	}
-	public static void initObservers() {
+	public static void initObservers() throws InitializationFailedException {
 		// Loading observers
 		logger.debug("-------------------------------------------------------");
 		logger.debug("Loading available observers from the observers list file.");
@@ -290,8 +289,7 @@
 			aBufferedReader = new BufferedReader(new FileReader(Property.get("OBSERVER_LIST_FILE")));
 			logger.debug("Using file: " + Property.get("OBSERVER_LIST_FILE"));
 		} catch (FileNotFoundException e) {
-			logger.fatal("The list of observers could not be found: " + Property.get("OBSERVER_LIST_FILE"));
-			return;
+			throw new InitializationFailedException("The list of observers could not be found: " + Property.get("OBSERVER_LIST_FILE"));
 		}
 		String readLine;
 		do {
@@ -300,8 +298,7 @@
 				if (readLine == null)
 					break;
 			} catch (IOException e) {
-				logger.fatal("Error while reading the observer list file", e);
-				return;
+				throw new InitializationFailedException("Error while reading the observer list file: " + e.getMessage());
 			}
 			if ("".equals(readLine.trim()) || readLine.matches("^#.*$"))
 				continue;
@@ -321,8 +318,7 @@
 				logger.warn("> This observer will be skiped");
 				continue;
 			} catch (ParserConfigurationException e) {
-				logger.fatal(e.getMessage(), e);
-				return;
+				throw new InitializationFailedException("ParserConfigurationException: " + e.getMessage());
 			} catch (IOException e) {
 				logger.error("Unable to read observer contract: " + sWADL, e);
 				logger.warn("> This observer will be skiped");
@@ -351,13 +347,12 @@
 			mapOfObserver.put(new String(obs.getID()), obs);
 		} while (readLine != null);
 		if (mapOfObserver.size() == 0) {
-			logger.fatal("There is no observer loaded. Check the observers list file.");
-			return;
+			throw new InitializationFailedException("There is no observer loaded. Check the observers list file.");
 		} else {
 			logger.info("OK - " + mapOfObserver.size() + " observer(s) successfully loaded.");
 		}
 	}
-	public static void initTasklists() {	
+	public static void initTasklists() throws InitializationFailedException {	
 		logger.debug("-------------------------------------------------------");
 		logger.debug("Loading xml task files from tasklist directory: " + Property.get("PATH_TO_TASKLIST"));
 		TasksListUnmarshaller aTaskListUnmarshaller = new TaskListUnmarshallerBeans(mapOfObserver);
@@ -407,31 +402,24 @@
 			}
 		}
 		if (mapOfTask.size() == 0) {
-			logger.fatal("No task have been loaded. Check task files in: " + Property.get("PATH_TO_TASKLIST"));
-			return;
+			throw new InitializationFailedException("No task have been loaded. Check task files in: " + Property.get("PATH_TO_TASKLIST"));
 		} else {
 			String s = "Map of tasks:";
-			/*for (String key : mapOfTask.keySet()) {
-				s += "\n\t" + key + " => " + mapOfTask.get(key).getLongName() + " - " + mapOfTask.get(key).getDescription();
-			}*/
-			
 			logger.debug(s + mapOfTask);
 			logger.info("OK - " + mapOfTask.size() + " task(s) successfully loaded.");
 		}
 	}
-	public static void initLanguages() {	
+	public static void initLanguages() throws InitializationFailedException {	
 		// Loading language files
 		logger.debug("-------------------------------------------------------");
 		logger.debug("Loading language files from language directory: " + Property.get("PATH_TO_LANGUAGE_FILES"));
 		if (!Language.isISOLanguageCode(Property.get("DEFAULT_LANGUAGE"))) {
-			logger.fatal("Property DEFAULT_LANGUAGE is not a valid ISO639 code: " + Property.get("DEFAULT_LANGUAGE"));
-			return;
+			throw new InitializationFailedException("Property DEFAULT_LANGUAGE is not a valid ISO639 code: " + Property.get("DEFAULT_LANGUAGE"));
 		}
 		
 		File defaultLanguageFile = new File(Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties");
 		if (!defaultLanguageFile.exists()) {
-			logger.fatal("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties");
-			return;
+			throw new InitializationFailedException("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties");
 		}
 		
 		File[] languageFiles = ListFiles.listFiles(Property
@@ -469,15 +457,13 @@
 						continue;
 					}
 					else {
-						logger.fatal("Unable to read default language file. " + langFile);
-						return;
+						throw new InitializationFailedException("Unable to read default language file. " + langFile);
 					}
 				}
 			}
 		}
 		if (languageProperties.size() == 0) {
-			logger.fatal("No language have been loaded. Check language files in: " + Property.get("PATH_TO_LANGUAGE_FILES"));
-			return;
+			throw new InitializationFailedException("No language have been loaded. Check language files in: " + Property.get("PATH_TO_LANGUAGE_FILES"));
 		} else {
 			String s = "Language properties:";
 			for (String key : languageProperties.keySet()) {
@@ -493,7 +479,7 @@
 			languages.put(key, languageProperties.get(key).getProperty("language"));
 		}
 	}	
-	public static void initVelocity() {	
+	public static void initVelocity() throws InitializationFailedException {	
 		// Creating velocity contexts
 		logger.debug("-------------------------------------------------------");
 		logger.debug("Initializing Velocity");
@@ -521,8 +507,7 @@
 			velocityEngine.init(bProperties);
 			logger.debug("> Velocity engine successfully initialized");
 		} catch (Exception e) {
-			logger.fatal("Error instanciating velocity engine. " + e.getMessage(), e);
-			return;
+			throw new InitializationFailedException("Error instanciating velocity engine: " + e.getMessage());
 		}
 		
 		logger.info("OK - Velocity successfully initialized");

Received on Monday, 31 August 2009 11:36:06 UTC