diff -ruN -x target -x bin legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentHostingService.java ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentHostingService.java --- legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentHostingService.java 2006-04-07 19:22:19.000000000 +0100 +++ ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentHostingService.java 2006-04-27 17:09:59.000000000 +0100 @@ -1188,4 +1188,10 @@ * @return The default dropbox collection display name for the site. */ public String getDropboxDisplayName(String siteId); + + // Xuan Added Method + // Registers a ContentHandler in this content service + public void registerContentHandler(ContentResourceHandler ch); + public ContentResourceEdit newContentResource(String id, ResourceContentHandler rch); + // End. Xuan added } diff -ruN -x target -x bin legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceEdit.java ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceEdit.java --- legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceEdit.java 2006-04-07 19:22:19.000000000 +0100 +++ ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceEdit.java 2006-04-27 17:10:49.000000000 +0100 @@ -55,6 +55,10 @@ * @param content An array containing the bytes of the resource's content. */ public void setContent(byte[] content); + + // Xuan added method + public void setContentHandler(ResourceContentHandler handler); + // End Xuan Added } // ContentResourceEdit diff -ruN -x target -x bin legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceHandler.java ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceHandler.java --- legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceHandler.java 1970-01-01 01:00:00.000000000 +0100 +++ ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ContentResourceHandler.java 2006-04-28 15:05:47.000000000 +0100 @@ -0,0 +1,61 @@ +package org.sakaiproject.service.legacy.content; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.sakaiproject.service.legacy.entity.Entity; + + + +public interface ContentResourceHandler { + + public static final String CONTENT_REFERENCE_ROOT = Entity.SEPARATOR + "content"; + public static final String IMS_CP_MIMETYPE = "ims/cp"; + + public static final String IMS_CP_FLAG = ".ims"; + + public static final String IMS_CP_DEFAULTMANIFEST = "/imsmanifest.xml"; + + /* + * Handles the resource returned by basic ContenHostingService, if resource is NOT null. Otherwise + * processes the id and returns appropriate resource for this ContentResourceHandler. + * @param id + * @param resource The default resource returned by ContentHostingService for id, may be + * NULL + * @return The resource corresponding for id or NULL when resource doesn't exit or isn't + * supported by this Handler + * */ + public ContentResource verifyContent(String id, ContentResource resource); + + /* + * Before verify the ContentResource, the HttpServletRequest and HttpServletResponse for this + * resource can be processed here. For instance, the parameters encoded in the request URL. + * @param request The HttpServletRequest for this request + * @param response The HttpServletResponse for this request + */ +// public void checkRequest( HttpServletRequest request); + + /* + * Init method for this ContentResourceHandler. Generally, the handler registers itself with the + * ContentHostingService. + */ + public void init(); + + /* + * destroy method for this ContentResourceHanlder. + * The typical work is deregister itself from the ContentHostingService's content hanlder + * list + */ + public void destroy(); + + /* + * Getter method for the ContentHostingService + */ + public ContentHostingService getService(); + + /* + * Setter method for the ContentHostingService. The handler holds a reference to + * the ContentHostingService in Sakai + */ + public void setService(ContentHostingService service); +} diff -ruN -x target -x bin legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ResourceContentHandler.java ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ResourceContentHandler.java --- legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ResourceContentHandler.java 1970-01-01 01:00:00.000000000 +0100 +++ ../sakai-src_2-1-2/legacy-service/service/src/java/org/sakaiproject/service/legacy/content/ResourceContentHandler.java 2006-04-27 17:12:42.000000000 +0100 @@ -0,0 +1,10 @@ +package org.sakaiproject.service.legacy.content; + +import java.io.InputStream; + +public interface ResourceContentHandler { + + public byte[] getResourceBody(); + + public InputStream streamResourceBody(); +}