-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dependency conflicts with Apache Beam Cloud Dataflow runner #2890
Comments
For posterity, if I put
|
Hi, @kevmo314 , I have carefully reviewed your issue and spend some energy to analyze your dependency tree. When you tried to solve the problem at first time, a new version 0.9.0 was forcedly introduced, which exacerbated the problem.
For the second problem "java.lang.NoClassDefFoundError: com/google/api/gax/rpc/ClientSettings:", You can add the following patch in your pom.xml:
Then the problem may be disappeared. Hope my answer can help you. |
I tried pinning to the versions you suggested and received the same exception
I don't think pinning minor versions would solve the issue either, as minor versions are supposed to be backwards-compatible with semantic versioning. If they're not, then that suggests a more systemic problem in the Google Java APIs... |
Okay, so it turns out that there are substantial differences between 1.9.0 and higher versions. That's insane, that completely goes against the point of using semantic versioning. I'm going to echo the sentiments in #2889, why is it so hard to get these APIs functional? And my original question still stands: Is there a sane way to resolve these dependencies? |
@kevmo314 , Sorry, my mistake.
Thanks. |
Thanks for the help, but that just leads me to yet another exception:
I also had to refactor some of my code because apparently the API around collections is different between |
@PandaMonkey Thank you for the analysis! @garrettjonesgoogle My understanding: we are (were?) using unstable surfaces to implement stable ones. I believe this works OK if the two surfaces are in the same Maven package. In this case, they're not. BEAM depends on Spanner |
cc @mairbek |
Is there a short term workaround (eg can I force maven to shade Firestore or Beam)? I'm blocked at the moment due to this incompatibility, but currently my only practical option seems to be to remove the |
@kevmo314 I'm not sure there's a version of gax that's compatible with both. The oldest version of Firestore I can see depends on gax 1.9.0. @schmidt-sebastian Do you have any thoughts? |
Hi everyone, I think it would be good to set expectations correctly around versioning.
|
Thanks @garrettjonesgoogle for the tip about google-cloud-bom, I'll give that a shot and see if that works.
As @pongad mentioned, I'm using neither Spanner nor Firestore directly, but rather I'm depending on Apache Beam and |
It looks like |
Ahh, I think In my scan through this issue I didn't notice before that If you have to ditch |
Just to follow up with this, I ended up giving up and using the Firestore REST API, as it was easier to debug than the GRPC API just due to familiarity. I did try the suggestion to use |
@kevmo314 I'm sorry to hear that. Upgrading BEAM's dependencies (apache/beam#4707) should help in the long run though. |
Any update on this? Both apache/beam#4707 and apache/beam#4727 seem to have stalled. As much as I enjoy spending 50% more on Dataflow to negotiate HTTPS requests over and over again, it would be nice to uh, not. |
We haven't been pursuing anything on google-cloud-java's side - this seemed to be more in BEAM's court since they're the ones with versions that are so far behind (grpc 1.2 is > 1 year old now). |
Ah, sounds good, I'll check in with them, thanks! |
apache/beam#5988 will bring Beam up to date, and it has passed tests. |
Looks like this is fixed. |
Hi, I'm running into the following exception when using Firestore:
My pom.xml file:
and output of
mvn dependency:tree
It looks like this is due to Beam pulling in old dependencies that aren't sufficient for
firebase-admin
, so I tried pinningwhich resulted in #2496:
so I tried adding
but this results in
at which point I'm sort of stuck, since I thought this was provided by the
gax-grpc
artifact. I've also tried puttingfirebase-admin
before all the beam dependencies, however this results in similar version conflicts...Is there an easier way to resolve the dependency conflict between Beam and firebase-admin?
The text was updated successfully, but these errors were encountered: