jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Harris" <michael.e.har...@gmail.com>
Subject Re: saving files
Date Wed, 23 Jul 2008 14:35:10 GMT
Nick

thanx for the reply.  when I do that and inspect the returned stream in the
eclipse debugger there is nothing in it.

michael.



On Wed, Jul 23, 2008 at 10:22 AM, Nick Stuart <nstuart@speranzasystems.com>
wrote:

> All you can really do is retrieve the InputStream for said file. Which
> should be enough, and the nodes hold the rest of the info if you need it
> obviously (file name, type, etc).
>
> Something like:
>
> Node resNode = fileNode.getNode("jcr:content");
> resNode.getProperty("jcr:data").getStream();
>
> Where fileNode is the jcr:file node type. You wont be able to actually get
> a
> File object becuase thats part of JCR, that it extracts that stuff away
> from
> you, and you just deal with the contents and info.
>
> -Nick
>
> On Wed, Jul 23, 2008 at 10:16 AM, Michael Harris <
> michael.e.harris@gmail.com>
> wrote:
>
> > ladies and gentlemen
> >
> > its still not obvious to me how to retrieve the saved file.  Can someone
> > please illuminate the situation?
> >
> > thanx in advance.
> >
> > On Tue, Jul 22, 2008 at 3:05 PM, Michael Harris <
> > michael.e.harris@gmail.com>
> > wrote:
> >
> > > comments inline below.  Thank you for the response.
> > >
> > > On Tue, Jul 22, 2008 at 2:20 PM, Julian Reschke <julian.reschke@gmx.de
> >
> > > wrote:
> > >
> > >> Michael Harris wrote:
> > >>
> > >>> hey all,
> > >>>
> > >>> more newb questions here.
> > >>> Want to save a file in the repository.  found this on the wiki
> > >>>
> > >>> Node folderNode = session.getRootNode();
> > >>>        Node fileNode = folderNode.addNode(file.getName(), "nt:file");
> > >>>
> > >>>        // create the mandatory child node - jcr:content
> > >>>        Node resNode = fileNode.addNode("jcr:content", "nt:resource");
> > >>>        resNode.setProperty("jcr:mimeType", "");
> > >>>        resNode.setProperty("jcr:encoding", "");
> > >>>
> > >> > ...
> > >>
> > >> That is very bad advice. If you don't know mimeType or encoding, do
> not
> > >> set it.
> > >
> > >
> > >> Where did you find that?
> > >>
> > >
> > > I got the code from the wiki.  It had the mimetype and the encoding
> type.
> > > I modified the code and just put empty strings in for now.
> > >
> > >
> > >
> > >>
> > >>         resNode.setProperty("jcr:data", new FileInputStream(file));
> > >>>        Calendar lastModified = Calendar.getInstance();
> > >>>        lastModified.setTimeInMillis(file.lastModified());
> > >>>        resNode.setProperty("jcr:lastModified", lastModified);
> > >>>
> > >>> Is the file itself being put in the repository (jcr.data) or just the
> > >>> content?
> > >>>
> > >>
> > >> The contents.
> > >>
> > >>  Do I even need the resNode?  Can I just save the file into the
> > fileNode?
> > >>>
> > >>
> > >> Not unless you use a different node type.
> > >>
> > >
> > > So does it mean anything to say "Can I save the file itself?"
> > >
> > >
> > > so the above code I put into a DAO method saveFile(File, Session).  In
> > the
> > > test for that method, i have
> > >
> > >         Node root = session.getRootNode();
> > >         // testFile is the file in the Dao
> > >         Node fileNode = root.getNode(testFile.getName());
> > >         Node fileDetails = fileNode.getNode("jcr:content");
> > >
> > >         Property fileProp = fileDetails.getProperty("jcr:data");
> > >
> > > I am trying to get at the file contents, which is just a string "some
> > > content".
> > >
> > > on the property retrieved I dont see the file content (Im in eclipse's
> > > debugger).  How do I retrieve the file.  What would a
> > > loadFile(Session, filename) method look like?
> > >
> > >
> > >
> > >
> > >
> > >
> > >>  Finally, we are going to need to lock the file (which is why we are
> > using
> > >>> jcr).  Is it possible to attach info (like who owns the lock) to the
> > >>> locked
> > >>> file?
> > >>>
> > >>
> > >> To some extent, that's part of the JCR locking model (it remembers who
> > >> owns the lock, and exposes the information both in the API and on
> > properties
> > >> defined in mix:lockable).
> > >>
> > >>  Thanx.  This community has been quite helpful.
> > >>>
> > >>
> > >> BR, Julian
> > >>
> > >
> > >
> > >
> > > --
> > > ---------------------
> > > Michael Harris
> > >
> >
> >
> >
> > --
> > ---------------------
> > Michael Harris
> >
>



-- 
---------------------
Michael Harris

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message