Revision: 3955
Author: seba.wagner
Date: Tue Jul 5 02:59:20 2011
Log: Some more SOAP Calls to handle Files
http://code.google.com/p/openmeetings/source/detail?r=3955
Added:
/trunk/singlewebapp/src/app/org/openmeetings/app/data/file/FileUtils.java
Modified:
/trunk/singlewebapp/build.xml
/trunk/singlewebapp/src/app/org/openmeetings/app/data/file/dto/FileExplorerObject.java
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java
/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileService.java
=======================================
--- /dev/null
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/file/FileUtils.java
Tue Jul 5 02:59:20 2011
@@ -0,0 +1,169 @@
+package org.openmeetings.app.data.file;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
+import org.openmeetings.app.hibernate.beans.files.FileExplorerItem;
+import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class FileUtils {
+
+ private static final Logger log =
Red5LoggerFactory.getLogger(FileProcessor.class,
ScopeApplicationAdapter.webAppRootKey);
+
+ private static FileUtils instance;
+
+ private FileUtils() {}
+
+ public static synchronized FileUtils getInstance() {
+ if (instance == null) {
+ instance = new FileUtils();
+ }
+ return instance;
+ }
+
+ public long getSizeOfDirectoryAndSubs(FileExplorerItem
fileExplorerItem) {
+ try {
+
+ long fileSize = 0;
+
+ if (fileExplorerItem.getIsImage()) {
+
+ File tFile = new File(ScopeApplicationAdapter.webAppPath
+ + File.separatorChar + "upload" +
File.separatorChar
+ + "files" + File.separatorChar
+ + fileExplorerItem.getFileHash());
+ if (tFile.exists()) {
+ fileSize += tFile.length();
+ }
+
+ File thumbFile = new
File(ScopeApplicationAdapter.webAppPath
+ + File.separatorChar + "upload" +
File.separatorChar
+ + "files" + File.separatorChar + "_thumb_"
+ + fileExplorerItem.getFileHash());
+ if (thumbFile.exists()) {
+ fileSize += thumbFile.length();
+ }
+
+ }
+
+ if (fileExplorerItem.getIsPresentation()) {
+
+ File tFolder = new File(ScopeApplicationAdapter.webAppPath
+ + File.separatorChar + "upload" +
File.separatorChar
+ + "files" + File.separatorChar
+ + fileExplorerItem.getFileHash());
+
+ if (tFolder.exists()) {
+ fileSize += this.getDirSize(tFolder);
+ }
+
+ }
+
+ log.debug("calling [1]
FileExplorerItemDaoImpl.updateFileOrFolder()");
+ FileExplorerItemDaoImpl.getInstance().updateFileOrFolder(
+ fileExplorerItem);
+
+ FileExplorerItem[] childElements = FileExplorerItemDaoImpl
+ .getInstance().getFileExplorerItemsByParent(
+ fileExplorerItem.getFileExplorerItemId());
+
+ for (FileExplorerItem childExplorerItem : childElements) {
+
+ fileSize +=
this.getSizeOfDirectoryAndSubs(childExplorerItem);
+
+ }
+
+ return fileSize;
+
+ } catch (Exception err) {
+ log.error("[getSizeOfDirectoryAndSubs] ", err);
+ }
+ return 0;
+ }
+
+ public long getDirSize(File dir) {
+ long size = 0;
+ if (dir.isFile()) {
+ size = dir.length();
+ } else {
+ File[] subFiles = dir.listFiles();
+
+ for (File file : subFiles) {
+ if (file.isFile()) {
+ size += file.length();
+ } else {
+ size += this.getDirSize(file);
+ }
+
+ }
+ }
+
+ return size;
+ }
+
+ public void setFileToOwnerOrRoomByParent(
+ FileExplorerItem fileExplorerItem, Long users_id, Long
room_id) {
+ try {
+
+ fileExplorerItem.setOwnerId(users_id);
+ fileExplorerItem.setRoom_id(room_id);
+
+ log.debug("calling [2]
FileExplorerItemDaoImpl.updateFileOrFolder()");
+ FileExplorerItemDaoImpl.getInstance().updateFileOrFolder(
+ fileExplorerItem);
+
+ FileExplorerItem[] childElements = FileExplorerItemDaoImpl
+ .getInstance().getFileExplorerItemsByParent(
+ fileExplorerItem.getFileExplorerItemId());
+
+ for (FileExplorerItem childExplorerItem : childElements) {
+
+ this.setFileToOwnerOrRoomByParent(childExplorerItem,
users_id,
+ room_id);
+
+ }
+
+ } catch (Exception err) {
+ log.error("[setFileToOwnerOrRoomByParent] ", err);
+ }
+ }
+
+ public String formatDate(Date date) {
+ SimpleDateFormat formatter;
+ String pattern = "dd/MM/yy H:mm:ss";
+ Locale locale = new Locale("en", "US");
+ formatter = new SimpleDateFormat(pattern, locale);
+ return formatter.format(date);
+ }
+
+ public void copyFile(String sourceFile, String targetFile) {
+ try {
+ File f1 = new File(sourceFile);
+ File f2 = new File(targetFile);
+ InputStream in = new FileInputStream(f1);
+
+ // For Overwrite the file.
+ OutputStream out = new FileOutputStream(f2);
+
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ in.close();
+ out.close();
+ System.out.println("File copied.");
+ } catch (Exception e) {
+ log.error("[copyfile]", e);
+ }
+ }
+}
=======================================
--- /trunk/singlewebapp/build.xml Sun Jul 3 08:28:03 2011
+++ /trunk/singlewebapp/build.xml Tue Jul 5 02:59:20 2011
@@ -457,6 +457,8 @@
<include
name="org/openmeetings/app/data/file/dto/LibraryPresentationFile.class"/>
<include
name="org/openmeetings/app/data/file/dto/LibraryPresentationThumb.class"/>
<include
name="org/openmeetings/axis/services/FileService.class"/>
+ <include
name="org/openmeetings/app/data/file/dto/FileExplorerObject.class" />
+ <include
name="org/openmeetings/app/hibernate/beans/files/FileExplorerItem.class" />
<include
name="org/openmeetings/axis/services/FileImportError.class"/>
</fileset>
</jar>
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/data/file/dto/FileExplorerObject.java
Sun Jul 3 11:03:54 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/data/file/dto/FileExplorerObject.java
Tue Jul 5 02:59:20 2011
@@ -1,7 +1,5 @@
package org.openmeetings.app.data.file.dto;
-import java.util.List;
-
import org.openmeetings.app.hibernate.beans.files.FileExplorerItem;
/**
=======================================
---
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java
Sun Jul 3 11:03:54 2011
+++
/trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java
Tue Jul 5 02:59:20 2011
@@ -25,6 +25,7 @@
import org.openmeetings.app.data.basic.files.FilesObject;
import org.openmeetings.app.data.basic.files.FoldersObject;
import org.openmeetings.app.data.basic.files.LiberaryObject;
+import org.openmeetings.app.data.file.FileUtils;
import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
import org.openmeetings.app.data.file.dto.FileExplorerObject;
import org.openmeetings.app.data.file.dto.LibraryPresentation;
@@ -127,94 +128,17 @@
}
- private long getSizeOfDirectoryAndSubs(FileExplorerItem
fileExplorerItem) {
- try {
-
- long fileSize = 0;
-
- if (fileExplorerItem.getIsImage()) {
-
- File tFile = new File(ScopeApplicationAdapter.webAppPath
- + File.separatorChar + "upload" +
File.separatorChar
- + "files" + File.separatorChar
- + fileExplorerItem.getFileHash());
- if (tFile.exists()) {
- fileSize += tFile.length();
- }
-
- File thumbFile = new
File(ScopeApplicationAdapter.webAppPath
- + File.separatorChar + "upload" +
File.separatorChar
- + "files" + File.separatorChar + "_thumb_"
- + fileExplorerItem.getFileHash());
- if (thumbFile.exists()) {
- fileSize += thumbFile.length();
- }
-
- }
-
- if (fileExplorerItem.getIsPresentation()) {
-
- File tFolder = new File(ScopeApplicationAdapter.webAppPath
- + File.separatorChar + "upload" +
File.separatorChar
- + "files" + File.separatorChar
- + fileExplorerItem.getFileHash());
-
- if (tFolder.exists()) {
- fileSize += this.getDirSize(tFolder);
- }
-
- }
-
- log.debug("calling [1]
FileExplorerItemDaoImpl.updateFileOrFolder()");
- FileExplorerItemDaoImpl.getInstance().updateFileOrFolder(
- fileExplorerItem);
-
- FileExplorerItem[] childElements = FileExplorerItemDaoImpl
- .getInstance().getFileExplorerItemsByParent(
- fileExplorerItem.getFileExplorerItemId());
-
- for (FileExplorerItem childExplorerItem : childElements) {
-
- fileSize +=
this.getSizeOfDirectoryAndSubs(childExplorerItem);
-
- }
-
- return fileSize;
-
- } catch (Exception err) {
- log.error("[getSizeOfDirectoryAndSubs] ", err);
- }
- return 0;
- }
-
- private long getDirSize(File dir) {
- long size = 0;
- if (dir.isFile()) {
- size = dir.length();
- } else {
- File[] subFiles = dir.listFiles();
-
- for (File file : subFiles) {
- if (file.isFile()) {
- size += file.length();
- } else {
- size += this.getDirSize(file);
- }
-
- }
- }
-
- return size;
- }
-
- private String formatDate(Date date) {
- SimpleDateFormat formatter;
- String pattern = "dd/MM/yy H:mm:ss";
- Locale locale = new Locale("en", "US");
- formatter = new SimpleDateFormat(pattern, locale);
- return formatter.format(date);
- }
-
+
+
+ /**
+ * @deprecated
+ * @param SID
+ * @param fileName
+ * @param moduleName
+ * @param parentFolder
+ * @param room_id
+ * @return
+ */
public Boolean deleteFile(String SID, String fileName, String
moduleName,
String parentFolder, Long room_id) {
try {
@@ -268,6 +192,11 @@
return false;
}
+ /**
+ * @deprecated
+ * @param t
+ * @return
+ */
public String saveAsImage(Object t) {
try {
log.error("saveAsImage" + t);
@@ -477,7 +406,7 @@
for (FileExplorerItem homeChildExplorerItem : fList) {
log.debug("FileExplorerItem fList "
+ homeChildExplorerItem.getFileName());
- homeFileSize += this
+ homeFileSize += FileUtils.getInstance()
.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
}
@@ -493,7 +422,7 @@
for (FileExplorerItem homeChildExplorerItem : rList) {
log.debug("FileExplorerItem rList "
+ homeChildExplorerItem.getFileName());
- roomFileSize += this
+ roomFileSize += FileUtils.getInstance()
.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
}
@@ -646,12 +575,12 @@
if (moveToHome) {
// set this file and all subfiles and folders the
ownerId
- this.setFileToOwnerOrRoomByParent(fileExplorerItem,
+
FileUtils.getInstance().setFileToOwnerOrRoomByParent(fileExplorerItem,
users_id, null);
} else {
// set this file and all subfiles and folders the
room_id
- this.setFileToOwnerOrRoomByParent(fileExplorerItem,
null,
+
FileUtils.getInstance().setFileToOwnerOrRoomByParent(fileExplorerItem, null,
room_id);
}
@@ -663,32 +592,7 @@
return null;
}
- private void setFileToOwnerOrRoomByParent(
- FileExplorerItem fileExplorerItem, Long users_id, Long
room_id) {
- try {
-
- fileExplorerItem.setOwnerId(users_id);
- fileExplorerItem.setRoom_id(room_id);
-
- log.debug("calling [2]
FileExplorerItemDaoImpl.updateFileOrFolder()");
- FileExplorerItemDaoImpl.getInstance().updateFileOrFolder(
- fileExplorerItem);
-
- FileExplorerItem[] childElements = FileExplorerItemDaoImpl
- .getInstance().getFileExplorerItemsByParent(
- fileExplorerItem.getFileExplorerItemId());
-
- for (FileExplorerItem childExplorerItem : childElements) {
-
- this.setFileToOwnerOrRoomByParent(childExplorerItem,
users_id,
- room_id);
-
- }
-
- } catch (Exception err) {
- log.error("[setFileToOwnerOrRoomByParent] ", err);
- }
- }
+
public Long copyFileToCurrentRoom(String SID, Long flvFileExplorerId) {
try {
@@ -737,7 +641,7 @@
if (outputFullFlvFile.exists()) {
if (!targetFullFlvFile.exists()) {
- this.copyFile(outputFullFlv, targetFullFlv);
+ FileUtils.getInstance().copyFile(outputFullFlv,
targetFullFlv);
}
}
@@ -753,27 +657,7 @@
return -1L;
}
- private void copyFile(String sourceFile, String targetFile) {
- try {
- File f1 = new File(sourceFile);
- File f2 = new File(targetFile);
- InputStream in = new FileInputStream(f1);
-
- // For Overwrite the file.
- OutputStream out = new FileOutputStream(f2);
-
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- in.close();
- out.close();
- System.out.println("File copied.");
- } catch (Exception e) {
- log.error("[copyfile]", e);
- }
- }
+
public void resultReceived(IPendingServiceCall arg0) {
// TODO Auto-generated method stub
=======================================
---
/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileService.java
Sun Jul 3 11:03:54 2011
+++
/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileService.java
Tue Jul 5 02:59:20 2011
@@ -23,11 +23,14 @@
import org.openmeetings.app.data.basic.Sessionmanagement;
import org.openmeetings.app.data.basic.files.*;
import org.openmeetings.app.data.file.FileProcessor;
+import org.openmeetings.app.data.file.FileUtils;
import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
+import org.openmeetings.app.data.file.dto.FileExplorerObject;
import org.openmeetings.app.data.file.dto.LibraryPresentation;
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.data.user.dao.UsersDaoImpl;
import org.openmeetings.app.documents.LoadLibraryPresentation;
+import org.openmeetings.app.hibernate.beans.files.FileExplorerItem;
import org.openmeetings.app.hibernate.beans.user.Users;
import org.openmeetings.app.remote.ConferenceLibrary;
import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
@@ -464,6 +467,168 @@
}
}
+
+ public FileExplorerObject getFileExplorerByRoom(String SID, Long room_id,
Long owner_id) throws AxisFault {
+
+ try {
+
+ Long webservice_users_id =
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level = Usermanagement.getInstance().getUserLevelByID(
+ webservice_users_id);
+
+ if
(AuthLevelmanagement.getInstance().checkWebServiceLevel(user_level)) {
+
+ log.debug("room_id " + room_id);
+
+ FileExplorerObject fileExplorerObject = new
FileExplorerObject();
+
+ // Home File List
+ FileExplorerItem[] fList = FileExplorerItemDaoImpl
+ .getInstance()
+ .getFileExplorerItemsByOwner(owner_id, 0L);
+
+ long homeFileSize = 0;
+
+ for (FileExplorerItem homeChildExplorerItem : fList) {
+ log.debug("FileExplorerItem fList "
+ + homeChildExplorerItem.getFileName());
+ homeFileSize += FileUtils.getInstance()
+ .getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+ }
+
+ fileExplorerObject.setUserHome(fList);
+ fileExplorerObject.setUserHomeSize(homeFileSize);
+
+ // Public File List
+ FileExplorerItem[] rList = FileExplorerItemDaoImpl
+ .getInstance().getFileExplorerItemsByRoom(room_id,
0L);
+
+ long roomFileSize = 0;
+
+ for (FileExplorerItem homeChildExplorerItem : rList) {
+ log.debug("FileExplorerItem rList "
+ + homeChildExplorerItem.getFileName());
+ roomFileSize += FileUtils.getInstance()
+ .getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+ }
+
+ fileExplorerObject.setRoomHome(rList);
+ fileExplorerObject.setRoomHomeSize(roomFileSize);
+
+ return fileExplorerObject;
+
+ } else {
+
+ throw new Exception("not Authenticated");
+
+ }
+
+ } catch (Exception e) {
+ log.error("[getListOfFilesByAbsolutePath]", e);
+ return null;
+ }
+ }
+
+ public FileExplorerItem[] getFileExplorerByParent(String SID,
+ Long parentFileExplorerItemId, Long room_id, Boolean isOwner,
Long owner_id) throws AxisFault {
+
+ try {
+
+ Long webservice_users_id =
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level = Usermanagement.getInstance().getUserLevelByID(
+ webservice_users_id);
+
+ if
(AuthLevelmanagement.getInstance().checkWebServiceLevel(user_level)) {
+
+ log.debug("parentFileExplorerItemId "
+ + parentFileExplorerItemId);
+
+ if (parentFileExplorerItemId == 0) {
+ if (isOwner) {
+ return FileExplorerItemDaoImpl.getInstance()
+ .getFileExplorerItemsByOwner(owner_id,
+ parentFileExplorerItemId);
+ } else {
+ return FileExplorerItemDaoImpl.getInstance()
+ .getFileExplorerItemsByRoom(room_id,
+ parentFileExplorerItemId);
+ }
+ } else {
+ return FileExplorerItemDaoImpl.getInstance()
+ .getFileExplorerItemsByParent(
+ parentFileExplorerItemId);
+ }
+
+ }
+ } catch (Exception err) {
+ log.error("[getFileExplorerByParent] ", err);
+ }
+ return null;
+ }
+
+ public Long updateFileOrFolderName(String SID, Long fileExplorerItemId,
+ String fileName) throws AxisFault {
+
+ try {
+
+ Long webservice_users_id =
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level = Usermanagement.getInstance().getUserLevelByID(
+ webservice_users_id);
+
+ if
(AuthLevelmanagement.getInstance().checkWebServiceLevel(user_level)) {
+
+ log.debug("deleteFileOrFolder " + fileExplorerItemId);
+
+
FileExplorerItemDaoImpl.getInstance().updateFileOrFolderName(
+ fileExplorerItemId, fileName);
+
+ }
+ } catch (Exception err) {
+ log.error("[updateFileOrFolderName] ", err);
+ }
+ return null;
+ }
+
+ public Long moveFile(String SID, Long fileExplorerItemId,
+ Long newParentFileExplorerItemId, Long room_id, Boolean
isOwner,
+ Boolean moveToHome, Long owner_id) throws AxisFault {
+
+ try {
+
+ Long webservice_users_id =
Sessionmanagement.getInstance().checkSession(SID);
+ Long user_level = Usermanagement.getInstance().getUserLevelByID(
+ webservice_users_id);
+
+ if
(AuthLevelmanagement.getInstance().checkWebServiceLevel(user_level)) {
+
+ log.debug("deleteFileOrFolder " + fileExplorerItemId);
+
+ FileExplorerItemDaoImpl.getInstance().moveFile(
+ fileExplorerItemId, newParentFileExplorerItemId,
+ room_id, isOwner, owner_id);
+
+ FileExplorerItem fileExplorerItem = FileExplorerItemDaoImpl
+ .getInstance().getFileExplorerItemsById(
+ fileExplorerItemId);
+
+ if (moveToHome) {
+ // set this file and all subfiles and folders the
ownerId
+
FileUtils.getInstance().setFileToOwnerOrRoomByParent(fileExplorerItem,
+ owner_id, null);
+
+ } else {
+ // set this file and all subfiles and folders the
room_id
+
FileUtils.getInstance().setFileToOwnerOrRoomByParent(fileExplorerItem, null,
+ room_id);
+
+ }
+
+ }
+ } catch (Exception err) {
+ log.error("[moveFile] ", err);
+ }
+ return null;
+ }
public TestObject getTestObject(){
TestObject textO = new TestObject();
--
You received this message because you are subscribed to the Google Groups
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/openmeetings-dev?hl=en.