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