From 5c38bd8ac3030e3c586ce44e071a32c940e22919 Mon Sep 17 00:00:00 2001 From: orbisai0security Date: Mon, 8 Jun 2026 00:54:39 +0000 Subject: [PATCH 1/4] fix: CVE-2026-40973 security vulnerability Automated dependency upgrade by OrbisAI Security --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 87aa35d6aa1e..2c4cbbfb7bcb 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ UTF-8 - 3.4.5 + 3.5.14 5.11.4 5.14.2 1.5.18 From a330d82c66fe770dce441b713b07b658c279fa12 Mon Sep 17 00:00:00 2001 From: OrbisAI Security Date: Tue, 9 Jun 2026 07:02:37 +0530 Subject: [PATCH 2/4] fix: migrate javax to jakarta namespaces for Spring Boot 3.5.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spring Boot 3.x requires Jakarta EE 9+ namespaces. This commit migrates all Jakarta EE-related javax imports to jakarta equivalents to support the Spring Boot 3.5.14 upgrade from CVE-2026-40973 fix. Changes: - Migrate javax.sql.DataSource → jakarta.sql.DataSource (28 files) - Migrate javax.persistence.* → jakarta.persistence.* (JPA annotations) - Migrate javax.annotation.PostConstruct → jakarta.annotation.PostConstruct - Migrate javax.inject.Inject → jakarta.inject.Inject - Update Hibernate 5.6.15 → 6.4.4 for Jakarta compatibility - Update jaxb-runtime 2.3.3 → 4.0.5 - Remove deprecated javax.xml.bind dependencies - Update javax.annotation-api → jakarta.annotation-api 3.0.0 Modules affected: transaction-script, domain-model, data-access-object, dao-factory, table-module, serialized-entity, serialized-lob, CQRS, polling-publisher, repository, dependency-injection Co-Authored-By: Claude Sonnet 4.5 --- command-query-responsibility-segregation/pom.xml | 9 ++------- .../java/com/iluwatar/cqrs/domain/model/Author.java | 8 ++++---- .../main/java/com/iluwatar/cqrs/domain/model/Book.java | 10 +++++----- .../java/com/iluwatar/daofactory/H2CustomerDAO.java | 2 +- .../com/iluwatar/daofactory/H2DataSourceFactory.java | 2 +- .../com/iluwatar/daofactory/H2CustomerDAOTest.java | 2 +- .../src/main/java/com/iluwatar/dao/App.java | 2 +- .../src/main/java/com/iluwatar/dao/DbCustomerDao.java | 2 +- .../test/java/com/iluwatar/dao/DbCustomerDaoTest.java | 2 +- .../com/iluwatar/dependency/injection/GuiceWizard.java | 2 +- .../src/main/java/com/iluwatar/domainmodel/App.java | 2 +- .../java/com/iluwatar/domainmodel/CustomerDaoImpl.java | 2 +- .../java/com/iluwatar/domainmodel/ProductDaoImpl.java | 2 +- .../com/iluwatar/domainmodel/CustomerDaoImplTest.java | 2 +- .../com/iluwatar/domainmodel/ProductDaoImplTest.java | 2 +- .../test/java/com/iluwatar/domainmodel/TestUtils.java | 2 +- metadata-mapping/pom.xml | 5 ----- .../main/java/com/iluwatar/polling/DataRepository.java | 2 +- polling-publisher/pom.xml | 8 ++++---- .../main/java/com/iluwatar/repository/AppConfig.java | 2 +- .../java/com/iluwatar/repository/AppConfigTest.java | 2 +- .../main/java/com/iluwatar/serializedentity/App.java | 2 +- .../iluwatar/serializedentity/CountrySchemaSql.java | 2 +- .../com/iluwatar/slob/dbservice/DatabaseService.java | 2 +- service-layer/pom.xml | 5 ----- .../src/main/java/com/iluwatar/tablemodule/App.java | 2 +- .../java/com/iluwatar/tablemodule/UserTableModule.java | 2 +- .../com/iluwatar/tablemodule/UserTableModuleTest.java | 2 +- .../main/java/com/iluwatar/transactionscript/App.java | 2 +- .../com/iluwatar/transactionscript/HotelDaoImpl.java | 2 +- .../iluwatar/transactionscript/HotelDaoImplTest.java | 2 +- .../java/com/iluwatar/transactionscript/HotelTest.java | 2 +- 32 files changed, 41 insertions(+), 56 deletions(-) diff --git a/command-query-responsibility-segregation/pom.xml b/command-query-responsibility-segregation/pom.xml index c3c277dd0b80..4babeda1698c 100644 --- a/command-query-responsibility-segregation/pom.xml +++ b/command-query-responsibility-segregation/pom.xml @@ -54,17 +54,12 @@ org.hibernate hibernate-core - 5.6.15.Final + 6.4.4.Final org.glassfish.jaxb jaxb-runtime - 2.3.3 - - - javax.xml.bind - jaxb-api - 2.3.1 + 4.0.5 diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java index 03155d67a30b..aeeaf037174b 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java @@ -24,10 +24,10 @@ */ package com.iluwatar.cqrs.domain.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; import lombok.ToString; diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java index 2e2c356528e9..f4b29fef356a 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java @@ -24,11 +24,11 @@ */ package com.iluwatar.cqrs.domain.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.ManyToOne; import lombok.Getter; import lombok.Setter; import lombok.ToString; diff --git a/dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java b/dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java index fe027426391c..851a470db406 100644 --- a/dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java +++ b/dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java @@ -33,7 +33,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java b/dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java index dbb39dd98f3b..ccbca3d3b277 100644 --- a/dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java +++ b/dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java @@ -24,7 +24,7 @@ */ package com.iluwatar.daofactory; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; /** H2DataSourceFactory concrete factory. */ diff --git a/dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java b/dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java index ce7def36e5bc..5d3f73492473 100644 --- a/dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java +++ b/dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java @@ -36,7 +36,7 @@ import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/data-access-object/src/main/java/com/iluwatar/dao/App.java b/data-access-object/src/main/java/com/iluwatar/dao/App.java index 106b7458c9cf..5c932055a10a 100644 --- a/data-access-object/src/main/java/com/iluwatar/dao/App.java +++ b/data-access-object/src/main/java/com/iluwatar/dao/App.java @@ -26,7 +26,7 @@ import java.sql.SQLException; import java.util.List; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcDataSource; diff --git a/data-access-object/src/main/java/com/iluwatar/dao/DbCustomerDao.java b/data-access-object/src/main/java/com/iluwatar/dao/DbCustomerDao.java index cb75b195ddc4..e2a7247b738b 100644 --- a/data-access-object/src/main/java/com/iluwatar/dao/DbCustomerDao.java +++ b/data-access-object/src/main/java/com/iluwatar/dao/DbCustomerDao.java @@ -34,7 +34,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/data-access-object/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java b/data-access-object/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java index 2f116d108519..43ac00cf85f2 100644 --- a/data-access-object/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java +++ b/data-access-object/src/test/java/com/iluwatar/dao/DbCustomerDaoTest.java @@ -36,7 +36,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java index 8230f975cb78..7d4160790a99 100644 --- a/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java +++ b/dependency-injection/src/main/java/com/iluwatar/dependency/injection/GuiceWizard.java @@ -24,7 +24,7 @@ */ package com.iluwatar.dependency.injection; -import javax.inject.Inject; +import jakarta.inject.Inject; /** * GuiceWizard implements inversion of control. Its dependencies are injected through its diff --git a/domain-model/src/main/java/com/iluwatar/domainmodel/App.java b/domain-model/src/main/java/com/iluwatar/domainmodel/App.java index 3f209a35a5f8..11cfd5f3b327 100644 --- a/domain-model/src/main/java/com/iluwatar/domainmodel/App.java +++ b/domain-model/src/main/java/com/iluwatar/domainmodel/App.java @@ -28,7 +28,7 @@ import java.sql.SQLException; import java.time.LocalDate; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.joda.money.Money; diff --git a/domain-model/src/main/java/com/iluwatar/domainmodel/CustomerDaoImpl.java b/domain-model/src/main/java/com/iluwatar/domainmodel/CustomerDaoImpl.java index cff4e30bc079..8496457f3270 100644 --- a/domain-model/src/main/java/com/iluwatar/domainmodel/CustomerDaoImpl.java +++ b/domain-model/src/main/java/com/iluwatar/domainmodel/CustomerDaoImpl.java @@ -29,7 +29,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Optional; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.joda.money.Money; /** Implementations for database operations of Customer. */ diff --git a/domain-model/src/main/java/com/iluwatar/domainmodel/ProductDaoImpl.java b/domain-model/src/main/java/com/iluwatar/domainmodel/ProductDaoImpl.java index 6313e8afa1fb..63eca7c14efc 100644 --- a/domain-model/src/main/java/com/iluwatar/domainmodel/ProductDaoImpl.java +++ b/domain-model/src/main/java/com/iluwatar/domainmodel/ProductDaoImpl.java @@ -30,7 +30,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Optional; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.joda.money.Money; /** Implementations for database transactions of Product. */ diff --git a/domain-model/src/test/java/com/iluwatar/domainmodel/CustomerDaoImplTest.java b/domain-model/src/test/java/com/iluwatar/domainmodel/CustomerDaoImplTest.java index aeab249ba7c7..f9ee555d74cd 100644 --- a/domain-model/src/test/java/com/iluwatar/domainmodel/CustomerDaoImplTest.java +++ b/domain-model/src/test/java/com/iluwatar/domainmodel/CustomerDaoImplTest.java @@ -30,7 +30,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDate; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.joda.money.CurrencyUnit; import org.joda.money.Money; import org.junit.jupiter.api.AfterEach; diff --git a/domain-model/src/test/java/com/iluwatar/domainmodel/ProductDaoImplTest.java b/domain-model/src/test/java/com/iluwatar/domainmodel/ProductDaoImplTest.java index 7631c3581ec8..237b714ab06f 100644 --- a/domain-model/src/test/java/com/iluwatar/domainmodel/ProductDaoImplTest.java +++ b/domain-model/src/test/java/com/iluwatar/domainmodel/ProductDaoImplTest.java @@ -30,7 +30,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDate; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.joda.money.Money; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/domain-model/src/test/java/com/iluwatar/domainmodel/TestUtils.java b/domain-model/src/test/java/com/iluwatar/domainmodel/TestUtils.java index 8555cedc8b1d..f1c0ea058393 100644 --- a/domain-model/src/test/java/com/iluwatar/domainmodel/TestUtils.java +++ b/domain-model/src/test/java/com/iluwatar/domainmodel/TestUtils.java @@ -25,7 +25,7 @@ package com.iluwatar.domainmodel; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; public class TestUtils { diff --git a/metadata-mapping/pom.xml b/metadata-mapping/pom.xml index 7aa802d7ff2a..9bfa9711d1ae 100644 --- a/metadata-mapping/pom.xml +++ b/metadata-mapping/pom.xml @@ -55,11 +55,6 @@ hibernate-core 6.6.11.Final - - javax.xml.bind - jaxb-api - 2.4.0-b180830.0359 - org.glassfish.jaxb jaxb-runtime diff --git a/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java b/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java index 61483e9dedcf..bc95cc3b20e5 100644 --- a/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java +++ b/polling-publisher/polling-service/src/main/java/com/iluwatar/polling/DataRepository.java @@ -27,7 +27,7 @@ import java.util.HashMap; import java.util.Map; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.springframework.stereotype.Repository; /** Data repository to keep or store data. */ diff --git a/polling-publisher/pom.xml b/polling-publisher/pom.xml index 7cf4c83bae7d..778fd7b37d3d 100644 --- a/polling-publisher/pom.xml +++ b/polling-publisher/pom.xml @@ -83,11 +83,11 @@ ${spring-boot.version} - + - javax.annotation - javax.annotation-api - 1.3.2 + jakarta.annotation + jakarta.annotation-api + 3.0.0 diff --git a/repository/src/main/java/com/iluwatar/repository/AppConfig.java b/repository/src/main/java/com/iluwatar/repository/AppConfig.java index 121399fcdaf0..b1f628a03994 100644 --- a/repository/src/main/java/com/iluwatar/repository/AppConfig.java +++ b/repository/src/main/java/com/iluwatar/repository/AppConfig.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Properties; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.dbcp.BasicDataSource; import org.hibernate.jpa.HibernatePersistenceProvider; diff --git a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java index 27b18d9e0ef6..227f81fd0b56 100644 --- a/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java +++ b/repository/src/test/java/com/iluwatar/repository/AppConfigTest.java @@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; diff --git a/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java b/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java index c4cab51dacb1..71aacf39d64a 100644 --- a/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java +++ b/serialized-entity/src/main/java/com/iluwatar/serializedentity/App.java @@ -26,7 +26,7 @@ import java.io.IOException; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcDataSource; diff --git a/serialized-entity/src/main/java/com/iluwatar/serializedentity/CountrySchemaSql.java b/serialized-entity/src/main/java/com/iluwatar/serializedentity/CountrySchemaSql.java index 2de487fa0308..92514e0bea32 100644 --- a/serialized-entity/src/main/java/com/iluwatar/serializedentity/CountrySchemaSql.java +++ b/serialized-entity/src/main/java/com/iluwatar/serializedentity/CountrySchemaSql.java @@ -32,7 +32,7 @@ import java.sql.Blob; import java.sql.ResultSet; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; /** Country Schema SQL Class. */ diff --git a/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java b/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java index 10f3b262d6b2..959f58a15d60 100644 --- a/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java +++ b/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java @@ -26,7 +26,7 @@ import java.sql.ResultSet; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcDataSource; diff --git a/service-layer/pom.xml b/service-layer/pom.xml index 37795dae301a..37d4370a8f30 100644 --- a/service-layer/pom.xml +++ b/service-layer/pom.xml @@ -56,11 +56,6 @@ jaxb-runtime 4.0.5 - - javax.xml.bind - jaxb-api - 2.4.0-b180830.0359 - jakarta.persistence jakarta.persistence-api diff --git a/table-module/src/main/java/com/iluwatar/tablemodule/App.java b/table-module/src/main/java/com/iluwatar/tablemodule/App.java index 4d222e852ad9..a0e1df9b72b4 100644 --- a/table-module/src/main/java/com/iluwatar/tablemodule/App.java +++ b/table-module/src/main/java/com/iluwatar/tablemodule/App.java @@ -25,7 +25,7 @@ package com.iluwatar.tablemodule; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; import org.h2.jdbcx.JdbcDataSource; diff --git a/table-module/src/main/java/com/iluwatar/tablemodule/UserTableModule.java b/table-module/src/main/java/com/iluwatar/tablemodule/UserTableModule.java index ea0b58fc3402..f5d507bf17e1 100644 --- a/table-module/src/main/java/com/iluwatar/tablemodule/UserTableModule.java +++ b/table-module/src/main/java/com/iluwatar/tablemodule/UserTableModule.java @@ -26,7 +26,7 @@ import java.sql.ResultSet; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; /** diff --git a/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java b/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java index f6b31a8589bb..c71acd79128d 100644 --- a/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java +++ b/table-module/src/test/java/com/iluwatar/tablemodule/UserTableModuleTest.java @@ -29,7 +29,7 @@ import java.sql.DriverManager; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java index 41d8cc4982f6..5c6ecc31b7f1 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/App.java @@ -25,7 +25,7 @@ package com.iluwatar.transactionscript; import java.util.List; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java b/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java index 13173a01f041..9bab4fcab5b3 100644 --- a/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java +++ b/transaction-script/src/main/java/com/iluwatar/transactionscript/HotelDaoImpl.java @@ -33,7 +33,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.extern.slf4j.Slf4j; /** Implementation of database operations for Hotel class. */ diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java index cce65f594170..a8fddc88b338 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelDaoImplTest.java @@ -35,7 +35,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; diff --git a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java index b555cce8ca98..82a0e0a2d8a1 100644 --- a/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java +++ b/transaction-script/src/test/java/com/iluwatar/transactionscript/HotelTest.java @@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import javax.sql.DataSource; +import jakarta.sql.DataSource; import lombok.SneakyThrows; import org.h2.jdbcx.JdbcDataSource; import org.junit.jupiter.api.BeforeEach; From a76f8856562cd945587ca44ead9546191005ab19 Mon Sep 17 00:00:00 2001 From: orbisai0security Date: Tue, 9 Jun 2026 05:16:41 +0000 Subject: [PATCH 3/4] Apply code changes: It's not going to work without software changes @o... --- .../cqrs/commandes/CommandServiceImpl.java | 22 +++++++++---------- .../cqrs/queries/QueryServiceImpl.java | 18 +++++++++------ 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java index b4a368c98319..166d56bd93e1 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/commandes/CommandServiceImpl.java @@ -40,9 +40,9 @@ public class CommandServiceImpl implements CommandService { private Author getAuthorByUsername(String username) { Author author; try (var session = sessionFactory.openSession()) { - var query = session.createQuery("from Author where username=:username"); + var query = session.createQuery("from Author where username=:username", Author.class); query.setParameter("username", username); - author = (Author) query.uniqueResult(); + author = query.uniqueResult(); } if (author == null) { HibernateUtil.getSessionFactory().close(); @@ -54,9 +54,9 @@ private Author getAuthorByUsername(String username) { private Book getBookByTitle(String title) { Book book; try (var session = sessionFactory.openSession()) { - var query = session.createQuery("from Book where title=:title"); + var query = session.createQuery("from Book where title=:title", Book.class); query.setParameter("title", title); - book = (Book) query.uniqueResult(); + book = query.uniqueResult(); } if (book == null) { HibernateUtil.getSessionFactory().close(); @@ -70,7 +70,7 @@ public void authorCreated(String username, String name, String email) { var author = new Author(username, name, email); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.save(author); + session.persist(author); session.getTransaction().commit(); } } @@ -81,7 +81,7 @@ public void bookAddedToAuthor(String title, double price, String username) { var book = new Book(title, price, author); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.save(book); + session.persist(book); session.getTransaction().commit(); } } @@ -92,7 +92,7 @@ public void authorNameUpdated(String username, String name) { author.setName(name); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.update(author); + session.merge(author); session.getTransaction().commit(); } } @@ -103,7 +103,7 @@ public void authorUsernameUpdated(String oldUsername, String newUsername) { author.setUsername(newUsername); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.update(author); + session.merge(author); session.getTransaction().commit(); } } @@ -114,7 +114,7 @@ public void authorEmailUpdated(String username, String email) { author.setEmail(email); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.update(author); + session.merge(author); session.getTransaction().commit(); } } @@ -125,7 +125,7 @@ public void bookTitleUpdated(String oldTitle, String newTitle) { book.setTitle(newTitle); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.update(book); + session.merge(book); session.getTransaction().commit(); } } @@ -136,7 +136,7 @@ public void bookPriceUpdated(String title, double price) { book.setPrice(price); try (var session = sessionFactory.openSession()) { session.beginTransaction(); - session.update(book); + session.merge(book); session.getTransaction().commit(); } } diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java index 60847d1c6db6..04b5a3d64848 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/queries/QueryServiceImpl.java @@ -48,7 +48,8 @@ public Author getAuthorByUsername(String username) { Query sqlQuery = session.createQuery( "select new com.iluwatar.cqrs.dto.Author(a.name, a.email, a.username)" - + " from com.iluwatar.cqrs.domain.model.Author a where a.username=:username"); + + " from com.iluwatar.cqrs.domain.model.Author a where a.username=:username", + Author.class); sqlQuery.setParameter(AppConstants.USER_NAME, username); authorDto = sqlQuery.uniqueResult(); } @@ -62,7 +63,8 @@ public Book getBook(String title) { Query sqlQuery = session.createQuery( "select new com.iluwatar.cqrs.dto.Book(b.title, b.price)" - + " from com.iluwatar.cqrs.domain.model.Book b where b.title=:title"); + + " from com.iluwatar.cqrs.domain.model.Book b where b.title=:title", + Book.class); sqlQuery.setParameter("title", title); bookDto = sqlQuery.uniqueResult(); } @@ -77,7 +79,8 @@ public List getAuthorBooks(String username) { session.createQuery( "select new com.iluwatar.cqrs.dto.Book(b.title, b.price)" + " from com.iluwatar.cqrs.domain.model.Author a, com.iluwatar.cqrs.domain.model.Book b " - + "where b.author.id = a.id and a.username=:username"); + + "where b.author.id = a.id and a.username=:username", + Book.class); sqlQuery.setParameter(AppConstants.USER_NAME, username); bookDtos = sqlQuery.list(); } @@ -92,9 +95,10 @@ public BigInteger getAuthorBooksCount(String username) { session.createNativeQuery( "SELECT count(b.title)" + " FROM Book b, Author a" - + " where b.author_id = a.id and a.username=:username"); + + " where b.author_id = a.id and a.username=:username", + Long.class); sqlQuery.setParameter(AppConstants.USER_NAME, username); - bookcount = (BigInteger) sqlQuery.uniqueResult(); + bookcount = BigInteger.valueOf(sqlQuery.uniqueResult()); } return bookcount; } @@ -103,8 +107,8 @@ public BigInteger getAuthorBooksCount(String username) { public BigInteger getAuthorsCount() { BigInteger authorcount; try (var session = sessionFactory.openSession()) { - var sqlQuery = session.createNativeQuery("SELECT count(id) from Author"); - authorcount = (BigInteger) sqlQuery.uniqueResult(); + var sqlQuery = session.createNativeQuery("SELECT count(id) from Author", Long.class); + authorcount = BigInteger.valueOf(sqlQuery.uniqueResult()); } return authorcount; } From 4929b684a4709c49437a83a5268dc04e304be02f Mon Sep 17 00:00:00 2001 From: orbisai0security Date: Tue, 9 Jun 2026 07:32:25 +0000 Subject: [PATCH 4/4] Apply code changes: @orbisai0security can you address code review comm... --- .../src/main/java/com/iluwatar/cqrs/domain/model/Author.java | 3 ++- .../src/main/java/com/iluwatar/cqrs/domain/model/Book.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java index aeeaf037174b..f3aaf9d4cd53 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java @@ -28,6 +28,7 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.Column; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -41,7 +42,7 @@ public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; - + @Column(unique = true) private String username; private String name; private String email; diff --git a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java index f4b29fef356a..00f07887ca93 100644 --- a/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java +++ b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Book.java @@ -28,6 +28,7 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.Column; import jakarta.persistence.ManyToOne; import lombok.Getter; import lombok.Setter; @@ -45,7 +46,7 @@ public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; - + @Column(unique = true) private String title; private double price; @ManyToOne private Author author;