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

Reply via email to