Thanks a million, Brett! 

Something interesting pops up, though. I added/checked in the node once, but
found VersionHistory has two entries. Through frozen node, I can get the
property "createdBy" with the newer version (base version). The older
version (root version), however, does not have this property saved. 

Then I tested with more check out/in. It turns out that entries in
VersionHistory is always one more than the number of check out/in. Among the
entries, only the root version does not have the property. 

I don't quite understand the "extra" root version and why it does not save
the property...


-----Original Message-----
From: Conoly, Brett [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 17, 2008 11:57 AM
To: [email protected]
Subject: RE: createdBy & version number

Took me a little while to find that also, but in order to get the
properties of the version you have to
getNode(JcrConstants.jcr_frozenNode).getProperty("createdBy") or
something like that.  To better explain it, the versions have a
frozenNode associated with them that contains readonly properties of
that version.
Hope this helps,
Brett

-----Original Message-----
From: Zhihai Liu [mailto:[EMAIL PROTECTED] 
Sent: Thursday, April 17, 2008 11:53 AM
To: [email protected]
Subject: createdBy & version number

Hi, 

 

I have a couple of questions regarding to the use of version. 

 

Firstly, it is my understanding that there is no built-in support to
save
the username who check in the node in version history. So I use a
property
"createdBy".

// set createdBy

node.setProperty("createdBy", session.getUserID());

session.save();

node.checkin();

 

Then I found that I cannot retrieve it from base version or version
history.


// retrieve from base version

String createdBy;

Version baseVersion = node.getBaseVersion();

if (baseVersion.hasProperty("createdBy")) {

  createdBy = baseVersion.getProperty("createdBy").getString();

}

 

But it is saved correctly and can be retrieved from node.

// retrieve from node

String createdBy = node.getProperty("createdBy").getString();

 

I know that versions are different nodes in repository. Don't they keep
all
the data that is saved before checkin? Did I do something wrong?

 

Secondly, is there built-in support to generate the version numbers like
1.1, 1.2, when checkin or do I have to set version label manually?

 

Thank you very much.

 


Reply via email to