Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 30836 invoked from network); 5 Jul 2006 06:55:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 5 Jul 2006 06:55:19 -0000 Received: (qmail 46390 invoked by uid 500); 5 Jul 2006 06:55:18 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 46029 invoked by uid 500); 5 Jul 2006 06:55:17 -0000 Mailing-List: contact dev-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 dev@jackrabbit.apache.org Received: (qmail 46020 invoked by uid 99); 5 Jul 2006 06:55:17 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Jul 2006 23:55:17 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [209.237.227.198] (HELO brutus.apache.org) (209.237.227.198) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Jul 2006 23:55:16 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 344934103D4 for ; Wed, 5 Jul 2006 06:53:30 +0000 (GMT) Message-ID: <23115720.1152082410184.JavaMail.jira@brutus> Date: Wed, 5 Jul 2006 06:53:30 +0000 (GMT+00:00) From: "angela (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-473) Some enhancements to jackrabbit commons In-Reply-To: <12231489.1151918309779.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/JCR-473?page=comments#action_12419217 ] angela commented on JCR-473: ---------------------------- regarding interfaces for Path, QName: i used to have interfaces for them and keep the implementation in commons. but i felt that the impact on the existing jackrabbit code would be too big. in addition i did not see enough benefit of this approach for the jackrabbit project. but i might be wrong.... regarding split of NamespaceResolver: perhaps it's worth taking a closer look at this. at first glance it looks a little exaggerated to me. in any case (and as long as nobody objects) i would prefer applying the patch as is and discuss additional enhancements in a separate thread. having a patch that shows the impact of a modification makes it easier to decide about the benefits (or drawbacks). kind regards angela > Some enhancements to jackrabbit commons > --------------------------------------- > > Key: JCR-473 > URL: http://issues.apache.org/jira/browse/JCR-473 > Project: Jackrabbit > Type: Improvement > Versions: 1.0 > Reporter: angela > Assignee: angela > Attachments: JCR-473_rev_417443.patch > > I would like to suggest a couple of enhancements to the commons module. > The patch was created against rev. 417443 and the tests did not reveal any > problems. > Summary of suggestion modifications: > QName > ------------------------------------------------------------------------------------------------------------------------- > - reduce QName to its core functionality and put conversion from and to JCR name to > a separate class 'NameFormat' > - in order not to break existing code, all methods that deal with the conversion in QName > are marked deprecated. > - add constant for the name of the root node. > Path > ------------------------------------------------------------------------------------------------------------------------- > - reduce Path to its core functionality and put conversion from and to JCR path to > a separate class 'PathFormat' > - in order not to break existing code, all methods that deal with the conversion in Path > are marked deprecated. > - introduce new constants for UNDEFINED_INDEX (0) and DEFAULT_INDEX (1), that > are currently hardcoded throughout the jackrabbit project. > - new method Path.getElement(int) [PathElement] > - make PathElement constants public (used by PathFormat) > Path.PathBuilder > ------------------------------------------------------------------------------------------------------------------------- > - additional constructor PathBuilder(Path) > Path.PathElement > ------------------------------------------------------------------------------------------------------------------------- > - add PathElement.getNormalizedIndex() that always asserts a 1-based index. > - change subclasses to be private (no usage within the jackrabbit, except inside Path). > PathMap > ------------------------------------------------------------------------------------------------------------------------- > - move o.a.j.core.PathMap to o.a.j.util.PathMap in order to make it available in the > commons module. > NamespaceResolver > ------------------------------------------------------------------------------------------------------------------------- > - add methods for resolution of paths: > > getQPath(String jcrPath) [Path] > > getJCRPath(Path qPath) [String] > NamespaceListener > ------------------------------------------------------------------------------------------------------------------------- > - add method 'namespaceRemove(String)' > ValueHelper > ------------------------------------------------------------------------------------------------------------------------- > currently JCR value objects are 'manually' created in the ValueHelper despite the > fact, that JSR170 defines a ValueFactory interface. Consequently the ValueHelper > present in the commons module can only be used by implementations that use > the same value implementations. > - add new helper methods that take a ValueFactory as argument. > - in order not to break existing code the original methods are marked deprecated and > may be removed at a later time. > consequently: > - modify signature of InternalValue.create that include a value conversion to take a > ValueFactory param and adjust all usages inside the core package. > ValueFactoryImpl > ------------------------------------------------------------------------------------------------------------------------- > - createValue(String, int ): used to call the conversion on ValueHelper. with the > changes suggested to ValueHelper, the code must be changed in order to > created instances of the Value implementations within the factory. > - together with the modification to ValueHelper, stefan suggested to replace the public > constructor with a static 'getInstance' method. All usages within jackrabbit.core, were > modified accordingly. > Text > ------------------------------------------------------------------------------------------------------------------------- > - add getName(String, boolean) where the boolean flag indicates whether a trailing slash > should be ignored. > - add getRelativeParent(String, int, boolean) where the boolean flag indicates whether a > trailing slash should be ignored. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira