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

Reply via email to