Skip to content

Commit 2c75da6

Browse files
committed
Starting version 4.4.0
This provides compatibility with Spring-Boot 1.4.x
1 parent 4d9580c commit 2c75da6

File tree

5 files changed

+37
-24
lines changed

5 files changed

+37
-24
lines changed

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@ The major and minor number of this library refers to the compatible Spring frame
2323

2424
API changes will follow SEMVER and loosly the Spring Framework releases.
2525

26-
| `spring-data-dynamodb` version | Spring Framework compatibility |
27-
| ------------- | ------------- |
28-
| 1.0.x | >= 3.1 && < 4.2 |
29-
| 4.2.x | >= 4.2 && < 4.3 |
30-
| 4.3.x | >= 4.3 |
31-
32-
`spring-data-dynamodb` depends directly on `spring-context`, `spring-data` and `spring-tx`.
26+
| `spring-data-dynamodb` version | Spring Framework compatibility | Spring Data compatibility |
27+
| ------------- | ------------- | -------- |
28+
| 1.0.x | >= 3.1 && < 4.2 | |
29+
| 4.2.x | >= 4.2 && < 4.3 | Gosling-SR1|
30+
| 4.3.x | >= 4.3 | Gosling-SR1|
31+
| 4.4.x | >= 4.3 | Hopper-SR2 |
32+
33+
`spring-data-dynamodb` depends directly on `spring-data` as also `spring-context`, `spring-data` and `spring-tx`.
3334

3435
`compile` and `runtime` dependencies are kept to a minimum to allow easy integartion, for example into
3536
Spring-Boot projects.

pom.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.github.derjust</groupId>
55
<artifactId>spring-data-dynamodb</artifactId>
6-
<version>4.3.2-SNAPSHOT</version>
6+
<version>4.4.0-SNAPSHOT</version>
77
<name>Spring Data DynamoDb</name>
88
<description>Spring Data module providing support for DynamoDb repositories.</description>
99
<url>http://github.com/michaellavelle/spring-data-dynamodb</url>
@@ -16,10 +16,11 @@
1616
</licenses>
1717

1818
<properties>
19-
<spring.version>4.3.1.RELEASE</spring.version>
20-
<spring-data.version>Gosling-SR1</spring-data.version>
19+
<spring.version>4.3.2.RELEASE</spring.version>
20+
<spring-data.version>Hopper-SR2</spring-data.version>
2121
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>
22-
<aws-java-sdk.version>1.11.15</aws-java-sdk.version>
22+
<aws-java-sdk.version>1.11.27</aws-java-sdk.version>
23+
<junit.version>4.12</junit.version>
2324
<mockito.version>1.10.19</mockito.version>
2425

2526
<cdi.version>1.2</cdi.version>
@@ -54,6 +55,13 @@
5455
<version>${hibernate-validator.version}</version>
5556
</dependency>
5657

58+
<dependency>
59+
<groupId>junit</groupId>
60+
<artifactId>junit</artifactId>
61+
<version>${junit.version}</version>
62+
</dependency>
63+
64+
5765
<dependency>
5866
<groupId>org.mockito</groupId>
5967
<artifactId>mockito-core</artifactId>

src/main/java/org/socialsignin/spring/data/dynamodb/repository/query/DynamoDBQueryLookupStrategy.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.lang.reflect.Method;
2020

2121
import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations;
22+
import org.springframework.data.projection.ProjectionFactory;
2223
import org.springframework.data.repository.core.NamedQueries;
2324
import org.springframework.data.repository.core.RepositoryMetadata;
2425
import org.springframework.data.repository.query.QueryLookupStrategy;
@@ -62,13 +63,13 @@ public AbstractQueryLookupStrategy(DynamoDBOperations dynamoDBOperations) {
6263
* org.springframework.data.repository.core.NamedQueries)
6364
*/
6465
@Override
65-
public final RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, NamedQueries namedQueries) {
66+
public final RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, ProjectionFactory factory, NamedQueries namedQueries) {
6667

67-
return createDynamoDBQuery(method, metadata, metadata.getDomainType(), metadata.getIdType(), namedQueries);
68+
return createDynamoDBQuery(method, metadata, factory, metadata.getDomainType(), metadata.getIdType(), namedQueries);
6869
}
6970

7071
protected abstract <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method,
71-
RepositoryMetadata metadata, Class<T> entityClass, Class<ID> idClass, NamedQueries namedQueries);
72+
RepositoryMetadata metadata, ProjectionFactory factory, Class<T> entityClass, Class<ID> idClass, NamedQueries namedQueries);
7273
}
7374

7475
/**
@@ -84,10 +85,10 @@ public CreateQueryLookupStrategy(DynamoDBOperations dynamoDBOperations) {
8485
}
8586

8687
@Override
87-
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata,
88+
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata, ProjectionFactory factory,
8889
Class<T> entityClass, Class<ID> idClass, NamedQueries namedQueries) {
8990
try {
90-
return new PartTreeDynamoDBQuery<T, ID>(dynamoDBOperations, new DynamoDBQueryMethod<T, ID>(method, metadata));
91+
return new PartTreeDynamoDBQuery<T, ID>(dynamoDBOperations, new DynamoDBQueryMethod<T, ID>(method, metadata, factory));
9192
} catch (IllegalArgumentException e) {
9293
throw new IllegalArgumentException(String.format("Could not create query metamodel for method %s!",
9394
method.toString()), e);
@@ -110,7 +111,7 @@ public DeclaredQueryLookupStrategy(DynamoDBOperations dynamoDBOperations) {
110111
}
111112

112113
@Override
113-
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata,
114+
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata, ProjectionFactory factory,
114115
Class<T> entityClass, Class<ID> idClass, NamedQueries namedQueries) {
115116
throw new UnsupportedOperationException("Declared Queries not supported at this time");
116117
}
@@ -137,14 +138,14 @@ public CreateIfNotFoundQueryLookupStrategy(DynamoDBOperations dynamoDBOperations
137138
}
138139

139140
@Override
140-
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata,
141+
protected <T, ID extends Serializable> RepositoryQuery createDynamoDBQuery(Method method, RepositoryMetadata metadata, ProjectionFactory factory,
141142
Class<T> entityClass, Class<ID> idClass, NamedQueries namedQueries) {
142143
try {
143-
return strategy.createDynamoDBQuery(method, metadata, entityClass, idClass, namedQueries);
144+
return strategy.createDynamoDBQuery(method, metadata, factory, entityClass, idClass, namedQueries);
144145
} catch (IllegalStateException e) {
145-
return createStrategy.createDynamoDBQuery(method, metadata, entityClass, idClass, namedQueries);
146+
return createStrategy.createDynamoDBQuery(method, metadata, factory, entityClass, idClass, namedQueries);
146147
} catch (UnsupportedOperationException e) {
147-
return createStrategy.createDynamoDBQuery(method, metadata, entityClass, idClass, namedQueries);
148+
return createStrategy.createDynamoDBQuery(method, metadata, factory, entityClass, idClass, namedQueries);
148149
}
149150

150151
}

src/main/java/org/socialsignin/spring/data/dynamodb/repository/query/DynamoDBQueryMethod.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.socialsignin.spring.data.dynamodb.repository.EnableScanCount;
2323
import org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBEntityInformation;
2424
import org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBEntityMetadataSupport;
25+
import org.springframework.data.projection.ProjectionFactory;
2526
import org.springframework.data.repository.core.RepositoryMetadata;
2627
import org.springframework.data.repository.query.QueryMethod;
2728

@@ -35,8 +36,8 @@ public class DynamoDBQueryMethod<T, ID extends Serializable> extends QueryMethod
3536
private final boolean scanCountEnabledForRepository;
3637

3738

38-
public DynamoDBQueryMethod(Method method, RepositoryMetadata metadata) {
39-
super(method, metadata);
39+
public DynamoDBQueryMethod(Method method, RepositoryMetadata metadata, ProjectionFactory factory) {
40+
super(method, metadata, factory);
4041
this.method = method;
4142
this.scanEnabledForRepository = metadata.getRepositoryInterface().isAnnotationPresent(EnableScan.class);
4243
this.scanCountEnabledForRepository = metadata.getRepositoryInterface().isAnnotationPresent(EnableScanCount.class);

src/test/java/org/socialsignin/spring/data/dynamodb/repository/query/PartTreeDynamoDBQueryUnitTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class PartTreeDynamoDBQueryUnitTest {
7272
@Mock
7373
@SuppressWarnings("rawtypes")
7474
private Parameters mockParameters;
75-
75+
7676
@Mock
7777
private User mockUser;
7878

@@ -150,6 +150,8 @@ private <T, ID extends Serializable> void setupCommonMocksForThisRepositoryMetho
150150
Class returnedObjectClass = clazz;
151151
Mockito.when(mockDynamoDBQueryMethod.getEntityType()).thenReturn(clazz);
152152
Mockito.when(mockDynamoDBQueryMethod.getName()).thenReturn(repositoryMethodName);
153+
Mockito.when(mockDynamoDBQueryMethod.getParameters()).thenReturn(mockParameters);
154+
Mockito.when(mockParameters.getBindableParameters()).thenReturn(mockParameters);
153155
Mockito.when(mockParameters.getNumberOfParameters()).thenReturn(numberOfParameters);
154156
Mockito.when(mockDynamoDBQueryMethod.getReturnedObjectType()).thenReturn(returnedObjectClass);
155157
if (hashKeyProperty != null) {

0 commit comments

Comments
 (0)