Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-3815

Add refresh callback support to Tracker

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • None
    • None
    • core
    • None

    Description

      Currently the Tracker only has access to list of registered services but there is no way to know if the services have changed and one has to re obtain the set of services. For certain usecases its desirable to know (get notified) if the set of services registered against a specific type have changed.

      For e.g. in OAK-3576 the services are to be registered against set of NodeTypes and each service provides set of nodeTypes it support. Creating that structure (nodeType -> service) is to be avoided on the critical path.

      So far Tracker serves the purpose well. One can just open the tracker and get the list of services and create that nodeType -> service mapping. However in case of OSGi (or in other modes also) if a new service is registered there is no way currently to get notified. As of now one needs to have reference property added to some OSGi component with bind and unbind callbacks. Given we already make use of ServicetTracker and do get notified when services get updated we should easily be able to make use of that.

      For such cases I would like to propose registering a callback which should get notified if there is some change in set of services registered against a specific type. Then one can register the callback while creating the Tracker instance

      Attachments

        1. OAK-3815-v1.patch
          18 kB
          Chetan Mehrotra

        Issue Links

          Activity

            People

              chetanm Chetan Mehrotra
              chetanm Chetan Mehrotra
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: