You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2013/09/25 23:51:03 UTC

[jira] [Commented] (OAK-950) Remove org.apache.jackrabbit.oak.core from package-export

    [ https://issues.apache.org/jira/browse/OAK-950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13778131#comment-13778131 ] 

Michael Dürig commented on OAK-950:
-----------------------------------

bq.  i made this method [getIdentifier()] part of the Tree interface.

Why not implement identifier calculation directly in {{IdentifierManager}} instead? Something like:

{code}
    public static String getIdentifier(Tree tree) {
        PropertyState property = tree.getProperty(JcrConstants.JCR_UUID);
        if (property != null) {
            return property.getValue(STRING);
        } else if (tree.isRoot()) {
            return "/";
        } else {
            String parentId = getIdentifier(tree.getParent());
            return PathUtils.concat(parentId, tree.getName());
        }
    }
{code}
                
> Remove org.apache.jackrabbit.oak.core from package-export
> ---------------------------------------------------------
>
>                 Key: OAK-950
>                 URL: https://issues.apache.org/jira/browse/OAK-950
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>            Reporter: angela
>         Attachments: OAK-950.patch
>
>
> IMO the package org.apache.jackrabbit.oak.core is the implementation of the
> oak api and should therefore only be used internally. exporting that package
> in the maven-bundle-plugin configuration is from my point of view a major bug.
> if it's needed it indicates that the package contains classes that are misplaced.
> a quick search showed that the following references to the core package are present:
> oak-solr:
> - AbstractRoot used by 
>   > SolrBaseTest
> oak-jcr:
> - IdentifierManager used by 
>   > NodeImpl, 
>   > NodeDelegate, 
>   > SessionDelegate, 
>   > ChangeProcessor,
>   > ImporterImpl
> - ImmutableRoot used by
>   > ChangeProcessor
> - ImmutableTree used by
>   > ChangeProcessor
> to me that indicates that the IdentifierManager should be moved to package
> space that is really public (API, SPI or plugins). 
> as far as the ChangeProcessor is concerned it seems that this was itself a
> candidate for being moved from oak-jcr to oak-core.
> and finally the SolrTest: i think the test should be refactored to obtain the root from a regular OAK repository setup instead of relying on an specific implementation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira