Hi Jasha,
I'm still missing the WebdavUploader and the UploadException classes which
are mentioned in the following snippet from the sample
try {
new WebdavUploader(context).upload(comment);
dispatch = request.getRequestDispatcher("succes.jsp");
} catch(UploadException e) {
dispatch = request.getRequestDispatcher("failure.jsp");
}
Couldn't find them on SVN; could you point me to the right tag where I can
find these classes?
Thanks!
mau
On Mon, Dec 14, 2009 at 4:01 PM, Jasha Joachimsthal <
[email protected]> wrote:
> 2009/12/14 Maurizio Pillitu <[email protected]>
>
> > Thanks Jasha!
> >
> > Shall I copy/paste your code in my project and try it out?
> >
>
> Yes please
>
>
> Jasha Joachimsthal
>
> [email protected] - [email protected]
>
> www.onehippo.com
> Amsterdam - Hippo B.V. Oosteinde 11 1017 WT Amsterdam +31(0)20-5224466
> San Francisco - Hippo USA Inc. 185 H Street, suite B, Petaluma CA 94952 +1
> (707) 7734646
>
>
>
>
> >
> > On Mon, Dec 14, 2009 at 3:49 PM, Jasha Joachimsthal <
> > [email protected]> wrote:
> >
> > > 2009/12/14 Maurizio Pillitu <[email protected]>
> > >
> > > > Hi everyone,
> > > > I was following the HST1 tutorial on how to upload content
> > > >
> > > >
> > > >
> > >
> >
> http://hst.hippocms.org/technical-documentation/building-a-JSP-front-end/examples/user-generated/comments.html
> > > >
> > > > It seems fairly easy, but I'm missing the mentioned classes:
> > > >
> > > > import nl.hippo.client.api.upload.WebdavUploadable;
> > > >
> > > > import nl.hippo.client.api.upload.UploadContext;
> > > >
> > > >
> > > Hmm I guess we've documented this feature before even adding it to the
> > HST
> > > ;-)
> > > I found some matching classes in a project:
> > >
> > > WebdavUploadable:
> > > package nl.hippo.client.api.upload;
> > >
> > > import java.io.InputStream;
> > > import nl.hippo.client.api.content.Property;
> > >
> > > public interface WebdavUploadable {
> > > /**
> > > * getInputStream() specifies how this WebdavUploadable generates an
> > > * InputStream. This is needed by the WebdavUploader to
> > > * put objects in the repository.
> > > *
> > > * @return a new InputStream
> > > */
> > > public InputStream getInputStream();
> > > /**
> > > * A WebdavUploadable document must be able to return it's document
> > > * type. This is needed in the uploading process for the CMS to
> > > * recognize it as a valid document.
> > > *
> > > * @return a document type
> > > */
> > > public Property getDocumentType();
> > > }
> > >
> > >
> > >
> > > UploadContext
> > > package nl.hippo.client.api.upload;
> > >
> > > import javax.servlet.http.HttpServletResponse;
> > >
> > > import org.apache.commons.logging.Log;
> > > import org.apache.commons.logging.LogFactory;
> > >
> > > import nl.hippo.client.api.ClientException;
> > > import nl.hippo.client.api.content.DocumentPath;
> > > import nl.hippo.client.api.service.WebdavService;
> > > import nl.hippo.client.webdav.WebdavConfig;
> > > import nl.hippo.client.webdav.service.WebdavServiceImpl;
> > >
> > > public abstract class UploadContext {
> > > private final static Log log =
> LogFactory.getLog(UploadContext.class);
> > >
> > > private WebdavService service;
> > > private DocumentPath rootFolder;
> > > private DocumentPath documentFolder;
> > > private DocumentPath documentTarget;
> > > private String[] folders;
> > >
> > > public UploadContext() {
> > >
> > > }
> > >
> > > /**
> > > * This constructor creates an UploadContext object with a
> > configuration
> > > * specified in the WebdavConfig object
> > > *
> > > * @param config contains the repository configuration
> > > */
> > > public UploadContext(WebdavConfig config, String folder, String
> > > documentName) {
> > > service = getWebdavService(config);
> > > rootFolder = service.getBasePath();
> > > documentFolder =
> service.getBasePath().createRelativePath(folder);
> > > documentTarget = service.getBasePath().createRelativePath(folder
> +
> > > documentName);
> > > folders = folder.split("/");
> > > }
> > >
> > > /**
> > > * This constructor creates an UploadContext object with a
> > > * given webdav service
> > > *
> > > * @param webdav service to use for uploading
> > > */
> > > public UploadContext(WebdavService webdavService, String folder,
> > String
> > > documentName) {
> > > service = webdavService;
> > > rootFolder = service.getBasePath();
> > > documentFolder =
> service.getBasePath().createRelativePath(folder);
> > > documentTarget = service.getBasePath().createRelativePath(folder
> +
> > > documentName);
> > > folders = folder.split("/");
> > > }
> > >
> > > public DocumentPath getRootFolder() {
> > > return rootFolder;
> > > }
> > >
> > > public DocumentPath getDocumentFolder() {
> > > return documentFolder;
> > > }
> > >
> > > public DocumentPath getDocumentTarget() {
> > > return documentTarget;
> > > }
> > >
> > > public WebdavService getWebdavService(WebdavConfig config) {
> > > return new WebdavServiceImpl(config);
> > > }
> > >
> > > public WebdavService getWebdavService() {
> > > return service;
> > > }
> > >
> > > public void createFolder(DocumentPath path) throws ClientException {
> > > service.executeMkCol(path);
> > > }
> > >
> > > public void createPath() throws ClientException {
> > > String path = "";
> > > int i = 0;
> > > int index = 0;
> > > int repositoryResponseCode = 0;
> > >
> > > while (i < folders.length) {
> > >
> > > while (index < i) {
> > > // Get the folders that come before this one
> > > path += folders[index] + "/";
> > > index++;
> > > }
> > > // Reset index
> > > index = 0;
> > >
> > > path += folders[i];
> > > DocumentPath newPath = rootFolder.createRelativePath(path);
> > > int headResponse = 0;
> > > try {
> > > headResponse = service.executeHead(newPath);
> > > } catch(Exception e) {
> > > log.warn("Head: " + e.getLocalizedMessage());
> > > }
> > > if( headResponse == HttpServletResponse.SC_NOT_FOUND ||
> > > headResponse == 0 ) {
> > > repositoryResponseCode = service.executeMkCol(newPath);
> > > } else {
> > > log.info("Path " + path + " not created.");
> > > }
> > >
> > > if (repositoryResponseCode >= 400) {
> > > throw new ClientException("Couldn't create folder
> > structure
> > > '" + path + "'");
> > > }
> > > // Reset path
> > > path = "";
> > > i++;
> > > }
> > > }
> > >
> > > /**
> > > * This method creates a folder structure for a specific
> > > * application. Different implementations of the class may
> > > * use different folder structures.
> > > *
> > > * @param documentName is a documentName that the UploadContext
> > > * has to create a folder structure for.
> > > *
> > > * @return a String representing a folder structure.
> > > */
> > > public abstract String createFolderStructure(String documentName);
> > > }
> > > ********************************************
> > > Hippocms-dev: Hippo CMS development public mailinglist
> > >
> > > Searchable archives can be found at:
> > > MarkMail: http://hippocms-dev.markmail.org
> > > Nabble: http://www.nabble.com/Hippo-CMS-f26633.html
> > >
> > >
> >
> >
> > --
> >
> > Met vriendelijke groet,
> > --
> > Maurizio Pillitu - 0031 (0)615655668
> > Opensource Software Engineer
> > Scrum Certified Master - http://www.scrumalliance.org
> > Sourcesense - making sense of Open Source: http://www.sourcesense.com
> > ********************************************
> > Hippocms-dev: Hippo CMS development public mailinglist
> >
> > Searchable archives can be found at:
> > MarkMail: http://hippocms-dev.markmail.org
> > Nabble: http://www.nabble.com/Hippo-CMS-f26633.html
> >
> >
> ********************************************
> Hippocms-dev: Hippo CMS development public mailinglist
>
> Searchable archives can be found at:
> MarkMail: http://hippocms-dev.markmail.org
> Nabble: http://www.nabble.com/Hippo-CMS-f26633.html
>
>
--
Met vriendelijke groet,
--
Maurizio Pillitu - 0031 (0)615655668
Opensource Software Engineer
Scrum Certified Master - http://www.scrumalliance.org
Sourcesense - making sense of Open Source: http://www.sourcesense.com
********************************************
Hippocms-dev: Hippo CMS development public mailinglist
Searchable archives can be found at:
MarkMail: http://hippocms-dev.markmail.org
Nabble: http://www.nabble.com/Hippo-CMS-f26633.html