diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/pom.xml b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/pom.xml
index 180b1a60..8245720b 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/pom.xml
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/pom.xml
@@ -11,13 +11,13 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.1.RELEASE
+ 3.0.4
- 11
- 11
+ 17
+ 17
@@ -25,11 +25,10 @@
org.springframework.boot
spring-boot-starter
-
-
-
-
-
+
+ org.springframework.data
+ spring-data-keyvalue
+
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/Main.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/Main.java
index d0d34e97..a7535258 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/Main.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/Main.java
@@ -1,21 +1,15 @@
package ru.otus.spring;
+import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.data.map.repository.config.EnableMapRepositories;
import ru.otus.spring.domain.Person;
import ru.otus.spring.repostory.PersonRepository;
-import javax.annotation.PostConstruct;
-
@SpringBootApplication
public class Main {
- public static void main(String[] args) {
- SpringApplication.run(Main.class);
- }
-
@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")
@Autowired
private PersonRepository repository;
@@ -26,4 +20,8 @@ public class Main {
repository.findAll();
}
+
+ public static void main(String[] args) {
+ SpringApplication.run(Main.class);
+ }
}
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/domain/Person.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/domain/Person.java
index f707e14e..f9b8f0ac 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/domain/Person.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-exercise/src/main/java/ru/otus/spring/domain/Person.java
@@ -1,8 +1,5 @@
package ru.otus.spring.domain;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.keyvalue.annotation.KeySpace;
-
public class Person {
private int id;
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/pom.xml b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/pom.xml
index 7d0041e8..5a6b9344 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/pom.xml
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/pom.xml
@@ -11,13 +11,13 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.1.RELEASE
+ 3.0.4
- 11
- 11
+ 17
+ 17
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/Main.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/Main.java
index 42d9078f..8bedd3c6 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/Main.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/Main.java
@@ -1,5 +1,6 @@
package ru.otus.spring;
+import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -9,8 +10,6 @@ import ru.otus.spring.domain.Person;
import ru.otus.spring.repostory.EmailRepository;
import ru.otus.spring.repostory.PersonRepository;
-import javax.annotation.PostConstruct;
-
@SpringBootApplication
@EnableMapRepositories
public class Main {
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepository.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepository.java
index 6ce870a2..e563fc74 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepository.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepository.java
@@ -1,14 +1,12 @@
package ru.otus.spring.repostory;
-import org.springframework.data.keyvalue.repository.KeyValueRepository;
-import org.springframework.stereotype.Repository;
import ru.otus.spring.domain.Email;
-import ru.otus.spring.domain.Person;
import java.util.List;
-public interface EmailRepository {
+public interface EmailRepository {
List findAll();
+
Email save(Email email);
}
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepositoryImpl.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepositoryImpl.java
index e2aa75a1..1bc381d4 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepositoryImpl.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/EmailRepositoryImpl.java
@@ -5,6 +5,7 @@ import org.springframework.stereotype.Repository;
import ru.otus.spring.domain.Email;
import java.util.List;
+import java.util.stream.StreamSupport;
@Repository
public class EmailRepositoryImpl implements EmailRepository {
@@ -17,7 +18,8 @@ public class EmailRepositoryImpl implements EmailRepository {
@Override
public List findAll() {
- return (List) keyValueTemplate.findAll(Email.class);
+ return StreamSupport.stream(keyValueTemplate.findAll(Email.class).spliterator(), false)
+ .toList();
}
@Override
diff --git a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java
index 99a93c24..8e0760fb 100644
--- a/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java
+++ b/2023-01/spring-15/spring-data-keyvalue-class-work/spring-data-keyvalue-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java
@@ -1,12 +1,13 @@
package ru.otus.spring.repostory;
import org.springframework.data.keyvalue.repository.KeyValueRepository;
-import org.springframework.data.repository.CrudRepository;
import ru.otus.spring.domain.Person;
import java.util.List;
public interface PersonRepository extends KeyValueRepository {
+ Person save(Person person);
+
List findAll();
}
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/pom.xml b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/pom.xml
index 5cb9d0e1..6a29b310 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/pom.xml
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/pom.xml
@@ -11,27 +11,34 @@
org.springframework.boot
spring-boot-starter-parent
- 2.3.4.RELEASE
+ 3.0.4
- 11
- 11
+ 17
+ 17
+ 17
+ 4.3.8
+ 4.6.1
-
- org.springframework.boot
- spring-boot-starter
-
org.springframework.boot
spring-boot-starter-data-mongodb
+
de.flapdoodle.embed
de.flapdoodle.embed.mongo
+ ${flapdoodle.version}
+
+
+
+ de.flapdoodle.embed
+ de.flapdoodle.embed.mongo.spring30x
+ ${flapdoodle.version}
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/java/ru/otus/spring/Main.java b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/java/ru/otus/spring/Main.java
index d67d7972..c0233527 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/java/ru/otus/spring/Main.java
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/java/ru/otus/spring/Main.java
@@ -1,6 +1,5 @@
package ru.otus.spring;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@@ -10,10 +9,6 @@ import ru.otus.spring.repostory.PersonRepository;
@SpringBootApplication
public class Main {
- @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")
- @Autowired
- private PersonRepository repository;
-
public static void main(String[] args) throws InterruptedException {
ApplicationContext context = SpringApplication.run(Main.class);
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/resources/application.yml b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/resources/application.yml
index 9bffd5dc..d2122b82 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/resources/application.yml
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-exercise/src/main/resources/application.yml
@@ -1,4 +1,11 @@
spring:
data:
mongodb:
+ port: 0 # when flapdoodle using
database: company
+
+de:
+ flapdoodle:
+ mongodb:
+ embedded:
+ version: 4.0.2
\ No newline at end of file
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/pom.xml b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/pom.xml
index 6045db5d..1cbec2d3 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/pom.xml
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/pom.xml
@@ -11,29 +11,35 @@
org.springframework.boot
spring-boot-starter-parent
- 2.3.4.RELEASE
+ 3.0.4
- 11
- 11
- 4.1.17
+ 17
+ 17
+ 17
+ 4.3.8
+ 4.6.1
-
- org.springframework.boot
- spring-boot-starter
-
org.springframework.boot
spring-boot-starter-data-mongodb
+
de.flapdoodle.embed
de.flapdoodle.embed.mongo
+ ${flapdoodle.version}
+
+
+
+ de.flapdoodle.embed
+ de.flapdoodle.embed.mongo.spring30x
+ ${flapdoodle.version}
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/java/ru/otus/spring/Main.java b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/java/ru/otus/spring/Main.java
index fb0e8a60..3c9e618d 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/java/ru/otus/spring/Main.java
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/java/ru/otus/spring/Main.java
@@ -1,7 +1,6 @@
package ru.otus.spring;
import com.github.cloudyrock.spring.v5.EnableMongock;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@@ -14,10 +13,6 @@ import ru.otus.spring.repostory.PersonRepository;
@SpringBootApplication
public class Main {
- @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")
- @Autowired
- private PersonRepository repository;
-
public static void main(String[] args) throws InterruptedException {
ApplicationContext context = SpringApplication.run(Main.class);
diff --git a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/resources/application.yml b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/resources/application.yml
index dd00fa36..39177887 100644
--- a/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/resources/application.yml
+++ b/2023-01/spring-15/spring-data-mongo-class-work/spring-data-mongo-solution/src/main/resources/application.yml
@@ -1,10 +1,21 @@
spring:
data:
mongodb:
+ port: 0 # when flapdoodle using
database: company
+de:
+ flapdoodle:
+ mongodb:
+ embedded:
+ version: 4.0.2
+
mongock:
runner-type: "ApplicationRunner" # default
#runner-type: "InitializingBean"
change-logs-scan-package:
- ru.otus.spring.mongock.changelog
+ mongo-db:
+ write-concern:
+ journal: false
+ read-concern: local
diff --git a/examples/mongo-db-demo-new-mongock/pom.xml b/examples/mongo-db-demo-new-mongock/pom.xml
index cab28484..c9db7deb 100644
--- a/examples/mongo-db-demo-new-mongock/pom.xml
+++ b/examples/mongo-db-demo-new-mongock/pom.xml
@@ -17,11 +17,12 @@
Demo project for MongoDB
- 11
- 11
- 11
+ 17
+ 17
+ 17
4.3.8
- 2.9.0
+ 4.6.1
+ 2.10.1
@@ -54,6 +55,7 @@
spring-boot-starter-test
test
+
com.google.code.gson
gson
@@ -63,14 +65,14 @@
de.flapdoodle.embed
de.flapdoodle.embed.mongo
- 4.6.1
+ ${flapdoodle.version}
test
de.flapdoodle.embed
de.flapdoodle.embed.mongo.spring30x
- 4.6.1
+ ${flapdoodle.version}