I Must have been blind! Thx for this!
Am 29.01.2010 um 16:53 schrieb "Justin Edelson [via Jackrabbit]" <[email protected] >: > The problem in with this line: > > Node metadataNode = childnode.addNode("ns:metadata", > "ns:metadata"); > > If you want to change the existing metadata node, you should get it, > not > add a new one. > > Justin > > On 1/29/10 9:41 AM, mephisto29 wrote: > > > Hi, > > > > first of all: Thanks for the good support via this list. Lots of > my problems > > has been solved just by reading your mails. But now I have a > problem with > > versioning and I don't know where to start :-) > > > > I have created a cnd definition which looks like that: > > > > <ns = 'http://http://www.example.com/jcr-ns/myproj'> > > // Namespace declaration -base > > <mix = 'http://www.jcp.org/jcr/mix/1.0'> > > <nt = 'http://www.jcp.org/jcr/nt/1.0'> > > // Name > > [ns:myNode] > > > > // Supertypes > > > >> ns:base, mix:versionable > >> > > - myNode:defaultLanguage (string) mandatory > > + myNode:metadata > > + myNode:languages > > + myNode:content > > > > [ns:metadata] > > > >> mix:versionable > >> > > mixin > > + ns:metadataEntry > > mandatory > > multiple > > > > [ns:metadataEntry] > > > >> mix:versionable > >> > > mixin > > + ns:key > > mandatory > > multiple > > + ns:value > > mandatory > > multiple > > > > [ns:key] > > > >> mix:versionable > >> > > mixin > > - ns:id (string) mandatory > > - ns:xPath (string) mandatory > > - ns:class (string) mandatory > > - ns:i18nType (string) mandatory > > - ns:metadataTokenisation(string) mandatory > > - ns:metadataValueCount(string) mandatory > > - ns:validator(string) mandatory > > > > Now I can store all my stuff in the right location inside > Jackrabbit, but: > > How does the versioning stuff work? What I did was: > > -checkout a (previously stored) node of type myNode > > -call this snippet (where childnode is the (checked out) myNode- > Node): > > Node metadataNode = childnode.addNode("ns:metadata", "ns:metadata"); > > IMetadata metadata = myObject.getMetadata(); > > Set metadataKeys = metadata.getAllMetadataKeys(); > > for (MetadataKey metadataKey : metadataKeys) { > > Node metadataSubNode = > > metadataNode.addNode("ns:metadataEntry","ns:metadataEntry"); > > Node keyNode = metadataSubNode.addNode > ("ns:key","ns:key"); > > keyNode.setProperty("ns:id", metadataKey .getId()); > > keyNode.setProperty("ns:xPath", metadataKey .getXPath > ()); > > keyNode.setProperty("ns:class", metadataKey > > .getClass().getCanonicalName()); > > keyNode.setProperty("ns:i18nType", metadataKey > > .getI18nType().name()); > > keyNode.setProperty("ns:metadataTokenisation", > > metadataKey.getMetadataTokenization().name()); > > keyNode.setProperty("ns:metadataValueCount", > metadataKey > > .getMetadataValueCount().name()); > > keyNode.setProperty("ns:validator", > > iMetadataKey.getValidator().getClass().getCanonicalName()); > > Node valueNode = metadataSubNode.addNode("ns:value", > > "ns:value"); > > ValueContainer valueContainer = > > metadata.getMetadataValueContainer(metadataKey); > > String classNameForValue = > > valueContainer.getValue().getClass().getCanonicalName(); > > valueNode.setProperty("ns:class", classNameForValue); > > [...] > > valueNode.setProperty("scy:value", > > Base64.encodeToString(baos.toByteArray(), true)); > > } > > > > Then I call checkin() on childNode and what I want to have is a > new Version. > > What I get is different: > > Either there are duplicate entries of "metadata" (if I add > multiple to the > > cnd in 'myNode' for metadata) or there is an > javax.jcr.ItemExistsException > > for the metadata node. > > > > What I want to have is that all the childnodes of myNode are somehow > > replaced by the new values, so that I get a complete new version of > > myNode... > > > > As I am new to JCR/Jackrabbit it could be that I did some mistakes > in the > > cnd and/or the java code, so please be patient :-) > > > > Cheers and (again) thx for your help, > > > > Jan > > > > > > > > > > > > > > > > View message @ http://n4.nabble.com/Versioning-tp1415533p1415612.html > To unsubscribe from Versioning, click here. > -- View this message in context: http://n4.nabble.com/Versioning-tp1415533p1415639.html Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
