Return-Path: Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: (qmail 35533 invoked from network); 16 May 2008 12:43:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 May 2008 12:43:24 -0000 Received: (qmail 71638 invoked by uid 500); 16 May 2008 12:43:26 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 71551 invoked by uid 500); 16 May 2008 12:43:26 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 71542 invoked by uid 99); 16 May 2008 12:43:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 May 2008 05:43:26 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 May 2008 12:42:29 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id EBF762388A17; Fri, 16 May 2008 05:42:50 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r657038 - /jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java Date: Fri, 16 May 2008 12:42:50 -0000 To: commits@jackrabbit.apache.org From: jukka@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080516124250.EBF762388A17@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jukka Date: Fri May 16 05:42:50 2008 New Revision: 657038 URL: http://svn.apache.org/viewvc?rev=657038&view=rev Log: JCR-1607: Add a NamespaceHelper in jcr-commons - Use NamespaceHelper in jcr-server Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java?rev=657038&r1=657037&r2=657038&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java (original) +++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/io/DefaultHandler.java Fri May 16 05:42:50 2008 @@ -17,6 +17,7 @@ package org.apache.jackrabbit.server.io; import org.apache.jackrabbit.JcrConstants; +import org.apache.jackrabbit.commons.NamespaceHelper; import org.apache.jackrabbit.util.ISO9075; import org.apache.jackrabbit.util.Text; import org.apache.jackrabbit.webdav.DavResource; @@ -33,8 +34,6 @@ import javax.jcr.RepositoryException; import javax.jcr.PropertyIterator; import javax.jcr.Session; -import javax.jcr.NamespaceException; -import javax.jcr.NamespaceRegistry; import javax.jcr.nodetype.PropertyDefinition; import java.io.IOException; import java.io.InputStream; @@ -647,8 +646,7 @@ /** * Build jcr property name from dav property name. If the property name * defines a namespace uri, that has not been registered yet, an attempt - * is made to register the uri with the prefix defined. Note, that no - * extra effort is made to generated a unique prefix. + * is made to register the uri with the prefix defined. * * @param propName * @return jcr name @@ -659,25 +657,10 @@ String pName = ISO9075.decode(propName.getName()); Namespace propNamespace = propName.getNamespace(); if (!Namespace.EMPTY_NAMESPACE.equals(propNamespace)) { - String prefix; - String emptyPrefix = Namespace.EMPTY_NAMESPACE.getPrefix(); - try { - // lookup 'prefix' in the session-ns-mappings / namespace-registry - prefix = session.getNamespacePrefix(propNamespace.getURI()); - } catch (NamespaceException e) { - // namespace uri has not been registered yet - NamespaceRegistry nsReg = session.getWorkspace().getNamespaceRegistry(); - prefix = propNamespace.getPrefix(); - // avoid trouble with default namespace - if (emptyPrefix.equals(prefix)) { - prefix = "_pre" + nsReg.getPrefixes().length + 1; - } - // NOTE: will fail if prefix is already in use in the namespace registry - nsReg.registerNamespace(prefix, propNamespace.getURI()); - } - if (prefix != null && !emptyPrefix.equals(prefix)) { - pName = prefix + ":" + pName; - } + NamespaceHelper helper = new NamespaceHelper(session); + String prefix = helper.registerNamespace( + propNamespace.getPrefix(), propNamespace.getURI()); + pName = prefix + ":" + pName; } return pName; }