[ 
https://issues.apache.org/jira/browse/OAK-2586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Sedding updated OAK-2586:
--------------------------------
    Attachment: OAK-2586.patch

The attached patch ads a {{FilteringNodeState}} implementation based on an 
array of include paths and an array of exclude paths. The implementation wraps 
a {{NodeState}} and overwrites all methods that allow access to child 
{{NodeState}}s to hide any filtered paths.

In order to have the least impact, {{NodeState}} instances are wrapped only if 
they are filtered themselves, or if they have filtered descendants.

Additionally, I took the liberty to slightly refactor {{RepositoryUpgrade}} to 
a more builder-like API. If this is a problem, I am happy to provide a patch 
without this refactoring.


> Support including and excluding paths during upgrade
> ----------------------------------------------------
>
>                 Key: OAK-2586
>                 URL: https://issues.apache.org/jira/browse/OAK-2586
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: upgrade
>    Affects Versions: 1.1.6
>            Reporter: Julian Sedding
>              Labels: patch
>         Attachments: OAK-2586.patch
>
>
> When upgrading a Jackrabbit 2 to an Oak repository it can be desirable to 
> constrain which paths/sub-trees should be copied from the source repository. 
> Not least because this can (drastically) reduce the amount of content that 
> needs to be traversed, copied and indexed.
> I suggest to allow filtering the content visible from the source repository 
> by wrapping the JackrabbitNodeState instance and hiding selected paths.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to