You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/07/02 07:17:19 UTC

svn commit: r1356069 - in /incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings: app/data/basic/FieldLanguageDaoImpl.java app/installation/ImportInitvalues.java app/remote/LanguageService.java cli/Admin.java

Author: solomax
Date: Mon Jul  2 05:17:18 2012
New Revision: 1356069

URL: http://svn.apache.org/viewvc?rev=1356069&view=rev
Log:
OPENMEETINGS-111 option for language reimport is added

Modified:
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/FieldLanguageDaoImpl.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/FieldLanguageDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/FieldLanguageDaoImpl.java?rev=1356069&r1=1356068&r2=1356069&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/FieldLanguageDaoImpl.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/FieldLanguageDaoImpl.java Mon Jul  2 05:17:18 2012
@@ -46,10 +46,11 @@ public class FieldLanguageDaoImpl {
 	@PersistenceContext
 	private EntityManager em;
 
-	public Long addLanguage(String langName, Boolean langRtl, String code) {
+	public Long addLanguage(int langId, String langName, Boolean langRtl, String code) {
 		try {
 
 			FieldLanguage fl = new FieldLanguage();
+			fl.setLanguage_id((long)langId);
 			fl.setStarttime(new Date());
 			fl.setDeleted("false");
 			fl.setName(langName);

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java?rev=1356069&r1=1356068&r2=1356069&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java Mon Jul  2 05:17:18 2012
@@ -20,6 +20,7 @@ package org.openmeetings.app.installatio
 
 import java.io.File;
 import java.util.Arrays;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
@@ -831,7 +832,7 @@ public class ImportInitvalues {
 			// log.error("getLanguageFiles "+country);
 			languages.put(id, lang);
 		}
-		log.debug("Languages ADDED ");
+		log.debug("Language files are loaded");
 		return languages;
 	}
 
@@ -876,22 +877,10 @@ public class ImportInitvalues {
 		}
 	}
 
-	// ------------------------------------------------------------------------------
-
-	/**
-	 * Loading initial Language from xml Files into database
-	 */
-	// ------------------------------------------------------------------------------
-	public void loadInitLanguages() throws Exception {
-
-		loadCountriesFiles();
-
-		loadTimeZoneFiles();
-
+	public void loadLanguagesFiles() throws Exception {
 		LinkedHashMap<Integer, LinkedHashMap<String, Object>> listlanguages = getLanguageFiles();
 
-		boolean langFieldIdIsInited = false;
-
+		Hashtable<Long, Fieldvalues> fieldCache = new Hashtable<Long, Fieldvalues>(3000);
 		/** Read all languages files */
 		for (Iterator<Integer> itLang = listlanguages.keySet().iterator(); itLang
 				.hasNext();) {
@@ -910,7 +899,7 @@ public class ImportInitvalues {
 			if (rtl != null && rtl.equals("true"))
 				langRtl = true;
 
-			Long languages_id = fieldLanguageDaoImpl.addLanguage(langName,
+			Long languages_id = fieldLanguageDaoImpl.addLanguage(langId, langName,
 					langRtl, code);
 
 			SAXReader reader = new SAXReader();
@@ -937,10 +926,11 @@ public class ImportInitvalues {
 
 				Fieldvalues fv = null;
 				// Only do that for the first field-set
-				if (!langFieldIdIsInited) {
+				if (!fieldCache.containsKey(id)) {
 					fv = fieldmanagment.addFieldById(name, id);
+					fieldCache.put(id,  fv);
 				} else {
-					fv = fieldmanagment.getFieldvaluesById(id);
+					fv = fieldCache.get(id);
 				}
 
 				fieldmanagment.addFieldValueByFieldAndLanguage(fv,
@@ -948,10 +938,20 @@ public class ImportInitvalues {
 
 			}
 			log.debug("Lang ADDED: " + lang);
-			if (!langFieldIdIsInited)
-				langFieldIdIsInited = true;
 		}
+		log.debug("All languages are imported");
+	}
+	
+	// ------------------------------------------------------------------------------
 
+	/**
+	 * Loading initial Language from xml Files into database
+	 */
+	// ------------------------------------------------------------------------------
+	public void loadInitLanguages() throws Exception {
+		loadCountriesFiles();
+		loadTimeZoneFiles();
+		loadLanguagesFiles();
 	}
 
 	// ------------------------------------------------------------------------------

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java?rev=1356069&r1=1356068&r2=1356069&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/LanguageService.java Mon Jul  2 05:17:18 2012
@@ -114,7 +114,7 @@ public class LanguageService {
 		if (authLevelManagement.checkAdminLevel(user_level)) {
 			if (langName.length() == 0)
 				return new Long(-30);
-			return fieldLanguageDaoImpl.addLanguage(langName, false, code);
+			return fieldLanguageDaoImpl.addLanguage(0, langName, false, code);
 		}
 		return null;
 	}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?rev=1356069&r1=1356068&r2=1356069&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java Mon Jul  2 05:17:18 2012
@@ -82,6 +82,7 @@ public class Admin {
 			.addOption(new OmOption("b", 1, "b", "backup", false, "Backups OM"))
 			.addOption(new OmOption("r", 2, "r", "restore", false, "Restores OM"))
 			.addOption(new OmOption("i", 3, "i", "install", false, "Fill DB table, and make OM usable"))
+			.addOption(new OmOption("l", 3, "l", "languages", false, "Reimport All language files into DB"))
 			.addOption(new OmOption("f", 4, "f", "files", false, "File operations - statictics/cleanup"));
 		group.setRequired(true); 
 		options.addOptionGroup(group);
@@ -121,6 +122,7 @@ public class Admin {
 		install
 		, backup
 		, restore
+		, languages
 		, files
 		, usage
 	}
@@ -288,6 +290,8 @@ public class Admin {
 			cmd = Command.backup;
 		} else if (cmdl.hasOption('r')) {
 			cmd = Command.restore;
+		} else if (cmdl.hasOption('l')) {
+			cmd = Command.languages;
 		} else if (cmdl.hasOption('f')) {
 			cmd = Command.files;
 		}
@@ -393,6 +397,15 @@ public class Admin {
 					handleError("Restore failed", e);
 				}
 				break;
+			case languages:
+				System.out.println("All language file will be reimported");
+				try {
+					ImportInitvalues importInit = getApplicationContext(ctxName).getBean(ImportInitvalues.class);
+					importInit.loadLanguagesFiles(); 
+				} catch (Exception e) {
+					handleError("Language reimport failed", e);
+				}
+				break;
 			case files:
 				try {
 					System.out.println("Temporary upload files allocates: " + OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir()));