Index: lams_common/src/java/org/lamsfoundation/lams/util/wddx/FlashMessage.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/wddx/FlashMessage.java,v
diff -u -r1.3 -r1.4
--- lams_common/src/java/org/lamsfoundation/lams/util/wddx/FlashMessage.java 14 Apr 2005 06:18:23 -0000 1.3
+++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/FlashMessage.java 5 May 2005 03:11:13 -0000 1.4
@@ -139,4 +139,9 @@
"No such Activity with an activity_id of " + activityID +" exists",
FlashMessage.ERROR);
}
+ public static FlashMessage getNoSuchWorkspaceFolderContentExsists(String methodName, Long folderContentID){
+ return new FlashMessage(methodName,
+ "No such WorkspaceFolderContent with a folder_content_id of " + folderContentID +" exists",
+ FlashMessage.ERROR);
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/WorkspaceFolderContent.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/WorkspaceFolderContent.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/WorkspaceFolderContent.java 5 May 2005 03:13:01 -0000 1.1
@@ -0,0 +1,244 @@
+/*
+ * Created on Apr 20, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.lamsfoundation.lams.workspace;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.SortedSet;
+
+import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
+import org.lamsfoundation.lams.workspace.dto.FolderContentDTO;
+
+
+/**
+ * @author Manpreet Minhas
+ */
+public class WorkspaceFolderContent implements Serializable{
+
+ public static final Integer CONTENT_TYPE_FILE = new Integer(1);
+ public static final Integer CONTENT_TYPE_PACKAGE = new Integer(2);
+
+ /** identifier field */
+ private Long folderContentID;
+
+ /**
+ * non-nullable persistent field
+ * representing the type of content.
+ * It can be either CONTENT_TYPE_FILE or
+ * CONTENT_TYPE_PACKAGE
+ */
+ private Integer contentTypeID;
+
+ /** non-nullable persistent field
+ * representing the name of the File
+ **/
+ private String name;
+
+ /** non-nullable persistent field
+ * representing the description of the File
+ **/
+ private String description;
+
+ /**
+ * non-nullable persistent field
+ * representing the date the content
+ * was created.
+ **/
+ private Date createDate;
+
+ /**
+ * non-nullable persistent field
+ * representing the date the content
+ * was last modified.
+ **/
+ private Date lastModified;
+
+ /**
+ * nullable persistent field. Represents the two
+ * part key - UUID and version, returned by the
+ * ContentRepository once the content has been successfully updated.
+ **/
+ private Long uuid;
+
+ /**
+ * nullable persistent field. Represents the two
+ * part key - UUID and version, returned by the
+ * ContentRepository once the content has been successfully updated.
+ **/
+ private Long versionID;
+
+ /**
+ * non-nullable persistent field
+ * indicating the type of the file
+ **/
+ private String mimeType;
+
+ /** non-nullable persistent field indicating the
+ * WorkspaceFolder
that contains
+ * this content
+ **/
+ private WorkspaceFolder workspaceFolder;
+
+ /** Default Constructor*/
+ public WorkspaceFolderContent(){
+
+ }
+ /** Full Constructor*/
+ public WorkspaceFolderContent(Long folderContentID,Integer contentTypeID,
+ String name, String description,
+ Date createDate,Date lastModified,
+ Long uuid, Long versionID,
+ String mimeType,WorkspaceFolder workspaceFolder) {
+ super();
+ this.folderContentID = folderContentID;
+ this.contentTypeID = contentTypeID;
+ this.name = name;
+ this.description = description;
+ this.createDate = createDate;
+ this.lastModified = lastModified;
+ this.uuid = uuid;
+ this.versionID = versionID;
+ this.mimeType = mimeType;
+ this.workspaceFolder = workspaceFolder;
+ }
+ /** Minimal Constructor */
+ public WorkspaceFolderContent(Integer contentTypeID, String name,
+ String description, Date createDate, Date lastModified,
+ String mimeType, WorkspaceFolder workspaceFolder) {
+ super();
+ this.contentTypeID = contentTypeID;
+ this.name = name;
+ this.description = description;
+ this.createDate = createDate;
+ this.lastModified = lastModified;
+ this.mimeType = mimeType;
+ this.workspaceFolder = workspaceFolder;
+ }
+ /**
+ * @return Returns the contentTypeID.
+ */
+ public Integer getContentTypeID() {
+ return contentTypeID;
+ }
+ /**
+ * @param contentTypeID The contentTypeID to set.
+ */
+ public void setContentTypeID(Integer contentTypeID) {
+ this.contentTypeID = contentTypeID;
+ }
+ /**
+ * @return Returns the createDate.
+ */
+ public Date getCreateDate() {
+ return createDate;
+ }
+ /**
+ * @param createDate The createDate to set.
+ */
+ public void setCreateDate(Date createDate) {
+ this.createDate = createDate;
+ }
+ /**
+ * @return Returns the description.
+ */
+ public String getDescription() {
+ return description;
+ }
+ /**
+ * @param description The description to set.
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ /**
+ * @return Returns the folderContentID.
+ */
+ public Long getFolderContentID() {
+ return folderContentID;
+ }
+ /**
+ * @param folderContentID The folderContentID to set.
+ */
+ public void setFolderContentID(Long folderContentID) {
+ this.folderContentID = folderContentID;
+ }
+ /**
+ * @return Returns the lastModified.
+ */
+ public Date getLastModified() {
+ return lastModified;
+ }
+ /**
+ * @param lastModified The lastModified to set.
+ */
+ public void setLastModified(Date lastModified) {
+ this.lastModified = lastModified;
+ }
+ /**
+ * @return Returns the mimeType.
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+ /**
+ * @param mimeType The mimeType to set.
+ */
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+ /**
+ * @return Returns the name.
+ */
+ public String getName() {
+ return name;
+ }
+ /**
+ * @param name The name to set.
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+ /**
+ * @return Returns the uuid.
+ */
+ public Long getUuid() {
+ return uuid;
+ }
+ /**
+ * @param uuid The uuid to set.
+ */
+ public void setUuid(Long uuid) {
+ this.uuid = uuid;
+ }
+ /**
+ * @return Returns the versionID.
+ */
+ public Long getVersionID() {
+ return versionID;
+ }
+ /**
+ * @param versionID The versionID to set.
+ */
+ public void setVersionID(Long versionID) {
+ this.versionID = versionID;
+ }
+ /**
+ * @return Returns the workspaceFolder.
+ */
+ public WorkspaceFolder getWorkspaceFolder() {
+ return workspaceFolder;
+ }
+ /**
+ * @param workspaceFolder The workspaceFolder to set.
+ */
+ public void setWorkspaceFolder(WorkspaceFolder workspaceFolder) {
+ this.workspaceFolder = workspaceFolder;
+ }
+ public FolderContentDTO getFolderContentDTO(SortedSet set, Integer permissions){
+ return new FolderContentDTO(permissions,this,set);
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dao/IWorkspaceFolderContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/dao/IWorkspaceFolderContentDAO.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/dao/IWorkspaceFolderContentDAO.java 5 May 2005 03:15:06 -0000 1.1
@@ -0,0 +1,49 @@
+/*
+ * Created on Apr 20, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.lamsfoundation.lams.workspace.dao;
+
+import java.util.List;
+
+import org.lamsfoundation.lams.learningdesign.dao.IBaseDAO;
+import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
+
+/**
+ * @author Manprete Minhas
+ */
+public interface IWorkspaceFolderContentDAO extends IBaseDAO {
+
+ /**
+ * This method returns the WorkspaceFolderContent
+ * corresponding to the given folderContentID
+ *
+ * @param folderContentID The folder_content_id
of the required object
+ * @return WorkspaceFolderContent The populated WorkspaceFolderContent
object
+ */
+ public WorkspaceFolderContent getWorkspaceFolderContentByID(Long folderContentID);
+
+ /**
+ * This method returns the content for the given WorkspaceFolder
+ * with given workspaceFolderID
.
+ *
+ * @param workspaceFolderID The WorkspaceFolder
whose content is requested
+ * @return List The requested content
+ */
+ public List getContentByWorkspaceFolder(Long workspaceFolderID);
+
+ /**
+ * This method returns the content of the WorkspaceFolder
+ * with given workspaceFolderID
, which is of requested mimeType
+ *
+ * @param workspaceFolderID The WorkspaceFolder
whose content is requested
+ * @param mimeType The mimeType
of the requested content
+ * @return List The requested content
+ */
+ public List getContentByTypeFromWorkspaceFolder(Long workspaceFolderID, String mimeType);
+
+ public int deleteContentWithVersion(Long uuid, Long versionID, Long folderContentID);
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dao/hibernate/WorkspaceFolderContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/dao/hibernate/WorkspaceFolderContentDAO.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/dao/hibernate/WorkspaceFolderContentDAO.java 5 May 2005 03:15:06 -0000 1.1
@@ -0,0 +1,75 @@
+/*
+ * Created on Apr 20, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.lamsfoundation.lams.workspace.dao.hibernate;
+
+import java.util.List;
+
+import net.sf.hibernate.Hibernate;
+import net.sf.hibernate.type.Type;
+
+import org.lamsfoundation.lams.learningdesign.dao.hibernate.BaseDAO;
+import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
+import org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO;
+
+/**
+ * @author Minhas
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class WorkspaceFolderContentDAO extends BaseDAO implements IWorkspaceFolderContentDAO {
+
+ private static final String TABLENAME ="lams_workspace_folder_content";
+
+ private static final String FIND_BY_FOLDER ="from " + TABLENAME +" in class " +
+ WorkspaceFolderContent.class.getName() +
+ " where workspace_folder_id=?";
+
+ private static final String FIND_BY_TYPE_IN_FOLDER = "from " + TABLENAME +" in class " +
+ WorkspaceFolderContent.class.getName() +
+ " where workspace_folder_id=? AND mime_type=?";
+
+ private static final String DELETE_BY_VERSION = "from " + TABLENAME +" in class " +
+ WorkspaceFolderContent.class.getName() +
+ " where folder_content_id=? AND uuid=? AND version_id=?";
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO#getWorkspaceFolderContentByID(java.lang.Long)
+ */
+ public WorkspaceFolderContent getWorkspaceFolderContentByID(Long folderContentID) {
+ return (WorkspaceFolderContent) super.find(WorkspaceFolderContent.class, folderContentID);
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO#getContentByWorkspaceFolder(java.lang.Long)
+ */
+ public List getContentByWorkspaceFolder(Long workspaceFolderID) {
+ return this.getHibernateTemplate().find(FIND_BY_FOLDER,workspaceFolderID);
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO#getContentByTypeFromWorkspaceFolder(java.lang.Long, java.lang.String)
+ */
+ public List getContentByTypeFromWorkspaceFolder(Long workspaceFolderID,String mimeType) {
+ List list = this.getHibernateTemplate().find(FIND_BY_TYPE_IN_FOLDER,
+ new Object[]{workspaceFolderID,mimeType},
+ new Type[]{Hibernate.LONG,Hibernate.STRING});
+ if(list==null||list.size()==0)
+ return null;
+ else
+ return list;
+ }
+ public int deleteContentWithVersion(Long uuid, Long versionID, Long folderContentID){
+ return this.getHibernateTemplate().delete(DELETE_BY_VERSION,
+ new Object[]{folderContentID,uuid,versionID},
+ new Type[]{Hibernate.LONG,Hibernate.LONG,Hibernate.LONG});
+
+ }
+}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java,v
diff -u -r1.1 -r1.2
--- lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 13 Apr 2005 00:38:53 -0000 1.1
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 5 May 2005 03:09:52 -0000 1.2
@@ -7,30 +7,32 @@
package org.lamsfoundation.lams.workspace.dto;
import java.util.Date;
+import java.util.SortedSet;
+import java.util.Vector;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
import org.lamsfoundation.lams.util.wddx.WDDXTAGS;
+import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
/**
- * @author Minhas
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
+ * @author Manpreet Minhas
*/
public class FolderContentDTO {
- public static final String LESSON ="lesson";
- public static final String DESIGN ="learningDesign";
- public static final String FOLDER ="folder";
+ public static final String LESSON ="Lesson";
+ public static final String DESIGN ="LearningDesign";
+ public static final String FOLDER ="Folder";
+ public static final String FILE ="File";
- private String name;
- private String description;
- private Date creationDateTime;
- private Date lastModifiedDateTime;
- private String resourceType;
- private Long resourceID;
- private Integer permissionCode;
+ public String name;
+ public String description;
+ public Date creationDateTime;
+ public Date lastModifiedDateTime;
+ public String resourceType;
+ public Long resourceID;
+ public Integer permissionCode;
+ public Vector versionDetails;
public FolderContentDTO(){
@@ -47,6 +49,7 @@
this.resourceType = resourceType;
this.resourceID = resourceID;
this.permissionCode = permissionCode;
+ this.versionDetails = new Vector();
}
public FolderContentDTO(LearningDesign design, Integer permissionCode){
this.name = design.getTitle();
@@ -56,6 +59,7 @@
this.resourceType = DESIGN;
this.resourceID = design.getLearningDesignId();
this.permissionCode = permissionCode;
+ this.versionDetails = new Vector();
}
public FolderContentDTO(WorkspaceFolder workspaceFolder, Integer permissionCode){
this.name = workspaceFolder.getName();
@@ -65,7 +69,22 @@
this.resourceType = FOLDER;
this.resourceID = new Long(workspaceFolder.getWorkspaceFolderId().intValue());
this.permissionCode = permissionCode;
- }
+ this.versionDetails = new Vector();
+ }
+ public FolderContentDTO(Integer permissionCode, WorkspaceFolderContent workspaceFolderContent,SortedSet details){
+ this.name =workspaceFolderContent.getName();
+ this.description = workspaceFolderContent.getDescription();
+ this.creationDateTime = workspaceFolderContent.getCreateDate();
+ this.lastModifiedDateTime = workspaceFolderContent.getLastModified();
+ this.resourceID = workspaceFolderContent.getFolderContentID();
+ this.permissionCode = permissionCode;
+ if(workspaceFolderContent.getContentTypeID().equals(WorkspaceFolderContent.CONTENT_TYPE_FILE))
+ this.resourceType = FILE;
+ else
+ this.resourceType = FOLDER;
+ this.versionDetails = new Vector();
+ versionDetails.addAll(details);
+ }
/**
* @return Returns the creationDateTime.
*/
@@ -108,4 +127,10 @@
public String getResourceType() {
return resourceType!=null?resourceType:WDDXTAGS.STRING_NULL_VALUE;
}
+ /**
+ * @return Returns the versionDetails.
+ */
+ public Vector getVersionDetails() {
+ return versionDetails;
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/service/Attic/IWorkspaceManagementService.java,v
diff -u -r1.3 -r1.4
--- lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java 19 Apr 2005 06:14:18 -0000 1.3
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/service/IWorkspaceManagementService.java 5 May 2005 03:09:57 -0000 1.4
@@ -1,6 +1,7 @@
package org.lamsfoundation.lams.workspace.service;
import java.io.IOException;
+import java.util.Date;
import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
import org.lamsfoundation.lams.usermanagement.exception.UserException;
@@ -11,6 +12,10 @@
*/
public interface IWorkspaceManagementService {
+ public static final String REPOSITORY_USERNAME ="workspaceManager";
+ public static final String REPOSITORY_PASSWORD ="flashClient";
+ public static final String REPOSITORY_WORKSPACE="FlashClientsWorkspace";
+
/**
* This method returns the contents of the folder with given
* workspaceFolderID
depending upon the mode
.
@@ -21,7 +26,7 @@
*
contentTypeID
.
+ * A value of 1 indicates a FILE and a value of 2 indicates PACKAGE.
+ *
+ * After updating the database with the corresponding entry of the new content
+ * this method then updates the Repository as well.
+ *
+ * @param contentTypeID The type of content being added.(FILE/PACKAGE)
+ * @param name The name of the file
+ * @param description The description of the file
+ * @param createDateTime The date and time this content was created
+ * @param lastModifiedDate The date and time this content was last modified
+ * @param workspaceFolderID The container(workspaceFolder
)which
+ * holds this content
+ * @param mimeType The MIME type of the file
+ * @param path The physical location of the file from where it has to be read
+ * @return String The acknowledgement/error message in WDDX format for the
+ * FLASH client.
+ * @throws Exception
+ */
+ public String createWorkspaceFolderContent(Integer contentTypeID,String name,
+ String description,Date createDateTime,
+ Date lastModifiedDate,Integer workspaceFolderID,
+ String mimeType, String path)throws Exception;
+
+ /**
+ * This method updates an existing file(workspaceFolderContet
)
+ * with new contents in the Reositiory.
+ *
+ * @param folderContentID The folder_content_id
of the file
+ * to be updated
+ * @param path The physical location of the file from where it has to be read
+ * @return String The acknowledgement/error message in WDDX format for FLASH
+ * @throws Exception
+ */
+ public String updateWorkspaceFolderContent(Long folderContentID,String path)throws Exception;
+
+ /**
+ * This method deletes all versions of the given content (FILE/PACKAGE)
+ * fom the repository.
+ *
+ * @param folderContentID The content to be deleted
+ * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @throws Exception
+ */
+ public String deleteWorkspaceFolderContent(Long folderContentID)throws Exception;
}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/service/Attic/WorkspaceManagementService.java,v
diff -u -r1.3 -r1.4
--- lams_common/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 19 Apr 2005 06:14:18 -0000 1.3
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 5 May 2005 03:09:57 -0000 1.4
@@ -6,14 +6,28 @@
*/
package org.lamsfoundation.lams.workspace.service;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.Date;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
+import java.util.SortedSet;
import java.util.Vector;
+import org.lamsfoundation.lams.contentrepository.LoginException;
import org.lamsfoundation.lams.authoring.service.IAuthoringService;
+import org.lamsfoundation.lams.contentrepository.AccessDeniedException;
+import org.lamsfoundation.lams.contentrepository.FileException;
+import org.lamsfoundation.lams.contentrepository.ICredentials;
+import org.lamsfoundation.lams.contentrepository.ITicket;
+import org.lamsfoundation.lams.contentrepository.InvalidParameterException;
+import org.lamsfoundation.lams.contentrepository.NodeKey;
+import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException;
+import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
+import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy;
+import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO;
import org.lamsfoundation.lams.usermanagement.User;
@@ -26,6 +40,8 @@
import org.lamsfoundation.lams.usermanagement.exception.UserException;
import org.lamsfoundation.lams.util.wddx.FlashMessage;
import org.lamsfoundation.lams.util.wddx.WDDXTAGS;
+import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
+import org.lamsfoundation.lams.workspace.dao.IWorkspaceFolderContentDAO;
import org.lamsfoundation.lams.workspace.dto.FolderContentDTO;
import org.lamsfoundation.lams.workspace.exception.WorkspaceFolderException;
@@ -48,10 +64,20 @@
protected IWorkspaceDAO workspaceDAO;
protected IOrganisationDAO organisationDAO;
- protected IAuthoringService authoringService;
+ protected IWorkspaceFolderContentDAO workspaceFolderContentDAO;
+ protected IAuthoringService authoringService;
+ protected IRepositoryService repositoryService;
+
/**
+ * @param workspaceFolderContentDAO The workspaceFolderContentDAO to set.
+ */
+ public void setWorkspaceFolderContentDAO(
+ IWorkspaceFolderContentDAO workspaceFolderContentDAO) {
+ this.workspaceFolderContentDAO = workspaceFolderContentDAO;
+ }
+ /**
* @param authoringService The authoringService to set.
*/
public void setAuthoringService(IAuthoringService authoringService) {
@@ -145,7 +171,7 @@
* (non-Javadoc)
* @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#getFolderContents(java.lang.Integer, java.lang.Integer, java.lang.Integer)
*/
- public String getFolderContents(Integer userID, Integer workspaceFolderID, Integer mode)throws IOException{
+ public String getFolderContents(Integer userID, Integer workspaceFolderID, Integer mode)throws Exception{
User user = userDAO.getUserById(userID);
WorkspaceFolder workspaceFolder = null;
Integer permissions = null;
@@ -157,7 +183,10 @@
Vector contentDTO = new Vector();
getFolderContent(workspaceFolder,permissions,mode,contentDTO);
if(workspaceFolder.hasSubFolders())
- getSubFolderDetails(workspaceFolder,permissions,contentDTO);
+ getSubFolderDetails(workspaceFolder,permissions,contentDTO);
+ Vector repositoryContent = getContentsFromRepository(new Long(workspaceFolderID.intValue()),permissions);
+ if(repositoryContent!=null)
+ contentDTO.addAll(repositoryContent);
flashMessage = new FlashMessage("getFolderContents",createFolderContentPacket(workspaceFolder,contentDTO));
}
else
@@ -512,4 +541,222 @@
}
return flashMessage.serializeMessage();
}
+ /**
+ * This method verifies the credentials of the Workspace Manager
+ * and gives him the Ticket to login and access the Content Repository.
+ * A valid ticket is needed in order to access the content from the repository.
+ * This method would be called evertime the user(Workspace Manager) receives
+ * a request to get the contents of the Folder or to add/update a file into
+ * the WorkspaceFodler
(Repository).
+ *
+ * @return ITicket The ticket for repostory access
+ */
+ private ITicket getRepositoryLoginTicket(){
+ repositoryService = RepositoryProxy.getLocalRepositoryService();
+ ICredentials credentials = new SimpleCredentials(IWorkspaceManagementService.REPOSITORY_USERNAME,
+ IWorkspaceManagementService.REPOSITORY_PASSWORD.toCharArray());
+ try{
+ ITicket ticket = repositoryService.login(credentials,IWorkspaceManagementService.REPOSITORY_WORKSPACE);
+ return ticket;
+ }catch(AccessDeniedException ae){
+ ae.printStackTrace();
+ return null;
+ }catch(WorkspaceNotFoundException we){
+ we.printStackTrace();
+ return null;
+ }catch (LoginException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#createWorkspaceFolderContent(java.lang.Integer, java.lang.String, java.lang.String, java.util.Date, java.util.Date, java.lang.Integer, java.lang.String, java.lang.String)
+ */
+ public String createWorkspaceFolderContent(Integer contentTypeID,String name,
+ String description,Date createDateTime,
+ Date lastModifiedDate,Integer workspaceFolderID,
+ String mimeType, String path)throws Exception{
+ WorkspaceFolder workspaceFolder = workspaceFolderDAO.getWorkspaceFolderByID(workspaceFolderID);
+ if(workspaceFolder!=null){
+ WorkspaceFolderContent workspaceFolderContent = new WorkspaceFolderContent(contentTypeID,name,description,createDateTime,lastModifiedDate,mimeType,workspaceFolder);
+ workspaceFolderContentDAO.insert(workspaceFolderContent);
+ try{
+ InputStream stream = new FileInputStream(path);
+ NodeKey nodeKey = addFileToRepository(stream,name,mimeType);
+ workspaceFolderContent.setUuid(nodeKey.getUuid());
+ workspaceFolderContent.setVersionID(nodeKey.getUuid());
+ workspaceFolderContentDAO.update(workspaceFolderContent);
+ flashMessage = new FlashMessage("createWorkspaceFolderContent",nodeKey);
+ }catch(AccessDeniedException ae){
+ flashMessage = new FlashMessage("createWorkspaceFolderContent",
+ "Exception occured while creating workspaceFolderContent: "+ ae.getMessage(),
+ FlashMessage.CRITICAL_ERROR);
+ }catch(FileException fe){
+ flashMessage = new FlashMessage("createWorkspaceFolderContent",
+ "Exception occured while creating workspaceFolderContent: "+ fe.getMessage(),
+ FlashMessage.CRITICAL_ERROR);
+
+ }catch(InvalidParameterException ip){
+ flashMessage = new FlashMessage("createWorkspaceFolderContent",
+ "Exception occured while creating workspaceFolderContent: "+ ip.getMessage(),
+ FlashMessage.CRITICAL_ERROR);
+ }
+ }else
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderExsists("createWorkspaceFolderContent",workspaceFolderID);
+ return flashMessage.serializeMessage();
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#updateWorkspaceFolderContent(java.lang.Long, java.io.InputStream)
+ */
+ public String updateWorkspaceFolderContent(Long folderContentID,String path)throws Exception{
+ InputStream stream = new FileInputStream(path);
+ WorkspaceFolderContent workspaceFolderContent = workspaceFolderContentDAO.getWorkspaceFolderContentByID(folderContentID);
+ if(workspaceFolderContent!=null){
+ NodeKey nodeKey = updateFileInRepository(workspaceFolderContent,stream);
+ flashMessage = new FlashMessage("updateWorkspaceFolderContent",nodeKey);
+ }else
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderContentExsists("updateWorkspaceFolderContent",folderContentID);
+ return flashMessage.serializeMessage();
+ }
+
+ /**
+ * This method is called everytime a new content has to be
+ * added to the repository. In order to do so first of all
+ * a valid ticket is obtained from the Repository hence
+ * authenticating the user(WorkspaceManager) and then
+ * the corresponding file is added to the repository.
+ *
+ * @param stream The InputStream
representing the data to be added
+ * @param fileName The name of the file being added
+ * @param mimeType The MIME type of the file (eg. TXT, DOC, GIF etc)
+ * @return NodeKey Represents the two part key - UUID and Version.
+ * @throws AccessDeniedException
+ * @throws FileException
+ * @throws InvalidParameterException
+ */
+ private NodeKey addFileToRepository(InputStream stream, String fileName, String mimeType)throws AccessDeniedException,
+ FileException,InvalidParameterException{
+ ITicket ticket = getRepositoryLoginTicket();
+ NodeKey nodeKey = repositoryService.addFileItem(ticket,stream,fileName,mimeType,null);
+ return nodeKey;
+ }
+ /**
+ * This method is called everytime some content has to be
+ * updated into the repository. In order to do so first of all
+ * a valid ticket is obtained from the Repository hence
+ * authenticating the user(WorkspaceManager) and then
+ * the corresponding file is updated to the repository.
+ *
+ * @param workspaceFolderContent The content to be updated
+ * @param stream stream The InputStream
representing the data to be updated
+ * @return NodeKey Represents the two part key - UUID and Version.
+ * @throws Exception
+ */
+ private NodeKey updateFileInRepository(WorkspaceFolderContent workspaceFolderContent,
+ InputStream stream)throws Exception{
+ ITicket ticket = getRepositoryLoginTicket();
+ NodeKey nodeKey = repositoryService.updateFileItem(ticket,workspaceFolderContent.getUuid(),
+ workspaceFolderContent.getName(),
+ stream,workspaceFolderContent.getMimeType(),null);
+ workspaceFolderContent.setUuid(nodeKey.getUuid());
+ workspaceFolderContent.setVersionID(nodeKey.getVersion());
+ workspaceFolderContentDAO.update(workspaceFolderContent);
+ return nodeKey;
+ }
+
+ /**
+ * This method is called when the user knows which version of the
+ * worksapceFolderContent
he wants to delete.
+ *
+ * The database (lams_workspace_folder_content
)
+ * stores information only about the latest version of the file.
+ * So if a user deletes all the versions from the repository
+ * one by one. there is no way the database would get to know
+ * about the change.So every time a request is received to
+ * delete a content from the repository, the database is checked
+ * against the uuid
and version_id
+ * for the given content.If found that record is also deleted.
+ *
+ * @param uuid The uuid of the workspaceFolderContent
+ * @param versionID The versionID of the workspaceFolderContent
+ * @param folderContentID The folder_content_id
of the content to be deleted
+ * @return String Acknowledgement/error message in WDDX format for FLASH
+ * @throws Exception
+ */
+
+ public String deleteContentWithVersion(Long uuid, Long versionID,Long folderContentID)throws Exception{
+ ITicket ticket = getRepositoryLoginTicket();
+ String files[] = repositoryService.deleteVersion(ticket,uuid,versionID);
+ if(files==null){
+ workspaceFolderContentDAO.deleteContentWithVersion(uuid,versionID,folderContentID);
+ flashMessage = new FlashMessage("deleteContentWithVersion","Content Successfully deleted");
+ }else
+ flashMessage = new FlashMessage("deleteContentWithVersion",
+ "Following files could not be deleted" + files,
+ FlashMessage.CRITICAL_ERROR);
+
+ return flashMessage.serializeMessage();
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.workspace.service.IWorkspaceManagementService#deleteWorkspaceFolderContent(java.lang.Long, boolean)
+ */
+ public String deleteWorkspaceFolderContent(Long folderContentID)throws Exception{
+ WorkspaceFolderContent workspaceFolderContent = workspaceFolderContentDAO.getWorkspaceFolderContentByID(folderContentID);
+ if(workspaceFolderContent!=null){
+ Long uuid = workspaceFolderContent.getUuid();
+ Long versionID = workspaceFolderContent.getVersionID();
+ ITicket ticket = getRepositoryLoginTicket();
+ String files[] = repositoryService.deleteNode(ticket,uuid);
+ if(files!=null){
+ flashMessage = new FlashMessage("deleteWorkspaceFolderContent",
+ "Follwing files could not be deleted" + files.toString(),
+ FlashMessage.CRITICAL_ERROR);
+ }else{
+
+ flashMessage = new FlashMessage("deleteWorkspaceFolderContent","Content deleted");
+ }
+ }else
+ flashMessage = FlashMessage.getNoSuchWorkspaceFolderContentExsists("deleteWorkspaceFolderContent",folderContentID);
+
+ return flashMessage.serializeMessage();
+
+ }
+ /**
+ * TODO
+ * This method returns the contents of the given folder from the
+ * repository. As of now I am assuming that a folder contains only
+ * FILES and not PACKAGES. This method would be modified in the near
+ * future to return a list of PACKAGES contained as well.
+ *
+ * For every file contained within the given WorkspaceFolder
+ * this method also returns a list of all its availabe versions.
+ *
+ * @param workspaceFolderID The WorkspaceFolder
whose contents have been
+ * requested from the Repositor
+ * @param permissions The permissions on this WorkspaceFolder and hence all its contents
+ * @return Vector A collection of required information.
+ * @throws Exception
+ */
+ private Vector getContentsFromRepository(Long workspaceFolderID, Integer permissions)throws Exception{
+ List content = workspaceFolderContentDAO.getContentByWorkspaceFolder(workspaceFolderID);
+ if(content.size()==0)
+ return null;
+ else{
+ ITicket ticket = getRepositoryLoginTicket();
+ Vector repositoryContent = new Vector();
+ Iterator contentIterator = content.iterator();
+ while(contentIterator.hasNext()){
+ WorkspaceFolderContent workspaceFolderContent = (WorkspaceFolderContent)contentIterator.next();
+ SortedSet set = repositoryService.getVersionHistory(ticket,workspaceFolderContent.getUuid());
+ repositoryContent.add(workspaceFolderContent.getFolderContentDTO(set,permissions));
+ }
+ return repositoryContent;
+ }
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/web/Attic/WorkspaceAction.java,v
diff -u -r1.1 -r1.2
--- lams_common/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java 19 Apr 2005 06:16:09 -0000 1.1
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/web/WorkspaceAction.java 5 May 2005 03:10:02 -0000 1.2
@@ -23,6 +23,7 @@
package org.lamsfoundation.lams.workspace.web;
import java.io.IOException;
+import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -69,7 +70,7 @@
public ActionForward getFolderContents(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
- HttpServletResponse response)throws ServletException,IOException{
+ HttpServletResponse response)throws ServletException,Exception{
Integer folderID = new Integer(WebUtil.readIntParam(request,"folderID"));
Integer mode = new Integer(WebUtil.readIntParam(request,"mode"));
Integer userID = new Integer(WebUtil.readIntParam(request,"userID"));
@@ -127,6 +128,45 @@
String wddxPacket = workspaceManagementService.moveFolder(currentFolderID,targetFolderID,userID);
return mapping.findForward("success");
}
+
+ public ActionForward createWorkspaceFolderContent(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)throws ServletException, Exception{
+ Integer contentTypeID = new Integer(WebUtil.readIntParam(request,"contentType"));
+ String name = WebUtil.readStrParam(request,"name");
+ String description = WebUtil.readStrParam(request,"description");
+ Date createDateTime = new Date(WebUtil.readStrParam(request,"createDateTime"));
+ Date lastModifiedDate = new Date(WebUtil.readStrParam(request,"lastModifiedDateTime"));
+ Integer workspaceFolderID = new Integer(WebUtil.readIntParam(request,"workspaceFolderID"));
+ String mimeType = WebUtil.readStrParam(request,"mimeType");
+ String path = WebUtil.readStrParam(request,"path");
+
+ IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
+ String message = workspaceManagementService.createWorkspaceFolderContent(contentTypeID,name,description,
+ createDateTime,lastModifiedDate,workspaceFolderID,
+ mimeType,path);
+ return mapping.findForward("success");
+ }
+ public ActionForward updateWorkspaceFolderContent(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)throws ServletException, Exception{
+ Long folderContentID = new Long(WebUtil.readLongParam(request,"folderContentID"));
+ String path = WebUtil.readStrParam(request,"path");
+ IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
+ String message = workspaceManagementService.updateWorkspaceFolderContent(folderContentID,path);
+ return mapping.findForward("success");
+ }
+ public ActionForward deleteAllVersionsOfContent(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response)throws ServletException, Exception{
+ Long folderContentID = new Long(WebUtil.readLongParam(request,"folderContentID"));
+ IWorkspaceManagementService workspaceManagementService = getWorkspaceManagementService();
+ String message = workspaceManagementService.deleteWorkspaceFolderContent(folderContentID);
+ return mapping.findForward("success");
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/Attic/TestActivity.java,v
diff -u -r1.6 -r1.7
--- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java 12 Apr 2005 07:43:36 -0000 1.6
+++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestActivity.java 5 May 2005 03:10:09 -0000 1.7
@@ -105,16 +105,10 @@
assertNotNull(child);
assertEquals("verify id",TEST_CHILD_QNA_ACTIVITY_ID,child.getActivityId().longValue());
}
+ protected String[] getContextConfigLocation() {
+ return new String[] {"WEB-INF/spring/applicationContext.xml","WEB-INF/spring/learningDesignApplicationContext.xml"};
+ }
/**
- * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation()
- */
- protected String[] getContextConfigLocation()
- {
- return new String[] {"/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml",
- "applicationContext.xml"};
- }
-
- /**
* @see org.lamsfoundation.lams.AbstractLamsTestCase#getHibernateSessionFactoryName()
*/
protected String getHibernateSessionFactoryName()
Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/Attic/TestGroupingDAO.java,v
diff -u -r1.5 -r1.6
--- lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java 12 Apr 2005 07:43:36 -0000 1.5
+++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestGroupingDAO.java 5 May 2005 03:10:15 -0000 1.6
@@ -79,8 +79,8 @@
*/
protected String[] getContextConfigLocation()
{
- return new String[] {"/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml",
- "applicationContext.xml"};
+ return new String[] {"WEB-INF/spring/learningDesignApplicationContext.xml",
+ "WEB-INF/spring/applicationContext.xml"};
}
public void testGetGrouping()
Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/Attic/TestLearningDesignDAO.java,v
diff -u -r1.11 -r1.12
--- lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java 13 Apr 2005 23:28:57 -0000 1.11
+++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/dao/TestLearningDesignDAO.java 5 May 2005 03:10:15 -0000 1.12
@@ -48,10 +48,10 @@
userDAO = (UserDAO)context.getBean("userDAO");
}
public void testCalculateFirstActivity(){
- learningDesign = learningDesignDAO.getLearningDesignById(new Long(2));
+ learningDesign = learningDesignDAO.getLearningDesignById(new Long(1));
Activity activity = learningDesign.calculateFirstActivity();
assertNotNull(activity.getActivityId());
- long x = 27;
+ long x = 20;
assertEquals(activity.getActivityId().longValue(),x);
}
protected String[] getContextConfigLocation() {
@@ -63,7 +63,7 @@
System.out.println("SIZE:"+list.size());
}
public void testGetLearningDesignDTO() throws Exception{
- learningDesign = learningDesignDAO.getLearningDesignById(new Long(2));
+ learningDesign = learningDesignDAO.getLearningDesignById(new Long(1));
LearningDesignDTO learningDesignDTO = learningDesign.getLearningDesignDTO();
String str = WDDXProcessor.serialize(learningDesignDTO);
System.out.println(str);
Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/LessonDataAccessTestCase.java,v
diff -u -r1.20 -r1.21
--- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 12 Apr 2005 07:43:36 -0000 1.20
+++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 5 May 2005 03:10:26 -0000 1.21
@@ -118,16 +118,13 @@
super.tearDown();
}
+ protected String[] getContextConfigLocation() {
+ return new String[] {"WEB-INF/spring/applicationContext.xml",
+ "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml",
+ "WEB-INF/spring/learningDesignApplicationContext.xml"};
+ }
- /**
- * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation()
- */
- protected String[] getContextConfigLocation()
- {
- return new String[] { "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml",
- "/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml",
- "applicationContext.xml"};
- }
+
//---------------------------------------------------------------------
// Data initialization and finalization methods
Index: lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/tool/Attic/ToolDataAccessTestCase.java,v
diff -u -r1.12 -r1.13
--- lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java 12 Apr 2005 07:43:36 -0000 1.12
+++ lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java 5 May 2005 03:10:31 -0000 1.13
@@ -116,8 +116,8 @@
{
return new String[] { "/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml",
"/org/lamsfoundation/lams/tool/toolApplicationContext.xml",
- "/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml",
- "applicationContext.xml"};
+ "WEB-INF/spring/learningDesignApplicationContext.xml",
+ "WEB-INF/spring/applicationContext.xml"};
}
public void initTestToolSession()
Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/usermanagement/Attic/TestUserManagementService.java,v
diff -u -r1.2 -r1.3
--- lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java 14 Apr 2005 06:24:23 -0000 1.2
+++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/TestUserManagementService.java 5 May 2005 03:10:38 -0000 1.3
@@ -89,5 +89,9 @@
return "coreSessionFactory";
}
+ public void testGetWorkspace()throws IOException{
+ String str = userManagementService.getWorkspace(new Integer(4));
+ System.out.println(str);
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationTypeDAOTest.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/Attic/OrganisationTypeDAOTest.java,v
diff -u -r1.1 -r1.2
--- lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationTypeDAOTest.java 28 Jan 2005 04:20:59 -0000 1.1
+++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/OrganisationTypeDAOTest.java 5 May 2005 03:10:38 -0000 1.2
@@ -6,12 +6,11 @@
package org.lamsfoundation.lams.usermanagement.dao.hibernate;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
-
+import org.lamsfoundation.lams.AbstractLamsTestCase;
import org.lamsfoundation.lams.usermanagement.OrganisationType;
-import junit.framework.TestCase;
+
/**
* TODO Add description here
*
@@ -21,15 +20,18 @@
*
* @author Fei Yang
*/
-public class OrganisationTypeDAOTest extends TestCase {
+public class OrganisationTypeDAOTest extends AbstractLamsTestCase{
private OrganisationType organisationType = null;
private String errorMessage = "";
private OrganisationTypeDAO organisationTypeDAO = null;
private ApplicationContext ctx;
+ public OrganisationTypeDAOTest(String name){
+ super(name);
+ }
protected void setUp() throws Exception{
- ctx = new FileSystemXmlApplicationContext("applicationContext.xml");
- organisationTypeDAO = (OrganisationTypeDAO)ctx.getBean("organisationTypeDAO");
+ super.setUp();
+ organisationTypeDAO = (OrganisationTypeDAO)context.getBean("organisationTypeDAO");
}
protected void tearDown() throws Exception{
@@ -41,7 +43,14 @@
organisationTypeDAO.saveOrganisationType(organisationType);
assertNotNull(organisationTypeDAO.getOrganisationTypeByName("TEST"));
}
-
+ /**
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation()
+ */
+ protected String[] getContextConfigLocation()
+ {
+ return new String[] {"WEB-INF/spring/learningDesignApplicationContext.xml",
+ "WEB-INF/spring/applicationContext.xml"};
+ }
public void testGetOrganisationTypeById(){
errorMessage = "The name of the organisationType gotten by Id 1 is not ROOT ORGANISATION";
organisationType = organisationTypeDAO.getOrganisationTypeById(new Integer(1));
@@ -60,5 +69,12 @@
organisationTypeDAO.deleteOrganisationType(organisationType);
assertNull(organisationTypeDAO.getOrganisationTypeByName("TEST"));
}
+ /**
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getHibernateSessionFactoryName()
+ */
+ protected String getHibernateSessionFactoryName()
+ {
+ return "coreSessionFactory";
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/RoleDAOTest.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/Attic/RoleDAOTest.java,v
diff -u -r1.1 -r1.2
--- lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/RoleDAOTest.java 28 Jan 2005 04:20:59 -0000 1.1
+++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/RoleDAOTest.java 5 May 2005 03:10:38 -0000 1.2
@@ -4,13 +4,10 @@
* Last modified on Nov 26, 2004
*/
package org.lamsfoundation.lams.usermanagement.dao.hibernate;
-
import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
-
+import org.lamsfoundation.lams.AbstractLamsTestCase;
import org.lamsfoundation.lams.usermanagement.Role;
-import junit.framework.TestCase;
/**
* TODO Add description here
@@ -21,24 +18,27 @@
*
* @author Fei Yang
*/
-public class RoleDAOTest extends TestCase {
+public class RoleDAOTest extends AbstractLamsTestCase {
private Role role = null;
private String errorMessage = "";
private RoleDAO roleDAO = null;
private ApplicationContext ctx;
+ public RoleDAOTest(String name){
+ super(name);
+ }
protected void setUp() throws Exception{
- ctx = new FileSystemXmlApplicationContext("applicationContext.xml");
- roleDAO = (RoleDAO)ctx.getBean("roleDAO");
+ super.setUp();
+ roleDAO = (RoleDAO)context.getBean("roleDAO");
}
protected void tearDown() throws Exception{
roleDAO = null;
}
public void testGetAllRoles(){
- assertTrue(roleDAO.getAllRoles().size()==5);
+ assertTrue(roleDAO.getAllRoles().size()>0);
}
public void testGetRoleById(){
@@ -52,4 +52,19 @@
role = roleDAO.getRoleByName("SYSADMIN");
assertEquals(errorMessage,new Integer(1),role.getRoleId());
}
+ /**
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getHibernateSessionFactoryName()
+ */
+ protected String getHibernateSessionFactoryName()
+ {
+ return "coreSessionFactory";
+ }
+ /**
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation()
+ */
+ protected String[] getContextConfigLocation()
+ {
+ return new String[] {"WEB-INF/spring/learningDesignApplicationContext.xml",
+ "WEB-INF/spring/applicationContext.xml"};
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/Attic/TestWorkspaceDAO.java,v
diff -u -r1.1 -r1.2
--- lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java 15 Apr 2005 02:47:16 -0000 1.1
+++ lams_common/test/java/org/lamsfoundation/lams/usermanagement/dao/hibernate/TestWorkspaceDAO.java 5 May 2005 03:10:38 -0000 1.2
@@ -31,7 +31,7 @@
}
protected void setUp() throws Exception{
super.setUp();
- workspaceDAO =(IWorkspaceDAO)context.getBean("workspaceDAO");
+ workspaceDAO =(IWorkspaceDAO)context.getBean("userManagementWorkspaceDAO");
}
public void testGetWorkspaceByRootFolderID(){
boolean rootFolder = false;
@@ -40,6 +40,4 @@
rootFolder=true;
assertTrue(rootFolder);
}
-
-
}
Index: lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/workspace/Attic/TestWorkspaceManagement.java,v
diff -u -r1.6 -r1.7
--- lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java 19 Apr 2005 06:16:22 -0000 1.6
+++ lams_common/test/java/org/lamsfoundation/lams/workspace/TestWorkspaceManagement.java 5 May 2005 03:10:54 -0000 1.7
@@ -7,6 +7,7 @@
package org.lamsfoundation.lams.workspace;
import java.io.IOException;
+import java.util.Date;
import org.lamsfoundation.lams.AbstractLamsTestCase;
import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
@@ -41,8 +42,8 @@
protected String getHibernateSessionFactoryName() {
return "coreSessionFactory";
}
- public void testGetFolderContents()throws IOException{
- String packet = workspaceManagementService.getFolderContents(new Integer(4),new Integer(2),WorkspaceManagementService.AUTHORING);
+ public void testGetFolderContents()throws Exception{
+ String packet = workspaceManagementService.getFolderContents(new Integer(4),new Integer(4),WorkspaceManagementService.AUTHORING);
System.out.println(packet);
}
public void testCopyFolder() throws IOException{
@@ -63,6 +64,20 @@
WorkspaceFolder workspaceFolder = workspaceFolderDAO.getWorkspaceFolderByID(new Integer(6));
assertTrue(workspaceFolder.getParentWorkspaceFolder().getWorkspaceFolderId().equals(new Integer(2)));
}
-
-
+ public void testCreateWorkspaceFolderContent()throws Exception{
+ String message = workspaceManagementService.createWorkspaceFolderContent(new Integer(1),
+ "Manpreet Minhas","Manpreet's Description",
+ new Date(),new Date(),
+ new Integer(3),
+ "TXT","c:/MMinhas.TXT");
+ System.out.println(message);
+ }
+ public void testUpdateWorkspaceFolderContent() throws Exception{
+ String message = workspaceManagementService.updateWorkspaceFolderContent(new Long(7),"c:/MMinhas2.txt");
+ System.out.println(message);
+ }
+ public void testDeleteWorkspaceFolderContent() throws Exception{
+ String message = workspaceManagementService.deleteWorkspaceFolderContent(new Long(7));
+ System.out.println(message);
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/workspace/dao/TestWorkspaceFolderContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/workspace/dao/Attic/TestWorkspaceFolderContentDAO.java,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/test/java/org/lamsfoundation/lams/workspace/dao/TestWorkspaceFolderContentDAO.java 5 May 2005 03:17:18 -0000 1.1
@@ -0,0 +1,115 @@
+/*
+ * Created on Apr 20, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.lamsfoundation.lams.workspace.dao;
+
+import java.io.FileInputStream;
+import java.util.Date;
+import java.util.List;
+import org.lamsfoundation.lams.AbstractLamsTestCase;
+import org.lamsfoundation.lams.contentrepository.ICredentials;
+import org.lamsfoundation.lams.contentrepository.ITicket;
+import org.lamsfoundation.lams.contentrepository.NodeKey;
+import org.lamsfoundation.lams.contentrepository.SimpleCredentials;
+import org.lamsfoundation.lams.contentrepository.service.IRepositoryService;
+import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy;
+import org.lamsfoundation.lams.usermanagement.WorkspaceFolder;
+import org.lamsfoundation.lams.usermanagement.dao.IWorkspaceFolderDAO;
+import org.lamsfoundation.lams.workspace.WorkspaceFolderContent;
+
+/**
+ * @author Manpreet Minhas
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestWorkspaceFolderContentDAO extends AbstractLamsTestCase {
+
+ protected IWorkspaceFolderContentDAO workspaceFolderContentDAO;
+ protected IWorkspaceFolderDAO workspaceFolderDAO;
+ protected WorkspaceFolder workspaceFolder;
+ protected IRepositoryService repositoryService;
+
+ protected String workspaceUser = "workspaceManager";
+ protected String password = "flashClient";
+ protected String workspaceName = "FlashClientsWorkspace";
+
+ protected ICredentials credentials;
+ protected ITicket ticket;
+
+ public TestWorkspaceFolderContentDAO(String name){
+ super(name);
+ }
+ public void setUp()throws Exception{
+ super.setUp();
+ workspaceFolderContentDAO = (IWorkspaceFolderContentDAO)context.getBean("workspaceFolderContentDAO");
+ workspaceFolderDAO = (IWorkspaceFolderDAO)context.getBean("workspaceFolderDAO");
+ repositoryService = RepositoryProxy.getLocalRepositoryService();
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getContextConfigLocation()
+ */
+ protected String[] getContextConfigLocation() {
+ return new String[] {"WEB-INF/spring/applicationContext.xml",
+ "org/lamsfoundation/lams/contentrepository/contentRepositoryLocalApplicationContext.xml"};
+ }
+
+ /**
+ * (non-Javadoc)
+ * @see org.lamsfoundation.lams.AbstractLamsTestCase#getHibernateSessionFactoryName()
+ */
+ protected String getHibernateSessionFactoryName() {
+ return "coreSessionFactory";
+ }
+ public void testInsertWorkspaceFolderContent(){
+ workspaceFolder = workspaceFolderDAO.getWorkspaceFolderByID(new Integer(4));
+ WorkspaceFolderContent workspaceFolderContent = new WorkspaceFolderContent(new Integer(1),
+ "Test File","Test Description",
+ new Date(), new Date(),
+ "TXT",workspaceFolder);
+ workspaceFolderContentDAO.insert(workspaceFolderContent);
+ assertNotNull(workspaceFolderContent.getFolderContentID());
+ }
+ public void testGetContentByWorkspaceFolder(){
+ List list = workspaceFolderContentDAO.getContentByWorkspaceFolder(new Long(3));
+ assertEquals(list.size(),4);
+ }
+ public void testGetContentByTypeFromWorkspaceFolder(){
+ List list = workspaceFolderContentDAO.getContentByTypeFromWorkspaceFolder(new Long(3),"TXT");
+ assertEquals(list.size(),2);
+ }
+ public void testAddFlashClientWorkspaceCredentials()throws Exception{
+ credentials = new SimpleCredentials(workspaceUser,password.toCharArray());
+ //repositoryService.createCredentials(credentials);
+ //repositoryService.addWorkspace(credentials,workspaceName);
+ ticket = repositoryService.login(credentials,workspaceName);
+ assertNotNull("Add workspace succeeded - can login to workspace. Ticket is "+ticket, ticket);
+ testAddFile(ticket);
+ }
+ private void testAddFile(ITicket ticket)throws Exception{
+ WorkspaceFolderContent workspaceFolderContent = workspaceFolderContentDAO.getWorkspaceFolderContentByID(new Long(7));
+ FileInputStream input = new FileInputStream("C:/test/Text File.txt");
+ NodeKey nodeKey = repositoryService.addFileItem(ticket,input,workspaceFolderContent.getName(),workspaceFolderContent.getMimeType(),null);
+ workspaceFolderContent.setUuid(nodeKey.getUuid());
+ workspaceFolderContent.setVersionID(nodeKey.getVersion());
+ workspaceFolderContentDAO.update(workspaceFolderContent);
+ assertNotNull(workspaceFolderContent.getUuid());
+ }
+ public void testUpdateFile() throws Exception{
+ WorkspaceFolderContent workspaceFolderContent = workspaceFolderContentDAO.getWorkspaceFolderContentByID(new Long(7));
+ FileInputStream input = new FileInputStream("C:/test/Text File.txt");
+ credentials = new SimpleCredentials(workspaceUser,password.toCharArray());
+ ticket = repositoryService.login(credentials,workspaceName);
+ NodeKey nodeKey = repositoryService.updateFileItem(ticket,workspaceFolderContent.getUuid(),workspaceFolderContent.getName(),
+ input,workspaceFolderContent.getMimeType(),null);
+ workspaceFolderContent.setVersionID(nodeKey.getVersion());
+ workspaceFolderContent.setUuid(nodeKey.getUuid());
+ workspaceFolderContentDAO.update(workspaceFolderContent);
+ System.out.println(nodeKey.getVersion() + ": " + workspaceFolderContent.getVersionID());
+ }
+}
Index: lams_common/web/WEB-INF/spring/applicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/web/WEB-INF/spring/Attic/applicationContext.xml,v
diff -u -r1.1 -r1.2
--- lams_common/web/WEB-INF/spring/applicationContext.xml 13 Apr 2005 00:14:57 -0000 1.1
+++ lams_common/web/WEB-INF/spring/applicationContext.xml 5 May 2005 03:09:16 -0000 1.2
@@ -68,6 +68,10 @@