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

Make the Azure Data Store compatible with Guava 15 and 26

    XMLWordPrintableJSON

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.18.0
    • Component/s: blob-plugins
    • Labels:
      None

      Description

      I was recently working on some potential usage of gRPC in Oak. I'll create an issue shortly, explaining the idea. For now, I'd like to use the gRPC in the same class loader as Azure Data Store. The gRPC uses Guava 26 and can't be downgraded. In Oak, we're using Guava 15.

      We'll probably upgrade the Oak to Guava 26 in the future, but it'll be a bigger task. I was wondering if there's a workaround that allows to use APIs which are common to Guava 15 and 26 in the Azure Data Store. It seems that we're using the APIs removed from Guava 26 just in two places of the UploadStagingCache class:

      • in the file traverser in UploadStagingCache#build()
      • in the future handling in UploadStagingCache#stage()

      Amit Jain, I was wondering if you'd be OK with changing these two places, so they are compatible both with Guava 15 and 26. It'd help me with proceeding with the PoC I mentioned. And again: the current version works completely fine.

      For the file traversing, we can use the Java 8 file traverse utils. For the future listening, I copied the SameThreadExecutorService from Guava and used it as an extra parameter, required in the newer versions.

      WDYT?

        Attachments

        1. OAK-8612.patch
          8 kB
          Tomek Rękawek

          Issue Links

            Activity

              People

              • Assignee:
                tomek.rekawek Tomek Rękawek
                Reporter:
                tomek.rekawek Tomek Rękawek
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: