Return-Path: Delivered-To: apmail-jackrabbit-users-archive@locus.apache.org Received: (qmail 83551 invoked from network); 21 Feb 2008 01:46:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Feb 2008 01:46:49 -0000 Received: (qmail 76043 invoked by uid 500); 21 Feb 2008 01:46:42 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 76020 invoked by uid 500); 21 Feb 2008 01:46:42 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 75849 invoked by uid 99); 21 Feb 2008 01:46:41 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Feb 2008 17:46:41 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ppiegaze@day.com designates 62.192.10.254 as permitted sender) Received: from [62.192.10.254] (HELO goobak01.day.com) (62.192.10.254) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 21 Feb 2008 01:46:05 +0000 Received: by goobak01.day.com (Postfix, from userid 1212) id 4963350871; Thu, 21 Feb 2008 02:36:25 +0100 (CET) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.248]) by goobak01.day.com (Postfix) with ESMTP id B8F475086A for ; Thu, 21 Feb 2008 02:36:24 +0100 (CET) Received: by an-out-0708.google.com with SMTP id c3so620368ana.104 for ; Wed, 20 Feb 2008 17:46:10 -0800 (PST) Received: by 10.100.214.15 with SMTP id m15mr18648941ang.80.1203558364451; Wed, 20 Feb 2008 17:46:04 -0800 (PST) Received: by 10.100.201.4 with HTTP; Wed, 20 Feb 2008 17:46:04 -0800 (PST) Message-ID: <7919c1900802201746w208b2122m60f1205ca5bb960@mail.gmail.com> Date: Wed, 20 Feb 2008 20:46:04 -0500 From: "Peeter Piegaze" Sender: ppiegaze@day.com To: users@jackrabbit.apache.org Subject: Re: Problems disallowing same name siblings In-Reply-To: <47BCC1B8.9020002@mulesource.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <47BC7E92.8070703@mulesource.com> <47BCB673.7060505@mulesource.com> <47BCC1B8.9020002@mulesource.com> X-Google-Sender-Auth: 769553d05006637f X-Virus-Checked: Checked by ClamAV on apache.org Hi Dan, The trouble is that you are using type nt:unstructured as the superclass of type galaxy:workspace. This adds the following child node definition to the effective (as opposed to declared) definition of galaxy:workspace: This definition allows any number of child nodes of any type with any name, each any number of times. This is called a residual definition in JSR-170-speak. The interaction between two conflicting item defintions in a node type that arise due to subclassing is not well defined in JSR 170. As a result implementations are free to apply whatever resolution mechanism they see fit. In the case of Jackrabbit when you add a child node called "galaxy:artifact" to your galaxy:workspace node the first time it matches your original child node defintion: when you then add a second it matches the residual definition. I admit that this behavior is weird. It will be addressed in JCR 2.0 :-) Cheers, Peeter On 2/20/08, Dan Diephouse wrote: > > Sorry, I didn't include the whole thing, but I changed it so it does: > > isMixin="false" > hasOrderableChildNodes="false" > primaryItemName="" > sameNameSiblings="false"> > > > nt:unstructured > > sameNameSiblings="false" /> > > > isMixin="false" > hasOrderableChildNodes="false" > primaryItemName="" > sameNameSiblings="false" > allowSameNameSiblings="false"> > > > nt:unstructured > > > > > - Dan > > > Tobias Bocanegra wrote: > as i said, the workspace nodetype must have SNS=false > regards, toby > > On 2/20/08, Dan Diephouse wrote: > > > Hmmm... This doesn't seem to work either: > > isMixin="false" > hasOrderableChildNodes="false" > primaryItemName="" > sameNameSiblings="false"> > > > nt:unstructured > > > > > I'm guessing I'm doing something stupid. :-) > - Dan > > > Tobias Bocanegra wrote: > hi, > the SNS works on the defining node, not on the child. i.e. your > galaxy:workspace must have the SNS=false, not the artifact. > > regards, toby > > On 2/20/08, Dan Diephouse wrote: > > > I'm trying to disallow same name siblings. We have the concept of > workspaces which hold artifacts and other workspaces. Very similar to a > file system (we chose not to go with the built in file node types though > as they didn't fit our application). We've defined our node types like > this: > > xmlns:jcr="http://www.jcp.org/jcr/1.0" > xmlns:galaxy="http://galaxy.mule.org" > xmlns:mix="http://www.jcp.org/jcr/mix/1.0"> > > isMixin="false" > hasOrderableChildNodes="false" > primaryItemName=""> > > > nt:unstructured > > sameNameSiblings="false" /> > > > > > When I dump the type registry I get this: > > {http://galaxy.mule.org}workspace > Supertypes > {http://www.jcp.org/jcr/nt/1.0}unstructured > Mixin false > OrderableChildNodes false > PrimaryItemName > NodeDefinition (declared in {http://galaxy.mule.org}workspace) > id=801081333 > Name {http://galaxy.mule.org}artifact > RequiredPrimaryType {http://www.jcp.org/jcr/nt/1.0}base > AutoCreated false > Mandatory false > OnVersion COPY > Protected false > AllowsSameNameSiblings false > > But I'm still able to add multiple galaxy:artifact nodes with the same > name as you see from this repository dump: > > /workspaces/Default Workspace > /workspaces/Default Workspace/updated = 2008-02-20T11:17:21.920-08:00 > /workspaces/Default Workspace/jcr:primaryType = galaxy:workspace > /workspaces/Default Workspace/jcr:mixinTypes = mix:referenceable > /workspaces/Default Workspace/jcr:uuid = > de38a3e0-9bc1-4406-9618-5d9ccde3883d > /workspaces/Default Workspace/name = Default Workspace > /workspaces/Default Workspace/hello_world.wsdl > /workspaces/Default Workspace/hello_world.wsdl/lifecycle = > Default > /workspaces/Default Workspace/hello_world.wsdl/updated = > 2008-02-20T11:17:23.434-08:00 > /workspaces/Default Workspace/hello_world.wsdl/phase = > Created > /workspaces/Default Workspace/hello_world.wsdl/contentType > = > application/wsdl+xml > /workspaces/Default > Workspace/hello_world.wsdl/jcr:primaryType = > galaxy:artifact > /workspaces/Default > Workspace/hello_world.wsdl/jcr:mixinTypes = > mix:referenceable > /workspaces/Default Workspace/hello_world.wsdl/jcr:uuid = > 492fbb9f-ee45-4910-8907-8db107895bad > /workspaces/Default Workspace/hello_world.wsdl/name = hello_world.wsdl > /workspaces/Default > Workspace/hello_world.wsdl/documentType = > {http://schemas.xmlsoap.org/wsdl/}definitions > /workspaces/Default Workspace/hello_world.wsdl[2] > /workspaces/Default > Workspace/hello_world.wsdl[2]/lifecycle = Default > /workspaces/Default Workspace/hello_world.wsdl[2]/updated > = > 2008-02-20T11:17:24.130-08:00 > /workspaces/Default Workspace/hello_world.wsdl[2]/phase = > Created > /workspaces/Default > Workspace/hello_world.wsdl[2]/contentType = > application/wsdl+xml > /workspaces/Default > Workspace/hello_world.wsdl[2]/jcr:primaryType = > galaxy:artifact > /workspaces/Default > Workspace/hello_world.wsdl[2]/jcr:mixinTypes = > mix:referenceable > /workspaces/Default Workspace/hello_world.wsdl[2]/jcr:uuid > = > e21883eb-4f98-46b4-8868-1ce80355a1a9 > /workspaces/Default Workspace/hello_world.wsdl[2]/name = > hello_world.wsdl > /workspaces/Default > Workspace/hello_world.wsdl[2]/documentType = > {http://schemas.xmlsoap.org/wsdl/}definitions > > As you can see, I have a parent node which is a galaxy:workspace and > multiple nodes with the same name :(. Any ideas what in the world I'm > doing wrong? > > Also, as this is one of the best practices for JCR integration, it'd be > great if the first hops guide detailed how to do this. Am I missing some > obvious piece of documentation which explains all this? > > Thanks > - Dan > > > -- > Dan Diephouse > MuleSource > http://mulesource.com | http://netzooid.com/blog > > > > > > > > -- > Dan Diephouse > MuleSource > http://mulesource.com | http://netzooid.com/blog > > > > > > > -- > Dan Diephouse > MuleSource > http://mulesource.com | http://netzooid.com/blog >