diff --git a/pom.xml b/pom.xml
index b526eba..268213c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
io.github.kaiso.relmongo
relmongo
- 3.0.1
+ 3.1.0
jar
relmongo
@@ -18,9 +18,9 @@
1.8
3.0.1
3.0.1
- 2.1.8.RELEASE
- 5.1.7.RELEASE
- 3.9.1
+ 2.2.1.RELEASE
+ 5.2.1.RELEASE
+ 3.11.2
5.4.1
1.4.2
@@ -61,21 +61,17 @@
org.springframework.data
spring-data-mongodb
-
-
- org.mongodb
- mongo-java-driver
-
-
${spring.data.version}
provided
+
org.springframework
spring-beans
${spring.version}
provided
+
org.springframework
spring-core
@@ -83,20 +79,13 @@
provided
-
- org.mongodb
- mongodb-driver
- ${mongo.driver.version}
- provided
-
- org.mongodb
- mongo-java-driver
- ${mongo.driver.version}
+ org.mongodb
+ mongodb-driver-async
+ ${mongo.driver.version}
-
org.junit.jupiter
@@ -115,7 +104,7 @@
de.flapdoodle.embed
de.flapdoodle.embed.mongo
- 2.1.1
+ 2.2.0
test
diff --git a/src/main/java/io/github/kaiso/relmongo/annotation/ManyToOne.java b/src/main/java/io/github/kaiso/relmongo/annotation/ManyToOne.java
index cccd4f7..93ef1c1 100644
--- a/src/main/java/io/github/kaiso/relmongo/annotation/ManyToOne.java
+++ b/src/main/java/io/github/kaiso/relmongo/annotation/ManyToOne.java
@@ -16,6 +16,8 @@
package io.github.kaiso.relmongo.annotation;
+import org.springframework.data.annotation.Reference;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -30,6 +32,7 @@
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
+@Reference
public @interface ManyToOne {
/**
* (Optional) Whether the association should be lazily loaded or must be eagerly
diff --git a/src/main/java/io/github/kaiso/relmongo/annotation/OneToMany.java b/src/main/java/io/github/kaiso/relmongo/annotation/OneToMany.java
index 17ade36..281686b 100644
--- a/src/main/java/io/github/kaiso/relmongo/annotation/OneToMany.java
+++ b/src/main/java/io/github/kaiso/relmongo/annotation/OneToMany.java
@@ -16,6 +16,8 @@
package io.github.kaiso.relmongo.annotation;
+import org.springframework.data.annotation.Reference;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -30,6 +32,7 @@
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
+@Reference
public @interface OneToMany {
/**
diff --git a/src/main/java/io/github/kaiso/relmongo/annotation/OneToOne.java b/src/main/java/io/github/kaiso/relmongo/annotation/OneToOne.java
index 1c701a2..c60fe8e 100644
--- a/src/main/java/io/github/kaiso/relmongo/annotation/OneToOne.java
+++ b/src/main/java/io/github/kaiso/relmongo/annotation/OneToOne.java
@@ -16,6 +16,8 @@
package io.github.kaiso.relmongo.annotation;
+import org.springframework.data.annotation.Reference;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -30,6 +32,7 @@
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
+@Reference
public @interface OneToOne {
/**
* (Optional) Whether the association should be lazily loaded or must be eagerly
diff --git a/src/main/java/io/github/kaiso/relmongo/config/PersistenceConfiguration.java b/src/main/java/io/github/kaiso/relmongo/config/PersistenceConfiguration.java
index cd6917d..db317f3 100644
--- a/src/main/java/io/github/kaiso/relmongo/config/PersistenceConfiguration.java
+++ b/src/main/java/io/github/kaiso/relmongo/config/PersistenceConfiguration.java
@@ -21,17 +21,19 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.data.mongodb.core.MongoOperations;
+
/**
*
- * @author Kais OMRI
+ * @author Kais OMRI (kaiso)
*
*/
@Configuration
public class PersistenceConfiguration {
@Bean
- public RelMongoProcessor mongoEventListener() {
- return new RelMongoProcessor();
+ public RelMongoProcessor mongoEventListener(MongoOperations mongoOperations) {
+ return new RelMongoProcessor(mongoOperations);
}
}
diff --git a/src/main/java/io/github/kaiso/relmongo/events/processor/RelMongoProcessor.java b/src/main/java/io/github/kaiso/relmongo/events/processor/RelMongoProcessor.java
index ff09e5c..cab8b3b 100644
--- a/src/main/java/io/github/kaiso/relmongo/events/processor/RelMongoProcessor.java
+++ b/src/main/java/io/github/kaiso/relmongo/events/processor/RelMongoProcessor.java
@@ -25,7 +25,6 @@
import io.github.kaiso.relmongo.model.LoadableObjectsMetadata;
import io.github.kaiso.relmongo.mongo.PersistentRelationResolver;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener;
@@ -46,8 +45,12 @@
*/
public class RelMongoProcessor extends AbstractMongoEventListener