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.