2006/unicorn/src/org/w3c/unicorn Framework.java,1.1.2.3,1.1.2.4

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

Modified Files:
      Tag: dev2
	Framework.java 
Log Message:
more actions in Framework
+ IndexAction
+ language negociation structure

Index: Framework.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/Attic/Framework.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -d -r1.1.2.3 -r1.1.2.4
--- Framework.java	12 Aug 2009 17:28:05 -0000	1.1.2.3
+++ Framework.java	13 Aug 2009 13:42:42 -0000	1.1.2.4
@@ -18,7 +18,6 @@
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -26,12 +25,14 @@
 import javax.xml.namespace.NamespaceContext;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PropertyConfigurator;
+import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+import org.apache.velocity.app.VelocityEngine;
 import org.w3c.unicorn.contract.Observer;
 import org.w3c.unicorn.contract.WADLUnmarshaller;
 import org.w3c.unicorn.contract.WADLUnmarshallerXPath;
 import org.w3c.unicorn.language.Language;
-import org.w3c.unicorn.output.OutputFactory;
 import org.w3c.unicorn.response.parser.ResponseParser;
 import org.w3c.unicorn.tasklist.RDFUnmarshaller;
 import org.w3c.unicorn.tasklist.RDFUnmarshallerJena;
@@ -67,7 +68,7 @@
 	//public static Properties aPropertiesExtension;
 
 	/**
-	 * List of availables output lang in PATH_TO_OUTPUT_TEMPLATES
+	 * List of available output languages in PATH_TO_OUTPUT_TEMPLATES
 	 */
 	public static Set<String> outputLang;
 
@@ -90,16 +91,22 @@
 	 * True if initialization did not throw any exception
 	 */
 	public static boolean isUcnInitialized = false;
-	
 	private static Hashtable<String, Properties> unicornPropertiesFiles;
 	private static Hashtable<String, VelocityContext> languageContexts;
 	private static Hashtable<String, Properties> languageProperties;
+	private static VelocityEngine velocityEngine;
+	private static Hashtable<String, Template> velocityTemplates;
 	
 	/**
 	 * Initialize Unicorn
 	 * @throws Exception 
 	 */
 	public static void init() throws Exception {
+		unicornPropertiesFiles = new Hashtable<String, Properties>();
+		languageContexts = new Hashtable<String, VelocityContext>();
+		languageProperties = new Hashtable<String, Properties>();
+		velocityTemplates = new Hashtable<String, Template>();
+		
 		// Checks that unicorn.home (JVM parameter) is set to an existing directory
 		String ucnHome = System.getProperty("unicorn.home");
 		System.err.println(ucnHome);
@@ -185,21 +192,9 @@
 			}
 		}
 		
-		if (!Language.isISOLanguageCode(Property.get("DEFAULT_LANGUAGE")))
-			logger.error("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.error("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties");
-		} 
 		
-		File[] languageFiles = ListFiles.listFiles(Property
-				.get("PATH_TO_LANGUAGE_FILES") + "/test", "\\.properties$");
 		
-		for (File langFile : languageFiles) {
-			Language.addLanguageFile(langFile);
-			
-		}
 		
 		TemplateHelper.init();
 		
@@ -260,7 +255,7 @@
 				.getProperty(RDFUnmarshallerJena.getUcnNamespace() + "value"));
 		
 		// Initialize OutputFactory
-		OutputFactory.setPropertiesSpecialFormaters(Property.getProps("specialFormaters.properties"));
+		//OutputFactory.setPropertiesSpecialFormaters(Property.getProps("specialFormaters.properties"));
 		
 		//WADLUnmarshallerXPath.init();
 		//RDFUnmarshallerJena.init();
@@ -425,6 +420,66 @@
 			outputLang.add((listFD[i].getName().split("_"))[0]);
 		}
 
+		
+		
+		
+		// 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"));
+		
+		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");
+		} 
+		
+		File[] languageFiles = ListFiles.listFiles(Property
+				.get("PATH_TO_LANGUAGE_FILES"), "\\.properties$");
+		
+		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.");
+			else {
+				Properties props = new Properties();
+				props.load(langFile.toURI().toURL().openStream());
+				props.put("lang", localeString);
+				props.put("tasklist", mapOfTask);
+				languageProperties.put(localeString, props);
+				logger.debug("Added language file: " + localeString + " - " + props.getProperty("language"));
+			}
+		}
+		//for (String locale : languageProperties.keySet()) {
+		//	logger.error(locale + " - " + languageProperties.get(locale));
+		//}
+		
+		// Creating velocity contexts
+		for (String locale : languageProperties.keySet()) {
+			VelocityContext context = new VelocityContext();
+			Properties langProps = languageProperties.get(locale);
+			for (Object key : langProps.keySet()) {
+		    	context.put((String) key, langProps.get(key));
+		    }
+			context.put("tasklist", mapOfTask);
+			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));
+		//}
+		
+		// Creating velocity engine
+		velocityEngine = new VelocityEngine();
+		Properties aProperties = Property.getProps("velocity.properties");
+		aProperties.put(Velocity.FILE_RESOURCE_LOADER_PATH, Property
+				.get("PATH_TO_TEMPLATES"));
+		velocityEngine.init(aProperties);
+		
+		// Creating velocity templates
+		velocityTemplates.put("index", velocityEngine.getTemplate("index.vm", "UTF-8"));
+		//velocityTemplates.put("index", velocityEngine.getTemplate("index.vm", "UTF-8"));
+		
+		
 		Framework.logger.info("End of initialisation of UniCORN.");
 		isUcnInitialized = true;
 	}
@@ -432,4 +487,18 @@
 	public static Hashtable<String, Properties> getUnicornPropertiesFiles() {
 		return unicornPropertiesFiles;
 	}
+
+	public static Hashtable<String, VelocityContext> getLanguageContexts() {
+		return languageContexts;
+	}
+
+	public static VelocityEngine getVelocityEngine() {
+		return velocityEngine;
+	}
+
+	public static Template getTemplate(String name) {
+		return velocityTemplates.get(name);
+	}
+	
+	
 }

Received on Thursday, 13 August 2009 13:42:57 UTC