From 9c4473d68760c87e29053aa5265bba22e29cf4f4 Mon Sep 17 00:00:00 2001 From: timis1 <12120641+timis1@users.noreply.github.com> Date: Fri, 19 May 2023 09:53:28 +0300 Subject: [PATCH] JAVA-20166 Migrating spring-date-eclipselink (#13959) * JAVA-20166 Migrating spring-date-eclipselink * JAVA-20166 Fix failed tests address already bind * JAVA-20166 Migrating spring-date-couchbase-2 * JAVA-20166 Replace with optional instead of returning null --------- Co-authored-by: timis1 --- persistence-modules/pom.xml | 4 +- .../spring-data-couchbase-2/pom.xml | 21 +++--- .../spring/data/couchbase/model/Campus.java | 5 +- .../spring/data/couchbase/model/Person.java | 5 +- .../spring/data/couchbase/model/Student.java | 11 ++-- .../repos/CustomStudentRepositoryImpl.java | 6 +- .../service/PersonRepositoryService.java | 7 +- .../data/couchbase/service/PersonService.java | 3 +- .../service/PersonTemplateService.java | 21 +++--- .../service/StudentRepositoryService.java | 7 +- .../couchbase/service/StudentService.java | 3 +- .../service/StudentTemplateService.java | 21 +++--- .../couchbase2b/service/CampusService.java | 3 +- .../service/CampusServiceImpl.java | 5 +- .../couchbase2b/service/PersonService.java | 3 +- .../service/PersonServiceImpl.java | 7 +- .../couchbase2b/service/StudentService.java | 3 +- .../service/StudentServiceImpl.java | 7 +- .../CustomTypeKeyCouchbaseConfig.java | 15 +++++ .../data/couchbase/MyCouchbaseConfig.java | 28 ++++---- .../ReadYourOwnWritesCouchbaseConfig.java | 6 +- .../service/PersonServiceLiveTest.java | 31 +++++---- .../service/StudentServiceLiveTest.java | 41 ++++++------ .../MultiBucketCouchbaseConfig.java | 66 +++++++++++-------- .../service/CampusServiceImplLiveTest.java | 21 +++--- .../service/PersonServiceImplLiveTest.java | 31 +++++---- .../service/StudentServiceImplLiveTest.java | 41 ++++++------ .../spring-data-eclipselink/pom.xml | 6 +- .../springdata/JpaConfiguration.java | 4 +- .../eclipselink/springdata/model/Person.java | 8 +-- .../pessimisticlocking/Address.java | 2 +- .../springdata/pessimisticlocking/Course.java | 8 +-- .../pessimisticlocking/Customer.java | 8 +-- .../pessimisticlocking/Employee.java | 2 +- .../pessimisticlocking/Individual.java | 8 +-- .../pessimisticlocking/Student.java | 6 +- .../PessimisticLockScopesIntegrationTest.java | 4 +- pom.xml | 2 +- .../client/ProductClient.java | 2 +- .../client/ProductClientUnitTest.java | 4 +- 40 files changed, 266 insertions(+), 220 deletions(-) diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml index 06b549b235..ba9ef9eef2 100644 --- a/persistence-modules/pom.xml +++ b/persistence-modules/pom.xml @@ -71,9 +71,9 @@ spring-data-cassandra-test spring-data-cosmosdb - + spring-data-couchbase-2 spring-data-dynamodb - + spring-data-eclipselink spring-data-elasticsearch diff --git a/persistence-modules/spring-data-couchbase-2/pom.xml b/persistence-modules/spring-data-couchbase-2/pom.xml index c860f809fd..deb7d3b524 100644 --- a/persistence-modules/spring-data-couchbase-2/pom.xml +++ b/persistence-modules/spring-data-couchbase-2/pom.xml @@ -57,23 +57,22 @@ test - javax.el - javax.el-api - ${javax.el.version} + org.glassfish.expressly + expressly + 5.0.0 - org.glassfish - javax.el - ${javax.el.version} + jakarta.annotation + jakarta.annotation-api + 2.1.1 - 4.3.4.RELEASE - 2.1.5.RELEASE - 5.3.3.Final - 2.9.6 - 3.0.0 + 6.0.6 + 5.0.3 + 8.0.0.Final + 2.12.2 \ No newline at end of file diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java index d710a35796..898ccc9562 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Campus.java @@ -1,13 +1,12 @@ package com.baeldung.spring.data.couchbase.model; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import org.springframework.data.annotation.Id; import org.springframework.data.couchbase.core.mapping.Document; +import org.springframework.data.couchbase.core.mapping.Field; import org.springframework.data.geo.Point; -import com.couchbase.client.java.repository.annotation.Field; - @Document public class Campus { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java index 1e081f01da..180c089f94 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Person.java @@ -1,12 +1,11 @@ package com.baeldung.spring.data.couchbase.model; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import org.joda.time.DateTime; import org.springframework.data.annotation.Id; import org.springframework.data.couchbase.core.mapping.Document; - -import com.couchbase.client.java.repository.annotation.Field; +import org.springframework.data.couchbase.core.mapping.Field; @Document public class Person { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java index e979eca864..8c03f66bb2 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/model/Student.java @@ -1,16 +1,15 @@ package com.baeldung.spring.data.couchbase.model; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Past; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Past; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import org.joda.time.DateTime; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; import org.springframework.data.couchbase.core.mapping.Document; - -import com.couchbase.client.java.repository.annotation.Field; +import org.springframework.data.couchbase.core.mapping.Field; @Document public class Student { diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java index c4742ac44a..ce20e0cd49 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/repos/CustomStudentRepositoryImpl.java @@ -5,9 +5,7 @@ import java.util.List; import com.baeldung.spring.data.couchbase.model.Student; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.couchbase.core.CouchbaseTemplate; - -import com.couchbase.client.java.view.Stale; -import com.couchbase.client.java.view.ViewQuery; +import org.springframework.data.couchbase.core.query.QueryCriteria; public class CustomStudentRepositoryImpl implements CustomStudentRepository { @@ -17,6 +15,6 @@ public class CustomStudentRepositoryImpl implements CustomStudentRepository { private CouchbaseTemplate template; public List findByFirstNameStartsWith(String s) { - return template.findByView(ViewQuery.from(DESIGN_DOC, "byFirstName").startKey(s).stale(Stale.FALSE), Student.class); + return template.findByQuery(Student.class).matching(QueryCriteria.where("firstName").startingWith(s)).all(); } } diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java index 4051585e31..5e1c2a2cb8 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonRepositoryService.java @@ -3,6 +3,7 @@ package com.baeldung.spring.data.couchbase.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Person; import com.baeldung.spring.data.couchbase.repos.PersonRepository; @@ -22,12 +23,12 @@ public class PersonRepositoryService implements PersonService { this.repo = repo; } - public Person findOne(String id) { - return repo.findOne(id); + public Optional findOne(String id) { + return repo.findById(id); } public List findAll() { - List people = new ArrayList(); + List people = new ArrayList<>(); Iterator it = repo.findAll().iterator(); while (it.hasNext()) { people.add(it.next()); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java index f321eba94e..975af7f4a0 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonService.java @@ -1,12 +1,13 @@ package com.baeldung.spring.data.couchbase.service; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Person; public interface PersonService { - Person findOne(String id); + Optional findOne(String id); List findAll(); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java index 5e49465a25..3be9cb9416 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/PersonTemplateService.java @@ -1,6 +1,9 @@ package com.baeldung.spring.data.couchbase.service; +import static org.springframework.data.couchbase.core.query.QueryCriteria.where; + import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Person; import org.joda.time.DateTime; @@ -9,8 +12,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.stereotype.Service; -import com.couchbase.client.java.view.ViewQuery; - @Service @Qualifier("PersonTemplateService") public class PersonTemplateService implements PersonService { @@ -24,33 +25,33 @@ public class PersonTemplateService implements PersonService { this.template = template; } - public Person findOne(String id) { - return template.findById(id, Person.class); + public Optional findOne(String id) { + return Optional.of(template.findById(Person.class).one(id)); } public List findAll() { - return template.findByView(ViewQuery.from(DESIGN_DOC, "all"), Person.class); + return template.findByQuery(Person.class).all(); } public List findByFirstName(String firstName) { - return template.findByView(ViewQuery.from(DESIGN_DOC, "byFirstName"), Person.class); + return template.findByQuery(Person.class).matching(where("firstName").is(firstName)).all(); } public List findByLastName(String lastName) { - return template.findByView(ViewQuery.from(DESIGN_DOC, "byLastName"), Person.class); + return template.findByQuery(Person.class).matching(where("lastName").is(lastName)).all(); } public void create(Person person) { person.setCreated(DateTime.now()); - template.insert(person); + template.insertById(Person.class).one(person); } public void update(Person person) { person.setUpdated(DateTime.now()); - template.update(person); + template.removeById(Person.class).oneEntity(person); } public void delete(Person person) { - template.remove(person); + template.removeById(Person.class).oneEntity(person); } } diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java index ff9657260a..8a49ae075c 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentRepositoryService.java @@ -3,6 +3,7 @@ package com.baeldung.spring.data.couchbase.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Student; import com.baeldung.spring.data.couchbase.repos.StudentRepository; @@ -22,12 +23,12 @@ public class StudentRepositoryService implements StudentService { this.repo = repo; } - public Student findOne(String id) { - return repo.findOne(id); + public Optional findOne(String id) { + return repo.findById(id); } public List findAll() { - List people = new ArrayList(); + List people = new ArrayList<>(); Iterator it = repo.findAll().iterator(); while (it.hasNext()) { people.add(it.next()); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java index aa99a770cd..c3512794bd 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentService.java @@ -1,12 +1,13 @@ package com.baeldung.spring.data.couchbase.service; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Student; public interface StudentService { - Student findOne(String id); + Optional findOne(String id); List findAll(); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java index 9110f68276..59115a2149 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase/service/StudentTemplateService.java @@ -1,6 +1,9 @@ package com.baeldung.spring.data.couchbase.service; +import static org.springframework.data.couchbase.core.query.QueryCriteria.where; + import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Student; import org.joda.time.DateTime; @@ -9,8 +12,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.couchbase.core.CouchbaseTemplate; import org.springframework.stereotype.Service; -import com.couchbase.client.java.view.ViewQuery; - @Service @Qualifier("StudentTemplateService") public class StudentTemplateService implements StudentService { @@ -24,33 +25,33 @@ public class StudentTemplateService implements StudentService { this.template = template; } - public Student findOne(String id) { - return template.findById(id, Student.class); + public Optional findOne(String id) { + return Optional.of(template.findById(Student.class).one(id)); } public List findAll() { - return template.findByView(ViewQuery.from(DESIGN_DOC, "all"), Student.class); + return template.findByQuery(Student.class).all(); } public List findByFirstName(String firstName) { - return template.findByView(ViewQuery.from(DESIGN_DOC, "byFirstName"), Student.class); + return template.findByQuery(Student.class).matching(where("firstName").is(firstName)).all(); } public List findByLastName(String lastName) { - return template.findByView(ViewQuery.from(DESIGN_DOC, "byLastName"), Student.class); + return template.findByQuery(Student.class).matching(where("lastName").is(lastName)).all(); } public void create(Student student) { student.setCreated(DateTime.now()); - template.insert(student); + template.insertById(Student.class).one(student); } public void update(Student student) { student.setUpdated(DateTime.now()); - template.update(student); + template.upsertById(Student.class).one(student); } public void delete(Student student) { - template.remove(student); + template.removeById(Student.class).oneEntity(student); } } diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java index 567ffa2a7f..6777fe4d95 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusService.java @@ -1,5 +1,6 @@ package com.baeldung.spring.data.couchbase2b.service; +import java.util.Optional; import java.util.Set; import com.baeldung.spring.data.couchbase.model.Campus; @@ -8,7 +9,7 @@ import org.springframework.data.geo.Point; public interface CampusService { - Campus find(String id); + Optional find(String id); Set findByName(String name); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java index 03e2dced1b..9668da29e3 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImpl.java @@ -2,6 +2,7 @@ package com.baeldung.spring.data.couchbase2b.service; import java.util.HashSet; import java.util.Iterator; +import java.util.Optional; import java.util.Set; import com.baeldung.spring.data.couchbase2b.repos.CampusRepository; @@ -22,8 +23,8 @@ public class CampusServiceImpl implements CampusService { } @Override - public Campus find(String id) { - return repo.findOne(id); + public Optional find(String id) { + return repo.findById(id); } @Override diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java index 7dc30ead11..1e7091bdf4 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonService.java @@ -1,12 +1,13 @@ package com.baeldung.spring.data.couchbase2b.service; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Person; public interface PersonService { - Person findOne(String id); + Optional findOne(String id); List findAll(); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java index af08bd4ca8..bc6c5f2673 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImpl.java @@ -3,6 +3,7 @@ package com.baeldung.spring.data.couchbase2b.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase2b.repos.PersonRepository; import com.baeldung.spring.data.couchbase.model.Person; @@ -20,12 +21,12 @@ public class PersonServiceImpl implements PersonService { this.repo = repo; } - public Person findOne(String id) { - return repo.findOne(id); + public Optional findOne(String id) { + return repo.findById(id); } public List findAll() { - List people = new ArrayList(); + List people = new ArrayList<>(); Iterator it = repo.findAll().iterator(); while (it.hasNext()) { people.add(it.next()); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java index 3f318e1af1..7c408f4c75 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentService.java @@ -1,12 +1,13 @@ package com.baeldung.spring.data.couchbase2b.service; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Student; public interface StudentService { - Student findOne(String id); + Optional findOne(String id); List findAll(); diff --git a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java index 53feaead10..f2889e8caa 100644 --- a/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java +++ b/persistence-modules/spring-data-couchbase-2/src/main/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImpl.java @@ -3,6 +3,7 @@ package com.baeldung.spring.data.couchbase2b.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase2b.repos.StudentRepository; import com.baeldung.spring.data.couchbase.model.Student; @@ -20,12 +21,12 @@ public class StudentServiceImpl implements StudentService { this.repo = repo; } - public Student findOne(String id) { - return repo.findOne(id); + public Optional findOne(String id) { + return repo.findById(id); } public List findAll() { - List people = new ArrayList(); + List people = new ArrayList<>(); Iterator it = repo.findAll().iterator(); while (it.hasNext()) { people.add(it.next()); diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java index 403c012194..eacecb4e1e 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/CustomTypeKeyCouchbaseConfig.java @@ -4,6 +4,21 @@ import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter public class CustomTypeKeyCouchbaseConfig extends MyCouchbaseConfig { + @Override + public String getConnectionString() { + return NODE_LIST; + } + + @Override + public String getUserName() { + return BUCKET_USERNAME; + } + + @Override + public String getPassword() { + return BUCKET_PASSWORD; + } + @Override public String typeKey() { return MappingCouchbaseConverter.TYPEKEY_SYNCGATEWAY_COMPATIBLE; diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java index 5a2180f4b8..5412afb493 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/MyCouchbaseConfig.java @@ -1,42 +1,46 @@ package com.baeldung.spring.data.couchbase; -import java.util.Arrays; -import java.util.List; - import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener; -import org.springframework.data.couchbase.core.query.Consistency; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; +import com.couchbase.client.java.query.QueryScanConsistency; + @Configuration @EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase" }) public class MyCouchbaseConfig extends AbstractCouchbaseConfiguration { - public static final List NODE_LIST = Arrays.asList("localhost"); + public static final String NODE_LIST = "localhost"; public static final String BUCKET_NAME = "baeldung"; - public static final String BUCKET_PASSWORD = ""; + public static final String BUCKET_USERNAME = "baeldung"; + public static final String BUCKET_PASSWORD = "baeldung"; @Override - protected List getBootstrapHosts() { + public String getConnectionString() { return NODE_LIST; } @Override - protected String getBucketName() { - return BUCKET_NAME; + public String getUserName() { + return BUCKET_USERNAME; } @Override - protected String getBucketPassword() { + public String getPassword() { return BUCKET_PASSWORD; } @Override - protected Consistency getDefaultConsistency() { - return Consistency.READ_YOUR_OWN_WRITES; + public String getBucketName() { + return BUCKET_NAME; + } + + @Override + public QueryScanConsistency getDefaultConsistency() { + return QueryScanConsistency.REQUEST_PLUS; } @Bean diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java index b989bb39d8..33a6c4f091 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/ReadYourOwnWritesCouchbaseConfig.java @@ -1,11 +1,11 @@ package com.baeldung.spring.data.couchbase; -import org.springframework.data.couchbase.core.query.Consistency; +import com.couchbase.client.java.query.QueryScanConsistency; public class ReadYourOwnWritesCouchbaseConfig extends MyCouchbaseConfig { @Override - public Consistency getDefaultConsistency() { - return Consistency.READ_YOUR_OWN_WRITES; + public QueryScanConsistency getDefaultConsistency() { + return QueryScanConsistency.REQUEST_PLUS; } } diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java index 804bbdd2c8..0275587ac3 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/PersonServiceLiveTest.java @@ -1,11 +1,15 @@ package com.baeldung.spring.data.couchbase.service; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.BUCKET_PASSWORD; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.BUCKET_USERNAME; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.NODE_LIST; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.IntegrationTest; import com.baeldung.spring.data.couchbase.MyCouchbaseConfig; @@ -16,9 +20,8 @@ import org.junit.Test; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.CouchbaseCluster; -import com.couchbase.client.java.document.JsonDocument; -import com.couchbase.client.java.document.json.JsonObject; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; public abstract class PersonServiceLiveTest extends IntegrationTest { @@ -27,32 +30,32 @@ public abstract class PersonServiceLiveTest extends IntegrationTest { static final String smith = "Smith"; static final String johnSmithId = "person:" + john + ":" + smith; static final Person johnSmith = new Person(johnSmithId, john, smith); - static final JsonObject jsonJohnSmith = JsonObject.empty().put(typeField, Person.class.getName()).put("firstName", john).put("lastName", smith).put("created", DateTime.now().getMillis()); + static final JsonObject jsonJohnSmith = JsonObject.create().put(typeField, Person.class.getName()).put("firstName", john).put("lastName", smith).put("created", DateTime.now().getMillis()); static final String foo = "Foo"; static final String bar = "Bar"; static final String foobarId = "person:" + foo + ":" + bar; static final Person foobar = new Person(foobarId, foo, bar); - static final JsonObject jsonFooBar = JsonObject.empty().put(typeField, Person.class.getName()).put("firstName", foo).put("lastName", bar).put("created", DateTime.now().getMillis()); + static final JsonObject jsonFooBar = JsonObject.create().put(typeField, Person.class.getName()).put("firstName", foo).put("lastName", bar).put("created", DateTime.now().getMillis()); PersonService personService; @BeforeClass public static void setupBeforeClass() { - final Cluster cluster = CouchbaseCluster.create(MyCouchbaseConfig.NODE_LIST); - final Bucket bucket = cluster.openBucket(MyCouchbaseConfig.BUCKET_NAME, MyCouchbaseConfig.BUCKET_PASSWORD); - bucket.upsert(JsonDocument.create(johnSmithId, jsonJohnSmith)); - bucket.upsert(JsonDocument.create(foobarId, jsonFooBar)); - bucket.close(); + final Cluster cluster = Cluster.connect(NODE_LIST, BUCKET_USERNAME, BUCKET_PASSWORD); + final Bucket bucket = cluster.bucket(MyCouchbaseConfig.BUCKET_NAME); + final Collection collection = bucket.defaultCollection(); + collection.upsert(johnSmithId, JsonObject.create().put(johnSmithId, jsonJohnSmith)); + collection.upsert(foobarId, JsonObject.create().put(foobarId, jsonFooBar)); cluster.disconnect(); } @Test public void whenFindingPersonByJohnSmithId_thenReturnsJohnSmith() { - final Person actualPerson = personService.findOne(johnSmithId); - assertNotNull(actualPerson); - assertNotNull(actualPerson.getCreated()); - assertEquals(johnSmith, actualPerson); + final Optional actualPerson = personService.findOne(johnSmithId); + assertTrue(actualPerson.isPresent()); + assertNotNull(actualPerson.get().getCreated()); + assertEquals(johnSmith, actualPerson.get()); } @Test diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java index c13b4930ca..a502d46124 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase/service/StudentServiceLiveTest.java @@ -1,13 +1,17 @@ package com.baeldung.spring.data.couchbase.service; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.BUCKET_PASSWORD; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.BUCKET_USERNAME; +import static com.baeldung.spring.data.couchbase.MyCouchbaseConfig.NODE_LIST; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; +import java.util.Optional; -import javax.validation.ConstraintViolationException; +import jakarta.validation.ConstraintViolationException; import com.baeldung.spring.data.couchbase.IntegrationTest; import com.baeldung.spring.data.couchbase.MyCouchbaseConfig; @@ -18,9 +22,8 @@ import org.junit.Test; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.CouchbaseCluster; -import com.couchbase.client.java.document.JsonDocument; -import com.couchbase.client.java.document.json.JsonObject; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; public abstract class StudentServiceLiveTest extends IntegrationTest { @@ -30,24 +33,24 @@ public abstract class StudentServiceLiveTest extends IntegrationTest { static final String joeCollegeId = "student:" + joe + ":" + college; static final DateTime joeCollegeDob = DateTime.now().minusYears(21); static final Student joeCollege = new Student(joeCollegeId, joe, college, joeCollegeDob); - static final JsonObject jsonJoeCollege = JsonObject.empty().put(typeField, Student.class.getName()).put("firstName", joe).put("lastName", college).put("created", DateTime.now().getMillis()).put("version", 1); + static final JsonObject jsonJoeCollege = JsonObject.create().put(typeField, Student.class.getName()).put("firstName", joe).put("lastName", college).put("created", DateTime.now().getMillis()).put("version", 1); static final String judy = "Judy"; static final String jetson = "Jetson"; static final String judyJetsonId = "student:" + judy + ":" + jetson; static final DateTime judyJetsonDob = DateTime.now().minusYears(19).minusMonths(5).minusDays(3); static final Student judyJetson = new Student(judyJetsonId, judy, jetson, judyJetsonDob); - static final JsonObject jsonJudyJetson = JsonObject.empty().put(typeField, Student.class.getName()).put("firstName", judy).put("lastName", jetson).put("created", DateTime.now().getMillis()).put("version", 1); + static final JsonObject jsonJudyJetson = JsonObject.create().put(typeField, Student.class.getName()).put("firstName", judy).put("lastName", jetson).put("created", DateTime.now().getMillis()).put("version", 1); StudentService studentService; @BeforeClass public static void setupBeforeClass() { - Cluster cluster = CouchbaseCluster.create(MyCouchbaseConfig.NODE_LIST); - Bucket bucket = cluster.openBucket(MyCouchbaseConfig.BUCKET_NAME, MyCouchbaseConfig.BUCKET_PASSWORD); - bucket.upsert(JsonDocument.create(joeCollegeId, jsonJoeCollege)); - bucket.upsert(JsonDocument.create(judyJetsonId, jsonJudyJetson)); - bucket.close(); + final Cluster cluster = Cluster.connect(NODE_LIST, BUCKET_USERNAME, BUCKET_PASSWORD); + final Bucket bucket = cluster.bucket(MyCouchbaseConfig.BUCKET_NAME); + final Collection collection = bucket.defaultCollection(); + collection.upsert(joeCollegeId, JsonObject.create().put(joeCollegeId, jsonJoeCollege)); + collection.upsert(judyJetsonId, JsonObject.create().put(judyJetsonId, jsonJudyJetson)); cluster.disconnect(); } @@ -59,10 +62,10 @@ public abstract class StudentServiceLiveTest extends IntegrationTest { String id = "student:" + firstName + ":" + lastName; Student expectedStudent = new Student(id, firstName, lastName, dateOfBirth); studentService.create(expectedStudent); - Student actualStudent = studentService.findOne(id); - assertNotNull(actualStudent.getCreated()); - assertNotNull(actualStudent); - assertEquals(expectedStudent.getId(), actualStudent.getId()); + Optional actualStudent = studentService.findOne(id); + assertTrue(actualStudent.isPresent()); + assertNotNull(actualStudent.get().getCreated()); + assertEquals(expectedStudent.getId(), actualStudent.get().getId()); } @Test(expected = ConstraintViolationException.class) @@ -87,10 +90,10 @@ public abstract class StudentServiceLiveTest extends IntegrationTest { @Test public void whenFindingStudentByJohnSmithId_thenReturnsJohnSmith() { - Student actualStudent = studentService.findOne(joeCollegeId); - assertNotNull(actualStudent); - assertNotNull(actualStudent.getCreated()); - assertEquals(joeCollegeId, actualStudent.getId()); + Optional actualStudent = studentService.findOne(joeCollegeId); + assertTrue(actualStudent.isPresent()); + assertNotNull(actualStudent.get().getCreated()); + assertEquals(joeCollegeId, actualStudent.get().getId()); } @Test diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java index 488819aaf5..bfa422037f 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/MultiBucketCouchbaseConfig.java @@ -1,54 +1,47 @@ package com.baeldung.spring.data.couchbase2b; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import com.baeldung.spring.data.couchbase.model.Campus; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.couchbase.SimpleCouchbaseClientFactory; import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration; import org.springframework.data.couchbase.core.CouchbaseTemplate; +import org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter; import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbaseEventListener; -import org.springframework.data.couchbase.core.query.Consistency; import org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories; import org.springframework.data.couchbase.repository.config.RepositoryOperationsMapping; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; +import com.couchbase.client.core.env.PasswordAuthenticator; import com.couchbase.client.java.Bucket; +import com.couchbase.client.java.env.ClusterEnvironment; @Configuration @EnableCouchbaseRepositories(basePackages = { "com.baeldung.spring.data.couchbase2b" }) public class MultiBucketCouchbaseConfig extends AbstractCouchbaseConfiguration { - public static final List NODE_LIST = Arrays.asList("localhost"); + public static final String NODE_LIST = "localhost"; public static final String DEFAULT_BUCKET_NAME = "baeldung"; - public static final String DEFAULT_BUCKET_PASSWORD = ""; + public static final String DEFAULT_BUCKET_USERNAME = "baeldung"; + public static final String DEFAULT_BUCKET_PASSWORD = "baeldung"; - @Override - protected List getBootstrapHosts() { - return NODE_LIST; - } - - @Override - protected String getBucketName() { - return DEFAULT_BUCKET_NAME; - } - - @Override - protected String getBucketPassword() { - return DEFAULT_BUCKET_PASSWORD; - } + @Autowired + private MappingCouchbaseConverter mappingCouchbaseConverter; @Bean - public Bucket campusBucket() throws Exception { - return couchbaseCluster().openBucket("baeldung2", ""); + public Bucket campusBucket() { + return couchbaseCluster(ClusterEnvironment.create()).bucket("baeldung2"); } @Bean(name = "campusTemplate") - public CouchbaseTemplate campusTemplate() throws Exception { - CouchbaseTemplate template = new CouchbaseTemplate(couchbaseClusterInfo(), campusBucket(), mappingCouchbaseConverter(), translationService()); - template.setDefaultConsistency(getDefaultConsistency()); - return template; + public CouchbaseTemplate campusTemplate() { + return new CouchbaseTemplate(new SimpleCouchbaseClientFactory(NODE_LIST, + PasswordAuthenticator.create(DEFAULT_BUCKET_USERNAME, DEFAULT_BUCKET_PASSWORD), DEFAULT_BUCKET_NAME), mappingCouchbaseConverter); } @Override @@ -60,11 +53,6 @@ public class MultiBucketCouchbaseConfig extends AbstractCouchbaseConfiguration { } } - @Override - protected Consistency getDefaultConsistency() { - return Consistency.READ_YOUR_OWN_WRITES; - } - @Bean public LocalValidatorFactoryBean localValidatorFactoryBean() { return new LocalValidatorFactoryBean(); @@ -74,4 +62,24 @@ public class MultiBucketCouchbaseConfig extends AbstractCouchbaseConfiguration { public ValidatingCouchbaseEventListener validatingCouchbaseEventListener() { return new ValidatingCouchbaseEventListener(localValidatorFactoryBean()); } + + @Override + public String getConnectionString() { + return NODE_LIST; + } + + @Override + public String getUserName() { + return DEFAULT_BUCKET_USERNAME; + } + + @Override + public String getPassword() { + return DEFAULT_BUCKET_PASSWORD; + } + + @Override + public String getBucketName() { + return DEFAULT_BUCKET_NAME; + } } diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java index e94c09e6cd..08adbfd016 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/CampusServiceImplLiveTest.java @@ -5,9 +5,10 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import java.util.Optional; import java.util.Set; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import com.baeldung.spring.data.couchbase.model.Campus; import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; @@ -46,7 +47,7 @@ public class CampusServiceImplLiveTest extends MultiBucketLiveTest { private final Point NewYorkCity = new Point(74.0059, 40.7128); @PostConstruct - private void loadCampuses() throws Exception { + private void loadCampuses() { campusRepo.save(Brown); campusRepo.save(Columbia); campusRepo.save(Cornell); @@ -58,7 +59,7 @@ public class CampusServiceImplLiveTest extends MultiBucketLiveTest { } @Test - public final void givenNameHarvard_whenFindByName_thenReturnsHarvard() throws Exception { + public final void givenNameHarvard_whenFindByName_thenReturnsHarvard() { Set campuses = campusService.findByName(Harvard.getName()); assertNotNull(campuses); assertFalse(campuses.isEmpty()); @@ -67,14 +68,14 @@ public class CampusServiceImplLiveTest extends MultiBucketLiveTest { } @Test - public final void givenHarvardId_whenFind_thenReturnsHarvard() throws Exception { - Campus actual = campusService.find(Harvard.getId()); - assertNotNull(actual); - assertEquals(Harvard, actual); + public final void givenHarvardId_whenFind_thenReturnsHarvard() { + Optional actual = campusService.find(Harvard.getId()); + assertTrue(actual.isPresent()); + assertEquals(Harvard, actual.get()); } @Test - public final void whenFindAll_thenReturnsAll() throws Exception { + public final void whenFindAll_thenReturnsAll() { Set campuses = campusService.findAll(); assertTrue(campuses.contains(Brown)); assertTrue(campuses.contains(Columbia)); @@ -87,7 +88,7 @@ public class CampusServiceImplLiveTest extends MultiBucketLiveTest { } @Test - public final void whenFindByLocationNearBoston_thenResultContainsHarvard() throws Exception { + public final void whenFindByLocationNearBoston_thenResultContainsHarvard() { Set campuses = campusService.findByLocationNear(Boston, new Distance(1, Metrics.NEUTRAL)); assertFalse(campuses.isEmpty()); assertTrue(campuses.contains(Harvard)); @@ -95,7 +96,7 @@ public class CampusServiceImplLiveTest extends MultiBucketLiveTest { } @Test - public final void whenFindByLocationNearNewYorkCity_thenResultContainsColumbia() throws Exception { + public final void whenFindByLocationNearNewYorkCity_thenResultContainsColumbia() { Set campuses = campusService.findByLocationNear(NewYorkCity, new Distance(1, Metrics.NEUTRAL)); assertFalse(campuses.isEmpty()); assertTrue(campuses.contains(Columbia)); diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java index 3f98c1950a..28477e9d14 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/PersonServiceImplLiveTest.java @@ -1,11 +1,15 @@ package com.baeldung.spring.data.couchbase2b.service; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.DEFAULT_BUCKET_PASSWORD; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.DEFAULT_BUCKET_USERNAME; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.NODE_LIST; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; +import java.util.Optional; import com.baeldung.spring.data.couchbase.model.Person; import com.baeldung.spring.data.couchbase2b.MultiBucketLiveTest; @@ -17,9 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.CouchbaseCluster; -import com.couchbase.client.java.document.JsonDocument; -import com.couchbase.client.java.document.json.JsonObject; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; public class PersonServiceImplLiveTest extends MultiBucketLiveTest { @@ -28,33 +31,33 @@ public class PersonServiceImplLiveTest extends MultiBucketLiveTest { static final String smith = "Smith"; static final String johnSmithId = "person:" + john + ":" + smith; static final Person johnSmith = new Person(johnSmithId, john, smith); - static final JsonObject jsonJohnSmith = JsonObject.empty().put(typeField, Person.class.getName()).put("firstName", john).put("lastName", smith).put("created", DateTime.now().getMillis()); + static final JsonObject jsonJohnSmith = JsonObject.create().put(typeField, Person.class.getName()).put("firstName", john).put("lastName", smith).put("created", DateTime.now().getMillis()); static final String foo = "Foo"; static final String bar = "Bar"; static final String foobarId = "person:" + foo + ":" + bar; static final Person foobar = new Person(foobarId, foo, bar); - static final JsonObject jsonFooBar = JsonObject.empty().put(typeField, Person.class.getName()).put("firstName", foo).put("lastName", bar).put("created", DateTime.now().getMillis()); + static final JsonObject jsonFooBar = JsonObject.create().put(typeField, Person.class.getName()).put("firstName", foo).put("lastName", bar).put("created", DateTime.now().getMillis()); @Autowired private PersonServiceImpl personService; @BeforeClass public static void setupBeforeClass() { - final Cluster cluster = CouchbaseCluster.create(MultiBucketCouchbaseConfig.NODE_LIST); - final Bucket bucket = cluster.openBucket(MultiBucketCouchbaseConfig.DEFAULT_BUCKET_NAME, MultiBucketCouchbaseConfig.DEFAULT_BUCKET_PASSWORD); - bucket.upsert(JsonDocument.create(johnSmithId, jsonJohnSmith)); - bucket.upsert(JsonDocument.create(foobarId, jsonFooBar)); - bucket.close(); + final Cluster cluster = Cluster.connect(NODE_LIST, DEFAULT_BUCKET_USERNAME, DEFAULT_BUCKET_PASSWORD); + final Bucket bucket = cluster.bucket(MultiBucketCouchbaseConfig.DEFAULT_BUCKET_NAME); + final Collection collection = bucket.defaultCollection(); + collection.upsert(johnSmithId, JsonObject.create().put(johnSmithId, jsonJohnSmith)); + collection.upsert(foobarId, JsonObject.create().put(foobarId, jsonFooBar)); cluster.disconnect(); } @Test public void whenFindingPersonByJohnSmithId_thenReturnsJohnSmith() { - final Person actualPerson = personService.findOne(johnSmithId); - assertNotNull(actualPerson); - assertNotNull(actualPerson.getCreated()); - assertEquals(johnSmith, actualPerson); + final Optional actualPerson = personService.findOne(johnSmithId); + assertTrue(actualPerson.isPresent()); + assertNotNull(actualPerson.get().getCreated()); + assertEquals(johnSmith, actualPerson.get()); } @Test diff --git a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java index 004258a37e..98cbd39788 100644 --- a/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java +++ b/persistence-modules/spring-data-couchbase-2/src/test/java/com/baeldung/spring/data/couchbase2b/service/StudentServiceImplLiveTest.java @@ -1,13 +1,17 @@ package com.baeldung.spring.data.couchbase2b.service; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.DEFAULT_BUCKET_PASSWORD; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.DEFAULT_BUCKET_USERNAME; +import static com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig.NODE_LIST; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; +import java.util.Optional; -import javax.validation.ConstraintViolationException; +import jakarta.validation.ConstraintViolationException; import com.baeldung.spring.data.couchbase.model.Student; import com.baeldung.spring.data.couchbase2b.MultiBucketCouchbaseConfig; @@ -19,9 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.CouchbaseCluster; -import com.couchbase.client.java.document.JsonDocument; -import com.couchbase.client.java.document.json.JsonObject; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; public class StudentServiceImplLiveTest extends MultiBucketLiveTest { @@ -31,25 +34,25 @@ public class StudentServiceImplLiveTest extends MultiBucketLiveTest { static final String joeCollegeId = "student:" + joe + ":" + college; static final DateTime joeCollegeDob = DateTime.now().minusYears(21); static final Student joeCollege = new Student(joeCollegeId, joe, college, joeCollegeDob); - static final JsonObject jsonJoeCollege = JsonObject.empty().put(typeField, Student.class.getName()).put("firstName", joe).put("lastName", college).put("created", DateTime.now().getMillis()).put("version", 1); + static final JsonObject jsonJoeCollege = JsonObject.create().put(typeField, Student.class.getName()).put("firstName", joe).put("lastName", college).put("created", DateTime.now().getMillis()).put("version", 1); static final String judy = "Judy"; static final String jetson = "Jetson"; static final String judyJetsonId = "student:" + judy + ":" + jetson; static final DateTime judyJetsonDob = DateTime.now().minusYears(19).minusMonths(5).minusDays(3); static final Student judyJetson = new Student(judyJetsonId, judy, jetson, judyJetsonDob); - static final JsonObject jsonJudyJetson = JsonObject.empty().put(typeField, Student.class.getName()).put("firstName", judy).put("lastName", jetson).put("created", DateTime.now().getMillis()).put("version", 1); + static final JsonObject jsonJudyJetson = JsonObject.create().put(typeField, Student.class.getName()).put("firstName", judy).put("lastName", jetson).put("created", DateTime.now().getMillis()).put("version", 1); @Autowired StudentServiceImpl studentService; @BeforeClass public static void setupBeforeClass() { - Cluster cluster = CouchbaseCluster.create(MultiBucketCouchbaseConfig.NODE_LIST); - Bucket bucket = cluster.openBucket(MultiBucketCouchbaseConfig.DEFAULT_BUCKET_NAME, MultiBucketCouchbaseConfig.DEFAULT_BUCKET_PASSWORD); - bucket.upsert(JsonDocument.create(joeCollegeId, jsonJoeCollege)); - bucket.upsert(JsonDocument.create(judyJetsonId, jsonJudyJetson)); - bucket.close(); + Cluster cluster = Cluster.connect(NODE_LIST, DEFAULT_BUCKET_USERNAME, DEFAULT_BUCKET_PASSWORD); + Bucket bucket = cluster.bucket(MultiBucketCouchbaseConfig.DEFAULT_BUCKET_NAME); + final Collection collection = bucket.defaultCollection(); + collection.upsert(joeCollegeId, JsonObject.create().put(joeCollegeId, jsonJoeCollege)); + collection.upsert(judyJetsonId, JsonObject.create().put(judyJetsonId, jsonJudyJetson)); cluster.disconnect(); } @@ -61,10 +64,10 @@ public class StudentServiceImplLiveTest extends MultiBucketLiveTest { String id = "student:" + firstName + ":" + lastName; Student expectedStudent = new Student(id, firstName, lastName, dateOfBirth); studentService.create(expectedStudent); - Student actualStudent = studentService.findOne(id); - assertNotNull(actualStudent.getCreated()); - assertNotNull(actualStudent); - assertEquals(expectedStudent.getId(), actualStudent.getId()); + Optional actualStudent = studentService.findOne(id); + assertTrue(actualStudent.isPresent()); + assertNotNull(actualStudent.get().getCreated()); + assertEquals(expectedStudent.getId(), actualStudent.get().getId()); } @Test(expected = ConstraintViolationException.class) @@ -89,10 +92,10 @@ public class StudentServiceImplLiveTest extends MultiBucketLiveTest { @Test public void whenFindingStudentByJohnSmithId_thenReturnsJohnSmith() { - Student actualStudent = studentService.findOne(joeCollegeId); - assertNotNull(actualStudent); - assertNotNull(actualStudent.getCreated()); - assertEquals(joeCollegeId, actualStudent.getId()); + Optional actualStudent = studentService.findOne(joeCollegeId); + assertTrue(actualStudent.isPresent()); + assertNotNull(actualStudent.get().getCreated()); + assertEquals(joeCollegeId, actualStudent.get().getId()); } @Test diff --git a/persistence-modules/spring-data-eclipselink/pom.xml b/persistence-modules/spring-data-eclipselink/pom.xml index c3c530d2d7..34d8a1a6f8 100644 --- a/persistence-modules/spring-data-eclipselink/pom.xml +++ b/persistence-modules/spring-data-eclipselink/pom.xml @@ -64,9 +64,11 @@ - 1.5.9.RELEASE - 2.7.0 + 3.0.4 + 4.0.1 2.1.214 + 2.0.7 + 1.4.6 \ No newline at end of file diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/JpaConfiguration.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/JpaConfiguration.java index 60ff7909be..4d3f3aa8fc 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/JpaConfiguration.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/JpaConfiguration.java @@ -21,8 +21,8 @@ import java.util.Map; @Configuration public class JpaConfiguration extends JpaBaseConfiguration { - protected JpaConfiguration(DataSource dataSource, JpaProperties properties, ObjectProvider jtaTransactionManager, ObjectProvider transactionManagerCustomizers) { - super(dataSource, properties, jtaTransactionManager, transactionManagerCustomizers); + protected JpaConfiguration(DataSource dataSource, JpaProperties properties, ObjectProvider jtaTransactionManager) { + super(dataSource, properties, jtaTransactionManager); } @Override diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/model/Person.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/model/Person.java index 75161875bd..cc4956e2fc 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/model/Person.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/model/Person.java @@ -1,9 +1,9 @@ package com.baeldung.eclipselink.springdata.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; /** * Created by adam. diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Address.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Address.java index b62889208c..474926977c 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Address.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Address.java @@ -1,6 +1,6 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.Embeddable; +import jakarta.persistence.Embeddable; @Embeddable public class Address { diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Course.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Course.java index 8d90659f3e..97b0f612d3 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Course.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Course.java @@ -1,9 +1,9 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinTable; -import javax.persistence.ManyToOne; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToOne; @Entity public class Course { diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Customer.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Customer.java index f06a676de8..c2689a25a7 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Customer.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Customer.java @@ -1,9 +1,9 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.CollectionTable; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.Id; +import jakarta.persistence.CollectionTable; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; import java.util.List; @Entity diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Employee.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Employee.java index d09b123225..67c8fbf660 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Employee.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Employee.java @@ -1,6 +1,6 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.Entity; +import jakarta.persistence.Entity; import java.math.BigDecimal; @Entity diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Individual.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Individual.java index 7edaaace54..05fd7a890d 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Individual.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Individual.java @@ -1,9 +1,9 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Inheritance; +import jakarta.persistence.InheritanceType; @Entity @Inheritance(strategy = InheritanceType.JOINED) diff --git a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Student.java b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Student.java index f613aab0f6..f8db1179fc 100644 --- a/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Student.java +++ b/persistence-modules/spring-data-eclipselink/src/main/java/com/baeldung/eclipselink/springdata/pessimisticlocking/Student.java @@ -1,8 +1,8 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToMany; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; import java.util.List; @Entity diff --git a/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/eclipselink/springdata/pessimisticlocking/PessimisticLockScopesIntegrationTest.java b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/eclipselink/springdata/pessimisticlocking/PessimisticLockScopesIntegrationTest.java index 6ee40fac9a..596229fc2d 100644 --- a/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/eclipselink/springdata/pessimisticlocking/PessimisticLockScopesIntegrationTest.java +++ b/persistence-modules/spring-data-eclipselink/src/test/java/com/baeldung/eclipselink/springdata/pessimisticlocking/PessimisticLockScopesIntegrationTest.java @@ -1,14 +1,12 @@ package com.baeldung.eclipselink.springdata.pessimisticlocking; -import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; -import javax.persistence.*; +import jakarta.persistence.*; import java.math.BigDecimal; import java.util.Arrays; import java.util.HashMap; diff --git a/pom.xml b/pom.xml index b6e5c526c5..fb40055677 100644 --- a/pom.xml +++ b/pom.xml @@ -1244,7 +1244,7 @@ 1.12.13 - + 1.7.32 1.2.7 diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java index 2927024668..ffbf258029 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/main/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClient.java @@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import com.baeldung.cloud.openfeign.defaulterrorhandling.config.FeignConfig; import com.baeldung.cloud.openfeign.defaulterrorhandling.model.Product; -@FeignClient(name = "product-client", url = "http://localhost:8084/product/", configuration = FeignConfig.class) +@FeignClient(name = "product-client", url = "http://localhost:8088/product/", configuration = FeignConfig.class) public interface ProductClient { @RequestMapping(value = "{id}", method = RequestMethod.GET) diff --git a/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java index efbe7a3771..ed4cf75890 100644 --- a/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java +++ b/spring-cloud-modules/spring-cloud-openfeign/src/test/java/com/baeldung/cloud/openfeign/defaulterrorhandling/client/ProductClientUnitTest.java @@ -34,8 +34,8 @@ public class ProductClientUnitTest { @Before public void startWireMockServer() { - wireMockServer = new WireMockServer(8084); - configureFor("localhost", 8084); + wireMockServer = new WireMockServer(8088); + configureFor("localhost", 8088); wireMockServer.start(); }