Skip to content

Commit 367e184

Browse files
committed
#80 prepare usage of stream transaction bridge and id for resolvers
1 parent a7a36ad commit 367e184

File tree

8 files changed

+37
-19
lines changed

8 files changed

+37
-19
lines changed

src/main/java/com/arangodb/springframework/config/ArangoConfiguration.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public <A extends Annotation> Optional<ReferenceResolver<A>> getReferenceResolve
110110
ReferenceResolver<A> resolver = null;
111111
try {
112112
if (annotation instanceof Ref) {
113-
resolver = (ReferenceResolver<A>) new RefResolver(arangoTemplate());
113+
resolver = (ReferenceResolver<A>) new RefResolver(arangoTemplate(), null);
114114
}
115115
} catch (final Exception e) {
116116
throw new ArangoDBException(e);
@@ -126,18 +126,18 @@ public <A extends Annotation> Optional<RelationResolver<A>> getRelationResolver(
126126
try {
127127
if (annotation instanceof From) {
128128
if (collectionType == Edge.class) {
129-
resolver = (RelationResolver<A>) new EdgeFromResolver(arangoTemplate());
129+
resolver = (RelationResolver<A>) new EdgeFromResolver(arangoTemplate(), null);
130130
} else if (collectionType == Document.class) {
131-
resolver = (RelationResolver<A>) new DocumentFromResolver(arangoTemplate());
131+
resolver = (RelationResolver<A>) new DocumentFromResolver(arangoTemplate(), null);
132132
}
133133
} else if (annotation instanceof To) {
134134
if (collectionType == Edge.class) {
135-
resolver = (RelationResolver<A>) new EdgeToResolver(arangoTemplate());
135+
resolver = (RelationResolver<A>) new EdgeToResolver(arangoTemplate(), null);
136136
} else if (collectionType == Document.class) {
137-
resolver = (RelationResolver<A>) new DocumentToResolver(arangoTemplate());
137+
resolver = (RelationResolver<A>) new DocumentToResolver(arangoTemplate(), null);
138138
}
139139
} else if (annotation instanceof Relations) {
140-
resolver = (RelationResolver<A>) new RelationsResolver(arangoTemplate());
140+
resolver = (RelationResolver<A>) new RelationsResolver(arangoTemplate(), null);
141141
}
142142
} catch (final Exception e) {
143143
throw new ArangoDBException(e);

src/main/java/com/arangodb/springframework/core/convert/resolver/AbstractResolver.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@
2323
import java.io.Serializable;
2424
import java.lang.annotation.Annotation;
2525
import java.lang.reflect.Method;
26+
import java.util.Collections;
2627

28+
import com.arangodb.model.AqlQueryOptions;
29+
import com.arangodb.model.DocumentReadOptions;
2730
import com.arangodb.springframework.core.ArangoOperations;
31+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2832
import org.aopalliance.intercept.MethodInvocation;
2933
import org.springframework.aop.framework.ProxyFactory;
3034
import org.springframework.cglib.proxy.Callback;
@@ -59,10 +63,12 @@ public abstract class AbstractResolver<A extends Annotation> {
5963

6064
private final ObjenesisStd objenesis;
6165
protected final ArangoOperations template;
66+
private final QueryTransactionBridge transactionBridge;
6267

63-
protected AbstractResolver(final ArangoOperations template) {
68+
protected AbstractResolver(final ArangoOperations template, final QueryTransactionBridge transactionBridge) {
6469
super();
6570
this.template = template;
71+
this.transactionBridge = transactionBridge;
6672
this.objenesis = new ObjenesisStd(true);
6773
}
6874

@@ -104,11 +110,17 @@ private Class<?> enhancedTypeFor(final Class<?> type) {
104110

105111
protected DocumentReadOptions defaultReadOptions() {
106112
DocumentReadOptions options = new DocumentReadOptions();
113+
if (transactionBridge != null) {
114+
options.streamTransactionId(transactionBridge.getCurrentTransaction(Collections.emptySet()));
115+
}
107116
return options;
108117
}
109118

110119
protected AqlQueryOptions defaultQueryOptions() {
111120
AqlQueryOptions options = new AqlQueryOptions();
121+
if (transactionBridge != null) {
122+
options.streamTransactionId(transactionBridge.getCurrentTransaction(Collections.emptySet()));
123+
}
112124
return options;
113125
}
114126

src/main/java/com/arangodb/springframework/core/convert/resolver/DocumentFromResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.arangodb.springframework.core.convert.resolver;
2222

23+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2324
import org.springframework.data.util.TypeInformation;
2425

2526
import com.arangodb.ArangoCursor;
@@ -36,8 +37,8 @@
3637
*/
3738
public class DocumentFromResolver extends AbstractResolver<From> implements RelationResolver<From> {
3839

39-
public DocumentFromResolver(final ArangoOperations template) {
40-
super(template);
40+
public DocumentFromResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
41+
super(template, transactionBridge);
4142
}
4243

4344
@Override

src/main/java/com/arangodb/springframework/core/convert/resolver/DocumentToResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.arangodb.springframework.core.convert.resolver;
2222

23+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2324
import org.springframework.data.util.TypeInformation;
2425

2526
import com.arangodb.ArangoCursor;
@@ -36,8 +37,8 @@
3637
*/
3738
public class DocumentToResolver extends AbstractResolver<To> implements RelationResolver<To> {
3839

39-
public DocumentToResolver(final ArangoOperations template) {
40-
super(template);
40+
public DocumentToResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
41+
super(template, transactionBridge);
4142
}
4243

4344
@Override

src/main/java/com/arangodb/springframework/core/convert/resolver/EdgeFromResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.arangodb.springframework.core.convert.resolver;
2222

23+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2324
import org.springframework.data.util.TypeInformation;
2425

2526
import com.arangodb.springframework.annotation.From;
@@ -33,8 +34,8 @@
3334
*/
3435
public class EdgeFromResolver extends AbstractResolver<From> implements RelationResolver<From> {
3536

36-
public EdgeFromResolver(final ArangoOperations template) {
37-
super(template);
37+
public EdgeFromResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
38+
super(template, transactionBridge);
3839
}
3940

4041
@Override

src/main/java/com/arangodb/springframework/core/convert/resolver/EdgeToResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
package com.arangodb.springframework.core.convert.resolver;
2222

23+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2324
import org.springframework.data.util.TypeInformation;
2425

2526
import com.arangodb.springframework.annotation.To;
@@ -33,8 +34,8 @@
3334
*/
3435
public class EdgeToResolver extends AbstractResolver<To> implements RelationResolver<To> {
3536

36-
public EdgeToResolver(final ArangoOperations template) {
37-
super(template);
37+
public EdgeToResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
38+
super(template, transactionBridge);
3839
}
3940

4041
@Override

src/main/java/com/arangodb/springframework/core/convert/resolver/RefResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import com.arangodb.springframework.core.mapping.ArangoPersistentEntity;
2727
import com.arangodb.springframework.core.util.MetadataUtils;
28+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2829
import org.springframework.data.util.TypeInformation;
2930

3031
import com.arangodb.springframework.annotation.Ref;
@@ -38,8 +39,8 @@
3839
public class RefResolver extends AbstractResolver<Ref>
3940
implements ReferenceResolver<Ref>, AbstractResolver.ResolverCallback<Ref> {
4041

41-
public RefResolver(final ArangoOperations template) {
42-
super(template);
42+
public RefResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
43+
super(template, transactionBridge);
4344
}
4445

4546
@Override

src/main/java/com/arangodb/springframework/core/convert/resolver/RelationsResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.*;
2424
import java.util.stream.Collectors;
2525

26+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
2627
import org.springframework.data.util.TypeInformation;
2728

2829
import com.arangodb.ArangoCursor;
@@ -37,8 +38,8 @@
3738
*/
3839
public class RelationsResolver extends AbstractResolver<Relations> implements RelationResolver<Relations> {
3940

40-
public RelationsResolver(final ArangoOperations template) {
41-
super(template);
41+
public RelationsResolver(final ArangoOperations template, QueryTransactionBridge transactionBridge) {
42+
super(template, transactionBridge);
4243
}
4344

4445
@Override

0 commit comments

Comments
 (0)