Skip to content

Commit fb12c05

Browse files
mjd507artembilan
authored andcommitted
spring-projectsGH-10083: Apply Nullability to MongoDb module
Related to: spring-projects#10083 Signed-off-by: Jiandong Ma <[email protected]>
1 parent a7a6251 commit fb12c05

27 files changed

+203
-151
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/**
22
* Contains parser classes for the MongoDb namespace support.
33
*/
4+
@org.jspecify.annotations.NullMarked
45
package org.springframework.integration.mongodb.config;
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/**
22
* Provides MongoDB Components support for Java DSL.
33
*/
4-
@org.springframework.lang.NonNullApi
5-
@org.springframework.lang.NonNullFields
4+
@org.jspecify.annotations.NullMarked
65
package org.springframework.integration.mongodb.dsl;

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/AbstractMongoDbMessageSource.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818

1919
import java.util.Collection;
2020
import java.util.Map;
21+
import java.util.Objects;
2122

2223
import com.mongodb.DBObject;
2324
import org.bson.Document;
25+
import org.jspecify.annotations.Nullable;
2426

2527
import org.springframework.beans.BeansException;
2628
import org.springframework.context.ApplicationContext;
@@ -40,7 +42,6 @@
4042
import org.springframework.expression.common.LiteralExpression;
4143
import org.springframework.expression.spel.support.StandardTypeLocator;
4244
import org.springframework.integration.endpoint.AbstractMessageSource;
43-
import org.springframework.lang.Nullable;
4445
import org.springframework.util.Assert;
4546
import org.springframework.util.LinkedMultiValueMap;
4647
import org.springframework.util.MultiValueMap;
@@ -64,14 +65,16 @@ public abstract class AbstractMongoDbMessageSource<T> extends AbstractMessageSou
6465

6566
private Expression collectionNameExpression = new LiteralExpression("data");
6667

68+
@SuppressWarnings("NullAway.Init")
6769
private MongoConverter mongoConverter;
6870

6971
private Class<?> entityClass = DBObject.class;
7072

7173
private boolean expectSingleResult = false;
7274

73-
private Expression updateExpression;
75+
private @Nullable Expression updateExpression;
7476

77+
@SuppressWarnings("NullAway.Init")
7578
private ApplicationContext applicationContext;
7679

7780
private volatile boolean initialized = false;
@@ -156,7 +159,7 @@ public boolean isExpectSingleResult() {
156159
return this.expectSingleResult;
157160
}
158161

159-
public Expression getUpdateExpression() {
162+
public @Nullable Expression getUpdateExpression() {
160163
return this.updateExpression;
161164
}
162165

@@ -261,7 +264,7 @@ else if (value instanceof Update castUpdate) {
261264
}
262265

263266
private static Pair<String, Object> idFieldFromMap(Map<String, Object> map) {
264-
return Pair.of(ID_FIELD, map.get(ID_FIELD));
267+
return Pair.of(ID_FIELD, Objects.requireNonNull(map.get(ID_FIELD)));
265268
}
266269

267270
}

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbChangeStreamMessageProducer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
package org.springframework.integration.mongodb.inbound;
1818

1919
import org.bson.Document;
20+
import org.jspecify.annotations.Nullable;
2021
import reactor.core.publisher.Flux;
2122

2223
import org.springframework.data.mongodb.core.ChangeStreamOptions;
2324
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
2425
import org.springframework.integration.endpoint.MessageProducerSupport;
2526
import org.springframework.integration.mongodb.support.MongoHeaders;
2627
import org.springframework.integration.support.MessageBuilder;
27-
import org.springframework.lang.Nullable;
2828
import org.springframework.messaging.Message;
2929
import org.springframework.util.Assert;
3030

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSource.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import java.util.Collection;
2020
import java.util.List;
2121

22+
import org.jspecify.annotations.Nullable;
23+
2224
import org.springframework.context.ApplicationContext;
2325
import org.springframework.data.mongodb.MongoDatabaseFactory;
2426
import org.springframework.data.mongodb.core.MongoOperations;
@@ -31,7 +33,6 @@
3133
import org.springframework.integration.mongodb.support.MongoHeaders;
3234
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
3335
import org.springframework.integration.transaction.IntegrationResourceHolder;
34-
import org.springframework.lang.Nullable;
3536
import org.springframework.transaction.support.TransactionSynchronizationManager;
3637
import org.springframework.util.Assert;
3738
import org.springframework.util.CollectionUtils;
@@ -64,6 +65,7 @@ public class MongoDbMessageSource extends AbstractMongoDbMessageSource<Object> {
6465
@Nullable
6566
private final MongoDatabaseFactory mongoDbFactory;
6667

68+
@SuppressWarnings("NullAway.Init")
6769
private MongoOperations mongoTemplate;
6870

6971
/**
@@ -105,9 +107,7 @@ protected void onInit() {
105107
if (this.mongoDbFactory != null) {
106108
MongoTemplate template = new MongoTemplate(this.mongoDbFactory, getMongoConverter());
107109
ApplicationContext applicationContext = getApplicationContext();
108-
if (applicationContext != null) {
109-
template.setApplicationContext(applicationContext);
110-
}
110+
template.setApplicationContext(applicationContext);
111111
this.mongoTemplate = template;
112112
}
113113
setMongoConverter(this.mongoTemplate.getConverter());
@@ -124,7 +124,7 @@ protected void onInit() {
124124
* query will be provided in the {@link MongoHeaders#COLLECTION_NAME} header.
125125
*/
126126
@Override
127-
protected Object doReceive() {
127+
protected @Nullable Object doReceive() {
128128
Assert.isTrue(isInitialized(), "This class is not yet initialized. Invoke its afterPropertiesSet() method");
129129
AbstractIntegrationMessageBuilder<Object> messageBuilder = null;
130130

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/ReactiveMongoDbMessageSource.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.integration.mongodb.inbound;
1818

19+
import org.jspecify.annotations.Nullable;
1920
import org.reactivestreams.Publisher;
2021
import reactor.core.publisher.Flux;
2122
import reactor.core.publisher.Mono;
@@ -30,7 +31,6 @@
3031
import org.springframework.data.util.Pair;
3132
import org.springframework.expression.Expression;
3233
import org.springframework.integration.mongodb.support.MongoHeaders;
33-
import org.springframework.lang.Nullable;
3434
import org.springframework.util.Assert;
3535

3636
/**
@@ -57,6 +57,7 @@ public class ReactiveMongoDbMessageSource extends AbstractMongoDbMessageSource<P
5757
@Nullable
5858
private final ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory;
5959

60+
@SuppressWarnings("NullAway.Init")
6061
private ReactiveMongoOperations reactiveMongoTemplate;
6162

6263
/**
@@ -101,9 +102,7 @@ protected void onInit() {
101102
ReactiveMongoTemplate template =
102103
new ReactiveMongoTemplate(this.reactiveMongoDatabaseFactory, getMongoConverter());
103104
ApplicationContext applicationContext = getApplicationContext();
104-
if (applicationContext != null) {
105-
template.setApplicationContext(applicationContext);
106-
}
105+
template.setApplicationContext(applicationContext);
107106
this.reactiveMongoTemplate = template;
108107
}
109108
setMongoConverter(this.reactiveMongoTemplate.getConverter());
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/**
22
* Provides classes related to the Mongo inbound channel adapters
33
*/
4+
@org.jspecify.annotations.NullMarked
45
package org.springframework.integration.mongodb.inbound;

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStore.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Map;
2121

2222
import org.bson.Document;
23+
import org.jspecify.annotations.Nullable;
2324

2425
import org.springframework.data.mongodb.MongoDatabaseFactory;
2526
import org.springframework.data.mongodb.core.FindAndModifyOptions;
@@ -124,7 +125,7 @@ public void put(String key, String value) {
124125
* @see MongoTemplate#findOne(Query, Class, String)
125126
*/
126127
@Override
127-
public String get(String key) {
128+
public @Nullable String get(String key) {
128129
Assert.hasText(key, KEY_MUST_NOT_BE_EMPTY);
129130
Query query = new Query(Criteria.where(ID_FIELD).is(key));
130131
query.fields().exclude(ID_FIELD);
@@ -142,7 +143,7 @@ public String get(String key) {
142143
* @see MongoTemplate#findAndRemove(Query, Class, String)
143144
*/
144145
@Override
145-
public String remove(String key) {
146+
public @Nullable String remove(String key) {
146147
Assert.hasText(key, KEY_MUST_NOT_BE_EMPTY);
147148
Query query = new Query(Criteria.where(ID_FIELD).is(key));
148149
query.fields().exclude(ID_FIELD);
@@ -167,7 +168,7 @@ public String remove(String key) {
167168
* @see java.util.concurrent.ConcurrentMap#putIfAbsent(Object, Object)
168169
*/
169170
@Override
170-
public String putIfAbsent(String key, String value) {
171+
public @Nullable String putIfAbsent(String key, String value) {
171172
Assert.hasText(key, KEY_MUST_NOT_BE_EMPTY);
172173
Assert.hasText(value, "'value' must not be empty.");
173174

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/**
22
* Contains mongodb metadata store related classes
33
*/
4+
@org.jspecify.annotations.NullMarked
45
package org.springframework.integration.mongodb.metadata;

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MessageCollectionCallback.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import com.mongodb.MongoException;
2020
import com.mongodb.client.MongoCollection;
2121
import org.bson.Document;
22+
import org.jspecify.annotations.Nullable;
2223

2324
import org.springframework.dao.DataAccessException;
2425
import org.springframework.data.mongodb.core.CollectionCallback;
25-
import org.springframework.lang.Nullable;
2626
import org.springframework.messaging.Message;
2727

2828
/**

0 commit comments

Comments
 (0)