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/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/domain/model/Author.java b/command-query-responsibility-segregation/src/main/java/com/iluwatar/cqrs/domain/model/Author.java index 03155d67a30b..d4271d952dd1 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,11 @@ */ 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.Column; +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; @@ -42,7 +43,9 @@ public class Author { @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 2e2c356528e9..0d08f2235fec 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,12 @@ */ 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.Column; +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; @@ -46,7 +47,9 @@ public class Book { @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; + @Column(unique = true) private String title; + private double price; @ManyToOne private Author author; 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..0e88fae91c54 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; } 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/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/pom.xml b/pom.xml index 87aa35d6aa1e..f1051f5ee78a 100644 --- a/pom.xml +++ b/pom.xml @@ -39,8 +39,8 @@ UTF-8 - 3.4.5 - 5.11.4 + 3.5.14 + 5.12.2 5.14.2 1.5.18 2.0.17 @@ -313,6 +313,12 @@ ${system-lambda.version} test + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + org.junit.jupiter junit-jupiter-engine 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