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()));


Reply via email to