Author: solomax
Date: Wed Jul 11 03:56:29 2012
New Revision: 1360004

URL: http://svn.apache.org/viewvc?rev=1360004&view=rev
Log:
OPENMEETINGS-111 language and file options of command-line admin are improved

Modified:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/file/dao/FileExplorerItemDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/files/FileExplorerItem.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/flvrecord/FlvRecordingMetaData.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/file/dao/FileExplorerItemDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/file/dao/FileExplorerItemDaoImpl.java?rev=1360004&r1=1360003&r2=1360004&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/file/dao/FileExplorerItemDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/file/dao/FileExplorerItemDaoImpl.java
 Wed Jul 11 03:56:29 2012
@@ -193,15 +193,29 @@ public class FileExplorerItemDaoImpl {
         return null;
     }
 
-    public FileExplorerItem getFileExplorerItemsById(Long fileExplorerItemId) {
-        //log.debug(".getFileExplorerItemsById() started");
-
+    public FileExplorerItem getFileExplorerItemsByHash(String hash) {
         try {
 
-            String hql = "SELECT c FROM FileExplorerItem c "
-                    + "WHERE c.fileExplorerItemId = :fileExplorerItemId";
+                       TypedQuery<FileExplorerItem> query = 
em.createNamedQuery("getByHash", FileExplorerItem.class);
+                       query.setParameter("fileHash", hash);
+                       
+                       FileExplorerItem fileExplorerList = null;
+                       try {
+                               fileExplorerList = query.getSingleResult();
+                   } catch (NoResultException ex) {
+                   }
 
-                       TypedQuery<FileExplorerItem> query = 
em.createQuery(hql, FileExplorerItem.class);
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItemsById]: ", ex2);
+        }
+        return null;
+    }
+    
+    public FileExplorerItem getFileExplorerItemsById(Long fileExplorerItemId) {
+        try {
+
+                       TypedQuery<FileExplorerItem> query = 
em.createNamedQuery("getById", FileExplorerItem.class);
                        query.setParameter("fileExplorerItemId", 
fileExplorerItemId);
                        
                        FileExplorerItem fileExplorerList = null;
@@ -244,19 +258,16 @@ public class FileExplorerItemDaoImpl {
     }
 
     public List<FileExplorerItem> getFileExplorerItems() {
-        log.debug(".getFileExplorerItemsById() started");
+        log.debug(".getFileExplorerItems() started");
 
         try {
-
-            String hql = "SELECT c FROM FileExplorerItem c ";
-
-                       TypedQuery<FileExplorerItem> query = 
em.createQuery(hql, FileExplorerItem.class);
+                       TypedQuery<FileExplorerItem> query = 
em.createNamedQuery("getAll", FileExplorerItem.class);
 
             List<FileExplorerItem> fileExplorerList = query.getResultList();
 
             return fileExplorerList;
         } catch (Exception ex2) {
-            log.error("[getFileExplorerItemsById]: ", ex2);
+            log.error("[getFileExplorerItems]: ", ex2);
         }
         return null;
     }    

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=1360004&r1=1360003&r2=1360004&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
 Wed Jul 11 03:56:29 2012
@@ -881,79 +881,97 @@ public class ImportInitvalues {
                }
        }
 
-       public void loadLanguagesFiles() throws Exception {
+       public void loadLanguagesFile(int langId) throws Exception {
                LinkedHashMap<Integer, LinkedHashMap<String, Object>> 
listlanguages = getLanguageFiles();
-
-               Hashtable<Long, Fieldvalues> fieldCache = new Hashtable<Long, 
Fieldvalues>(3000);
-               /** Read all languages files */
-               for (Iterator<Integer> itLang = 
listlanguages.keySet().iterator(); itLang
-                               .hasNext();) {
-                       Integer langId = itLang.next();
+               loadLanguagesFile(listlanguages, new Hashtable<Long, 
Fieldvalues>(3000), langId);
+       }
+       
+       public void loadLanguagesFile(String langName) throws Exception {
+               LinkedHashMap<Integer, LinkedHashMap<String, Object>> 
listlanguages = getLanguageFiles();
+               for (int langId : listlanguages.keySet()) {
                        LinkedHashMap<String, Object> langMap = 
listlanguages.get(langId);
-                       log.debug("loadInitLanguages lang: " + langMap);
+                       if (langName.equals(langMap.get("name"))) {
+                               loadLanguagesFile(listlanguages, new 
Hashtable<Long, Fieldvalues>(3000), langId);
+                               break;
+                       }
+               }
+       }
+       
+       public void loadLanguagesFile(LinkedHashMap<Integer, 
LinkedHashMap<String, Object>> listlanguages, Hashtable<Long, Fieldvalues> 
fieldCache, int langId) throws Exception {
+               LinkedHashMap<String, Object> langMap = 
listlanguages.get(langId);
+               log.debug("loadInitLanguages lang: " + langMap);
+
+               String langName = (String) langMap.get("name");
+               String rtl = (String) langMap.get("rtl");
+               String code = (String) langMap.get("code");
 
-                       String langName = (String) langMap.get("name");
-                       String rtl = (String) langMap.get("rtl");
-                       String code = (String) langMap.get("code");
+               log.debug("loadInitLanguages rtl from xml: " + rtl);
 
-                       log.debug("loadInitLanguages rtl from xml: " + rtl);
+               Boolean langRtl = false;
 
-                       Boolean langRtl = false;
+               if (rtl != null && rtl.equals("true"))
+                       langRtl = true;
 
-                       if (rtl != null && rtl.equals("true"))
-                               langRtl = true;
+               long ticks = System.currentTimeMillis();
+               FieldLanguage lang = fieldLanguageDaoImpl.addLanguage(langId, 
langName, langRtl, code);
 
-                       long ticks = System.currentTimeMillis();
-                       FieldLanguage lang = 
fieldLanguageDaoImpl.addLanguage(langId, langName, langRtl, code);
+               SAXReader reader = new SAXReader();
+               Document document = reader.read(new 
File(OmFileHelper.getLanguagesDir(), langName + ".xml"));
 
-                       SAXReader reader = new SAXReader();
-                       Document document = reader.read(new 
File(OmFileHelper.getLanguagesDir(), langName + ".xml"));
+               Element root = document.getRootElement();
 
-                       Element root = document.getRootElement();
+               Map<Long, Fieldlanguagesvalues> flvMap = 
lang.getLanguageValuesMap();
+               for (@SuppressWarnings("rawtypes")
+               Iterator it = root.elementIterator("string"); it.hasNext();) {
+                       Element item = (Element) it.next();
+                       // log.error(item.getName());
+
+                       Long id = 
Long.valueOf(item.attributeValue("id")).longValue();
+                       String name = item.attributeValue("name");
+                       String value = "";
 
-                       Map<Long, Fieldlanguagesvalues> flvMap = 
lang.getLanguageValuesMap();
                        for (@SuppressWarnings("rawtypes")
-                       Iterator it = root.elementIterator("string"); 
it.hasNext();) {
-                               Element item = (Element) it.next();
-                               // log.error(item.getName());
-
-                               Long id = 
Long.valueOf(item.attributeValue("id")).longValue();
-                               String name = item.attributeValue("name");
-                               String value = "";
-
-                               for (@SuppressWarnings("rawtypes")
-                               Iterator t2 = item.elementIterator("value"); 
t2.hasNext();) {
-                                       Element val = (Element) t2.next();
-                                       value = val.getText();
-                               }
+                       Iterator t2 = item.elementIterator("value"); 
t2.hasNext();) {
+                               Element val = (Element) t2.next();
+                               value = val.getText();
+                       }
 
-                               // log.error("result: "+langFieldIdIsInited+" 
"+id+" "+name+" "+value);
+                       // log.error("result: "+langFieldIdIsInited+" "+id+" 
"+name+" "+value);
 
-                               if (flvMap.containsKey(id)) {
-                                       Fieldlanguagesvalues flv = 
flvMap.get(id);
-                                       flv.setUpdatetime(new Date());
-                                       flv.setValue(value);
+                       if (flvMap.containsKey(id)) {
+                               Fieldlanguagesvalues flv = flvMap.get(id);
+                               flv.setUpdatetime(new Date());
+                               flv.setValue(value);
+                       } else {
+                               Fieldvalues fv = null;
+                               // Only do that for the first field-set
+                               if (!fieldCache.containsKey(id)) {
+                                       fv = fieldmanagment.addFieldById(name, 
id);
+                                       fieldCache.put(id,  fv);
                                } else {
-                                       Fieldvalues fv = null;
-                                       // Only do that for the first field-set
-                                       if (!fieldCache.containsKey(id)) {
-                                               fv = 
fieldmanagment.addFieldById(name, id);
-                                               fieldCache.put(id,  fv);
-                                       } else {
-                                               fv = fieldCache.get(id);
-                                       }
-                                       Fieldlanguagesvalues flv = new 
Fieldlanguagesvalues();
-                                       flv.setStarttime(new Date());
-                                       flv.setValue(value);
-                                       
flv.setLanguage_id(lang.getLanguage_id());
-                                       flv.setFieldvalues(fv);
-                                       flv.setDeleted("false");
-                                       flvMap.put(id, flv);
+                                       fv = fieldCache.get(id);
                                }
+                               Fieldlanguagesvalues flv = new 
Fieldlanguagesvalues();
+                               flv.setStarttime(new Date());
+                               flv.setValue(value);
+                               flv.setLanguage_id(lang.getLanguage_id());
+                               flv.setFieldvalues(fv);
+                               flv.setDeleted("false");
+                               flvMap.put(id, flv);
                        }
-                       lang.setLanguageValues(flvMap.values());
-                       fieldLanguageDaoImpl.updateLanguage(lang);
-                       log.debug("Lang ADDED: " + lang + "; seconds passed: " 
+ (System.currentTimeMillis() - ticks) / 1000);
+               }
+               lang.setLanguageValues(flvMap.values());
+               fieldLanguageDaoImpl.updateLanguage(lang);
+               log.debug("Lang ADDED: " + lang + "; seconds passed: " + 
(System.currentTimeMillis() - ticks) / 1000);
+       }
+       
+       public void loadLanguagesFiles() throws Exception {
+               LinkedHashMap<Integer, LinkedHashMap<String, Object>> 
listlanguages = getLanguageFiles();
+
+               Hashtable<Long, Fieldvalues> fieldCache = new Hashtable<Long, 
Fieldvalues>(3000);
+               /** Read all languages files */
+               for (int langId : listlanguages.keySet()) {
+                       loadLanguagesFile(listlanguages, fieldCache, langId);
                }
                log.debug("All languages are imported");
        }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/files/FileExplorerItem.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/files/FileExplorerItem.java?rev=1360004&r1=1360003&r2=1360004&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/files/FileExplorerItem.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/files/FileExplorerItem.java
 Wed Jul 11 03:56:29 2012
@@ -27,15 +27,18 @@ import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 @Entity
+@NamedQueries({
+       @NamedQuery(name="getAll", query="SELECT c FROM FileExplorerItem c")
+    , @NamedQuery(name="getById", query="SELECT c FROM FileExplorerItem c 
WHERE c.fileExplorerItemId = :fileExplorerItemId")
+    , @NamedQuery(name="getByHash", query="SELECT c FROM FileExplorerItem c 
WHERE c.fileHash = :fileHash")
+})
 @Table(name = "fileexploreritem")
 public class FileExplorerItem implements Serializable {
-       
-       /**
-        * 
-        */
        private static final long serialVersionUID = 242843782142620566L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/flvrecord/FlvRecordingMetaData.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/flvrecord/FlvRecordingMetaData.java?rev=1360004&r1=1360003&r2=1360004&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/flvrecord/FlvRecordingMetaData.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/flvrecord/FlvRecordingMetaData.java
 Wed Jul 11 03:56:29 2012
@@ -36,16 +36,6 @@ import javax.persistence.Table;
 @Entity
 @Table(name = "flvrecording_metadata")
 public class FlvRecordingMetaData implements Serializable {
-       
-       public Boolean getStreamReaderThreadComplete() {
-               return streamReaderThreadComplete;
-       }
-       public void setStreamReaderThreadComplete(Boolean 
streamReaderThreadComplete) {
-               this.streamReaderThreadComplete = streamReaderThreadComplete;
-       }
-       /**
-        * 
-        */
        private static final long serialVersionUID = 8444176152324513716L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -225,4 +215,10 @@ public class FlvRecordingMetaData implem
                this.initialGapSeconds = initialGapSeconds;
        }
        
+       public Boolean getStreamReaderThreadComplete() {
+               return streamReaderThreadComplete;
+       }
+       public void setStreamReaderThreadComplete(Boolean 
streamReaderThreadComplete) {
+               this.streamReaderThreadComplete = streamReaderThreadComplete;
+       }
 }

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=1360004&r1=1360003&r2=1360004&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
Wed Jul 11 03:56:29 2012
@@ -46,10 +46,12 @@ import org.apache.commons.cli.Parser;
 import org.apache.commons.cli.PosixParser;
 import org.apache.commons.transaction.util.FileHelper;
 import org.apache.openjpa.jdbc.meta.MappingTool;
+import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
 import org.openmeetings.app.documents.InstallationDocumentHandler;
 import org.openmeetings.app.installation.ImportInitvalues;
 import org.openmeetings.app.installation.InstallationConfig;
+import org.openmeetings.app.persistence.beans.files.FileExplorerItem;
 import org.openmeetings.app.persistence.beans.user.Users;
 import org.openmeetings.servlet.outputhandler.BackupExport;
 import org.openmeetings.servlet.outputhandler.BackupImportController;
@@ -116,6 +118,8 @@ public class Admin {
                options.addOption(new OmOption("i", null, "db-pass", true, 
"Password of the user with write access to the DB specified", true));
                options.addOption(new OmOption("i", null, "drop", false, "Drop 
database before installation", true));
                options.addOption(new OmOption("i", null, "force", false, 
"Install without checking the existence of old data in the database.", true));
+               //languages
+               options.addOption(new OmOption("l", "lang", "language", true, 
"Single language to be imported (id or name)", true));
                
                return options;
        }
@@ -403,7 +407,17 @@ public class Admin {
                                System.out.println("All language file will be 
reimported");
                                try {
                                        ImportInitvalues importInit = 
getApplicationContext(ctxName).getBean(ImportInitvalues.class);
-                                       importInit.loadLanguagesFiles(); 
+                                       if (cmdl.hasOption("lang")) {
+                                               String lang = 
cmdl.getOptionValue("lang");
+                                               try {
+                                                       int id = 
Integer.parseInt(lang);
+                                                       
importInit.loadLanguagesFile(id);
+                                               } catch (NumberFormatException 
e) {
+                                                       
importInit.loadLanguagesFile(lang);
+                                               }
+                                       } else {
+                                               importInit.loadLanguagesFiles();
+                                       }
                                } catch (Exception e) {
                                        handleError("Language reimport failed", 
e);
                                }
@@ -415,6 +429,7 @@ public class Admin {
                                        { //UPLOAD
                                                long sectionSize = 
OmFileHelper.getSize(OmFileHelper.getUploadDir());
                                                report.append("Upload totally 
allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+                                               //Profiles
                                                File profiles = 
OmFileHelper.getUploadProfilesDir();
                                                long invalid = 0;
                                                long deleted = 0;
@@ -448,11 +463,32 @@ public class Admin {
                                                size = 
OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
                                                restSize -= size;
                                                report.append("\t\tbackup: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               size = 
OmFileHelper.getSize(OmFileHelper.getUploadFilesDir());
+                                               //Files
+                                               File files = 
OmFileHelper.getUploadFilesDir();
+                                               size = 
OmFileHelper.getSize(files);
                                                restSize -= size;
+                                               FileExplorerItemDaoImpl fileDao 
= ctx.getBean(FileExplorerItemDaoImpl.class);
+                                               invalid = 0;
+                                               deleted = 0;
+                                               for (File f : 
files.listFiles()) {
+                                                       long fSize = 
OmFileHelper.getSize(f);
+                                                       FileExplorerItem item = 
fileDao.getFileExplorerItemsByHash(f.getName());
+                                                       if (item == null) {
+                                                               invalid += 
fSize;
+                                                       } else if 
("true".equals(item.getDeleted())) {
+                                                               deleted += 
fSize;
+                                                       }
+                                               }
+                                               missing = 0;
+                                               for (FileExplorerItem item : 
fileDao.getFileExplorerItems()) {
+                                                       if 
(!"true".equals(item.getDeleted()) && !new File(files, 
item.getFileHash()).exists()) {
+                                                               missing++;
+                                                       }
+                                               }
                                                report.append("\t\tfiles: 
").append(OmFileHelper.getHumanSize(size)).append("\n");
-                                               //public/private files
-                                               //Object: fileexploreritem 
(filehash == document file/folder)
+                                               report.append("\t\t\tinvalid: 
").append(OmFileHelper.getHumanSize(invalid)).append("\n");
+                                               report.append("\t\t\tdeleted: 
").append(OmFileHelper.getHumanSize(deleted)).append("\n");
+                                               report.append("\t\t\tmissing 
count: ").append(missing).append("\n");
                                                report.append("\t\trest: 
").append(OmFileHelper.getHumanSize(restSize)).append("\n");
                                        }
                                        { //STREAMS


Reply via email to