From 6cde6e4e1012a9af91c70a4381db242972542b08 Mon Sep 17 00:00:00 2001 From: j-sandy <30489233+j-sandy@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:40:54 +0530 Subject: [PATCH] chore(dependency): replace javax.inject with jakarta.inject as part of spring boot 3.x upgrade While upgrading the spring boot to 3.0.13 and spring cloud 2022.0.5, encountered the below error: ``` Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.inject.Provider' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1824) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1383) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) at app//org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910) at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) ... 175 more ``` The root cause is use of `javax.inject` that has been moved from present coordinate to `jakarta.inject`. So, updating the coordinates in kork-eureka, kork-plugins and kork-web modules. https://github.com/google/guice/issues/1463 https://github.com/google/guice/issues/1383 https://docs.openrewrite.org/recipes/java/migrate/jakarta/javaxinjectmigrationtojakartainject --- kork-eureka/kork-eureka.gradle | 2 +- kork-plugins/kork-plugins.gradle | 2 +- kork-web/kork-web.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kork-eureka/kork-eureka.gradle b/kork-eureka/kork-eureka.gradle index b6fce9cdc..ed8ab5164 100644 --- a/kork-eureka/kork-eureka.gradle +++ b/kork-eureka/kork-eureka.gradle @@ -23,7 +23,7 @@ dependencies { implementation project(":kork-core") implementation project(":kork-exceptions") - implementation "javax.inject:javax.inject:1" + implementation "jakarta.inject:jakarta.inject-api:1.0" implementation "org.springframework.boot:spring-boot-autoconfigure" implementation "org.springframework.boot:spring-boot-starter-actuator" diff --git a/kork-plugins/kork-plugins.gradle b/kork-plugins/kork-plugins.gradle index 2522da796..ef1a51676 100644 --- a/kork-plugins/kork-plugins.gradle +++ b/kork-plugins/kork-plugins.gradle @@ -28,7 +28,7 @@ dependencies { implementation "org.springframework.boot:spring-boot-starter-web" implementation "org.springframework.boot:spring-boot-starter-actuator" implementation("com.google.guava:guava") - implementation "javax.inject:javax.inject:1" + implementation "jakarta.inject:jakarta.inject-api:1.0" implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-properties") diff --git a/kork-web/kork-web.gradle b/kork-web/kork-web.gradle index a187fc9d4..884cb636d 100644 --- a/kork-web/kork-web.gradle +++ b/kork-web/kork-web.gradle @@ -28,7 +28,7 @@ dependencies { api "com.squareup.retrofit:retrofit" implementation "com.google.guava:guava" - implementation "javax.inject:javax.inject:1" + implementation "jakarta.inject:jakarta.inject-api:1.0" implementation("com.netflix.spectator:spectator-web-spring") { // exclude transitives since this brings in a newer version of spring (boot) // dependencies than we're compatible with (2.2.x for spring boot and 5.2.x