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

Chetan Mehrotra resolved OAK-4642.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 1.5.8

Done with 1755243

*Usage*

Instead of just a normal callback now {{IndexUpdate}} would pass an instance of 
type {{ContextAwareCallback}} to {{IndexEditorProvider}}. So an 
{{IndexEditorProvider}} can cast the passed callback instance to 
{{ContextAwareCallback}} and obtain the {{IndexingContext}} from that

> Provide a way to pass indexing related state to IndexEditorProvider
> -------------------------------------------------------------------
>
>                 Key: OAK-4642
>                 URL: https://issues.apache.org/jira/browse/OAK-4642
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: core
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.6, 1.5.8
>
>         Attachments: OAK-4642-o4-v1.patch, OAK-4642-o4-v2.patch
>
>
> An index editor needs access to some more data points like below in the 
> indexing process
> # reindexing - Currently the index implementation use some heuristic like 
> check before root state being empty to determine if they are running in 
> reindexing mode
> # indexing mode - sync or async
> # index path of the index (see OAK-4152)
> # CommitInfo (see OAK-4640)
> For this we need to provide a way to pass these data points from indexing 
> flow. We have following options
> * O1 - Introduce a new interface which takes an {{IndexingContext}} instance 
> which provide access to such datapoints. This would require some broader 
> change
> ** Whereever the IndexEditorProvider is invoked it would need to check if the 
> instance implements new interface. If yes then new method needs to be used
> * O2 - Here we can introduce such data points as part of callback interface. 
> With this we would need to implement such methods in places where code 
> constructs the callback
> * O3 - Make a backward incompatible change and just modify the existing 
> interface and adapt the various implementation
> * O4 - Similar to O2 but here instead of modifying the existing 
> {{IndexUpdateCallback}} we can introduce a new interface 
> {{ContextualCallback}} which extends {{IndexUpdateCallback}} and provide 
> access to {{IndexingContext}}. Editor provider implementation can then check 
> if the callback implements this new interface and then cast it and access the 
> context. So only those client which are interested in new capability make use 
> of this



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

Reply via email to