[ 
https://issues.apache.org/jira/browse/JCR-1865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12750452#action_12750452
 ] 

Jukka Zitting commented on JCR-1865:
------------------------------------

Why do we need to modify JackrabbitSession for this? As discussed earlier, I'd 
be perfectly happy with a ManagedRepository interface with the 
createDataStoreGarbageCollector() method.

Some other concerns:

* I'd just put all the management interfaces in o.a.j.api.management, no need 
to create subpackages

* I'd drop the DataStore part of the interface and method names, as in future 
we may well want to extend the mechanism to cover other uses, for example 
optimizing the search indexes or removing old journal records.

* Do we really need the MarkEventListener mechanism? I can see how it can be 
useful in creating a nice progress bar display, but is having such a feature 
important enough to make the API more complex and thus noticeably limit 
implementation options? 

* The sleepBetweenNodes property seems really implementation specific. What if 
we later find out that a better way to control the impact of garbage collection 
is to for example use the Thread.setPriority() method? I'd rather not fix such 
implementation details in the API unless there's a very good reason for having 
it there.

* If we do the above, do we then need to expose a close() method on the garbage 
collector?

As a summary, here's what I'd expose as the *only* new interfaces and methods:

    ManagedRepository repository = ...;
    GarbageCollector collector = repository.getGarbageCollector();
    collector.mark();
    collector.sweep();

This covers the basic use case while giving us maximum implementation 
flexibility. 


> Add the Data Store to the Jackrabbit API
> ----------------------------------------
>
>                 Key: JCR-1865
>                 URL: https://issues.apache.org/jira/browse/JCR-1865
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-core
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>            Priority: Minor
>         Attachments: api.patch, api_2.patch, core.patch, core_2.patch
>
>
> Currently, the garbage collection is not part of the Jackrabbit API. However, 
> the data store garbage collection must be used once in a while if the data 
> store is enabled. I propose to add the required interfaces to the Jackrabbit 
> API. This will also allow to call garbage collection using RMI.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to