cdancy / bitbucket-rest

Java client, built on top of jclouds, for working with Bitbucket's REST API
Apache License 2.0
76 stars 57 forks source link

v3.1.0 fails to startup in Spring 2.7.0, even when using the -all classifier and shaded jars #380

Open rsheldon-ansira opened 1 year ago

rsheldon-ansira commented 1 year ago

I am trying to upgrade from bitbucket-rest 2.6.2 to 3.1.0, I'm using spring-boot 2.7.9

`

io.github.cdancy
<artifactId>bitbucket-rest</artifactId>
<version>3.1.0</version>
<classifier>all</classifier>

`

But when I start my application I'm getting the following error: `1) [Guice/ErrorInCustomProvider]: NoSuchMethodError: 'void ConstructorConstructor.(Map)' at GsonModule.provideGson(GsonModule.java:99) _ installed by: BitbucketHttpApiModule -> GsonModule at GsonWrapper.(GsonWrapper.java:38) _ for 1st parameter at GsonWrapper.class(GsonWrapper.java:32) while locating GsonWrapper while locating Json

Learn more: https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER Caused by: NoSuchMethodError: 'void ConstructorConstructor.(Map)' at GsonModule.provideGson(GsonModule.java:130) at GsonModule$$FastClassByGuice$$1802571.GUICE$TRAMPOLINE() at GsonModule$$FastClassByGuice$$1802571.apply() at ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260) at ProviderMethod.doProvision(ProviderMethod.java:171) at InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185) at InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162) at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at SingletonScope$1.get(SingletonScope.java:169) at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45) at SingleParameterInjector.inject(SingleParameterInjector.java:40) at SingleParameterInjector.getAll(SingleParameterInjector.java:60) at ConstructorInjector.provision(ConstructorInjector.java:113) at ConstructorInjector.construct(ConstructorInjector.java:91) at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300) at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at SingletonScope$1.get(SingletonScope.java:169) at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45) at FactoryProxy.get(FactoryProxy.java:60) at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213) at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186) at InternalInjectorCreator.build(InternalInjectorCreator.java:113) at Guice.createInjector(Guice.java:87) at ContextBuilder.buildInjector(ContextBuilder.java:405) at ContextBuilder.buildInjector(ContextBuilder.java:328) at ContextBuilder.buildApi(ContextBuilder.java:651) at ContextBuilder.buildApi(ContextBuilder.java:643) at BitbucketClient.createApi(BitbucketClient.java:87) at BitbucketClient.(BitbucketClient.java:71) at BitbucketClient$Builder.build(BitbucketClient.java:222)`

I believe this is related to https://issues.apache.org/jira/browse/JCLOUDS-1618. I did see https://github.com/cdancy/bitbucket-rest/issues/194, but I am using the "all" classifier, but it did not work in my case.

What I also find interesting is that when I use the "all" classifier, I still get transitive dependencies, which doesn't seem right given that you're shading all these dependencies.