- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 18 Aug 2009 11:56:38 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn In directory hutz:/tmp/cvs-serv5650/src/org/w3c/unicorn Modified Files: Tag: dev2 Framework.java Log Message: added verifications Index: Framework.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/Attic/Framework.java,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -d -r1.1.2.8 -r1.1.2.9 --- Framework.java 17 Aug 2009 17:28:26 -0000 1.1.2.8 +++ Framework.java 18 Aug 2009 11:56:36 -0000 1.1.2.9 @@ -12,6 +12,7 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; @@ -32,6 +33,8 @@ import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.apache.velocity.app.VelocityEngine; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; import org.w3c.unicorn.contract.Observer; import org.w3c.unicorn.contract.WADLUnmarshaller; import org.w3c.unicorn.contract.WADLUnmarshallerXPath; @@ -109,7 +112,7 @@ /** * Initialize Unicorn */ - public static void init() throws Exception { + public static void init() {// throws Exception { unicornPropertiesFiles = new Hashtable<String, Properties>(); languageContexts = new Hashtable<String, VelocityContext>(); languageProperties = new Hashtable<String, Properties>(); @@ -284,7 +287,6 @@ // Loading observers logger.debug("-------------------------------------------------------"); logger.debug("Loading available observers from the observers list file."); - LocalizedString.DEFAULT_LANGUAGE = Property.get("DEFAULT_LANGUAGE"); BufferedReader aBufferedReader; try { aBufferedReader = new BufferedReader(new FileReader(Property.get("OBSERVER_LIST_FILE"))); @@ -384,6 +386,7 @@ aRDFUnmarshaller.setMapOfObserver(mapOfObserver); for (final File aFile : tFileRDF) { try { + logger.debug("- Loading rdf file: " + aFile.getName()); aRDFUnmarshaller.addURL(aFile.toURI().toURL()); aRDFUnmarshaller.unmarshal(); } catch (MalformedURLException e) { @@ -397,13 +400,26 @@ } } mapOfTask = aTaskListUnmarshaller.getMapOfTask(); + for (String key : mapOfTask.keySet()) { + Task task = mapOfTask.get(key); + String defaultLang = Property.get("DEFAULT_LANGUAGE"); + if (task.getLongName().getLocalization(defaultLang) == null) { + task.getLongName().addLocalization(defaultLang, key); + logger.warn("Missing default language long name for task: " + key + ". Long name will be the task id."); + } + } if (mapOfTask.size() == 0) { logger.fatal("No task have been loaded. Check task files in: " + Property.get("PATH_TO_TASKLIST")); return; } 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); logger.info("OK - " + mapOfTask.size() + " task(s) successfully loaded."); - logger.info(mapOfTask); } + // Retrieve output lang from PATH_TO_OUTPUT_TEMPLATES /*File[] listFD = (new File(Property.get("PATH_TO_TEMPLATES"))) @@ -417,17 +433,22 @@ outputLang.add((listFD[i].getName().split("_"))[0]); }*/ - outputLang = new HashSet<String>(); + //outputLang = new HashSet<String>(); // Loading language files - if (!Language.isISOLanguageCode(Property.get("DEFAULT_LANGUAGE"))) - logger.error("Property DEFAULT_LANGUAGE is not a valid ISO639 code: " + Property.get("DEFAULT_LANGUAGE")); + 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; + } File defaultLanguageFile = new File(Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties"); if (!defaultLanguageFile.exists()) { - logger.error("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties"); - } + logger.fatal("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties"); + return; + } File[] languageFiles = ListFiles.listFiles(Property .get("PATH_TO_LANGUAGE_FILES"), "\\.properties$"); @@ -435,20 +456,59 @@ for (File langFile : languageFiles) { String localeString = langFile.getName().split("\\.")[0]; if (!Language.isISOLanguageCode(localeString)) - logger.warn(langFile.getName() + " is not a language file: " + localeString + " is not a valid locale."); + logger.warn("Invalid language file: " + langFile.getName() + "" + + ". \"" + localeString + "\" is not a valid locale."); else { - FileInputStream fis = new FileInputStream(langFile); - InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); - Properties props = new Properties(); - props.load(isr); - props.put("lang", localeString); - props.put("tasklist", mapOfTask); - languageProperties.put(localeString, props); - logger.debug("Added language file: " + localeString + " - " + props.getProperty("language")); + try { + FileInputStream fis = new FileInputStream(langFile); + InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); + Properties props = new Properties(); + props.load(isr); + props.put("lang", localeString); + props.put("tasklist", mapOfTask); + languageProperties.put(localeString, props); + String s; + if (localeString.equals(Property.get("DEFAULT_LANGUAGE"))) + s = " (default)"; + else + s = ""; + logger.debug("> Added language"+s+": " + localeString + " - " + props.getProperty("language")); + } catch (FileNotFoundException e) { + // Should not happen + logger.error(e.getMessage(), e); + } catch (UnsupportedEncodingException e) { + // Should not happen + logger.error(e.getMessage(), e); + } catch (IOException e) { + if (!localeString.equals(Property.get("DEFAULT_LANGUAGE"))) { + logger.error("Unable to read language file. " + langFile + ". This file will be skiped."); + continue; + } + else { + logger.fatal("Unable to read default language file. " + langFile); + return; + } + } } } + if (languageProperties.size() == 0) { + logger.fatal("No language have been loaded. Check language files in: " + Property.get("PATH_TO_LANGUAGE_FILES")); + return; + } else { + String s = "Language properties:"; + for (String key : languageProperties.keySet()) { + s += "\n\n\t" + languageProperties.get(key).getProperty("language") + ":"; + for (Object langKey : languageProperties.get(key).keySet()) { + s += "\n\t\t" + langKey + " => " + languageProperties.get(key).getProperty((String) langKey); + } + } + logger.debug(s); + logger.info("OK - " + languageProperties.size() + " language(s) successfully loaded."); + } // Creating velocity contexts + logger.debug("-------------------------------------------------------"); + logger.debug("Initializing Velocity"); for (String locale : languageProperties.keySet()) { VelocityContext context = new VelocityContext(); Properties langProps = languageProperties.get(locale); @@ -459,25 +519,44 @@ context.put("param_prefix", Property.get("UNICORN_PARAMETER_PREFIX")); languageContexts.put(locale, context); } - - //for (String key : languageContexts.keySet()) { - // logger.error("Context: " + key + " - " + languageContexts.get(key)); - //} + logger.debug("> "+languageContexts.size()+" velocity context(s) created"); // Creating velocity engine velocityEngine = new VelocityEngine(); Properties bProperties = Property.getProps("velocity.properties"); bProperties.put(Velocity.FILE_RESOURCE_LOADER_PATH, Property .get("PATH_TO_TEMPLATES")); - velocityEngine.init(bProperties); + logger.debug("> Initializing velocity engine with FILE_RESOURCE_LOADER_PATH: " + Property.get("PATH_TO_TEMPLATES")); + try { + velocityEngine.init(bProperties); + logger.debug("> Velocity engine successfully initialized"); + } catch (Exception e) { + logger.fatal("Error instanciating velocity engine. " + e.getMessage(), e); + return; + } - // Creating velocity templates - velocityTemplates.put("index", velocityEngine.getTemplate("index.vm", "UTF-8")); - //velocityTemplates.put("index", velocityEngine.getTemplate("index.vm", "UTF-8")); + // TODO load all templates in the template directory + // Loading velocity templates + try { + velocityTemplates.put("index", velocityEngine.getTemplate("index.vm", "UTF-8")); + } catch (ResourceNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ParseErrorException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + logger.debug("> "+velocityTemplates.size()+" velocity template(s) loaded"); + // TODO add debug information on the loaded templates + + logger.info("OK - Velocity successfully initialized"); TemplateHelper.init(); - Framework.logger.info("End of initialisation of UniCORN."); + Framework.logger.info("Unicorn initialized successfully."); isUcnInitialized = true; }
Received on Tuesday, 18 August 2009 11:56:48 UTC