Upgrade to Spring Data 2025.1.0-M3.
Closes gh-921
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -48,7 +48,7 @@
|
||||
<nullaway.version>0.12.3</nullaway.version>
|
||||
<okhttp3.version>3.14.9</okhttp3.version>
|
||||
<spring.version>7.0.0-M5</spring.version>
|
||||
<spring-data-bom.version>2025.1.0-M1</spring-data-bom.version>
|
||||
<spring-data-bom.version>2025.1.0-M3</spring-data-bom.version>
|
||||
<spring-security-bom.version>6.2.0</spring-security-bom.version>
|
||||
<reactor.version>2025.0.0-M4</reactor.version>
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ public class VaultKeyValueAdapter extends AbstractKeyValueAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<?> getAllOf(String keyspace) {
|
||||
public Iterable<Object> getAllOf(String keyspace) {
|
||||
|
||||
List<String> list = doList(keyspace);
|
||||
List<Object> items = new ArrayList<>(list.size());
|
||||
@@ -173,7 +173,7 @@ public class VaultKeyValueAdapter extends AbstractKeyValueAdapter {
|
||||
List<String> list = doList(keyspace);
|
||||
Iterator<String> iterator = list.iterator();
|
||||
|
||||
return new CloseableIterator<Entry<Object, Object>>() {
|
||||
return new CloseableIterator<>() {
|
||||
@Override
|
||||
public void close() {
|
||||
|
||||
@@ -189,7 +189,7 @@ public class VaultKeyValueAdapter extends AbstractKeyValueAdapter {
|
||||
|
||||
final String key = iterator.next();
|
||||
|
||||
return new Entry<Object, Object>() {
|
||||
return new Entry<>() {
|
||||
@Override
|
||||
public Object getKey() {
|
||||
return key;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.vault.repository.core;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import org.jspecify.annotations.Nullable;
|
||||
@@ -23,6 +24,7 @@ import org.jspecify.annotations.Nullable;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.data.keyvalue.core.KeyValueAdapter;
|
||||
import org.springframework.data.keyvalue.core.KeyValueCallback;
|
||||
import org.springframework.data.keyvalue.core.KeyValueTemplate;
|
||||
import org.springframework.data.keyvalue.core.event.KeyValueEvent;
|
||||
import org.springframework.data.keyvalue.core.mapping.KeyValuePersistentEntity;
|
||||
@@ -98,7 +100,7 @@ public class VaultKeyValueTemplate extends KeyValueTemplate {
|
||||
|
||||
potentiallyPublishEvent(KeyValueEvent.beforeInsert(id, keyspace, objectToInsert.getClass(), objectToInsert));
|
||||
|
||||
T saved = execute(adapter -> {
|
||||
T saved = executeRequired(adapter -> {
|
||||
|
||||
if (adapter.contains(id, keyspace)) {
|
||||
throw new DuplicateKeyException(
|
||||
@@ -124,7 +126,7 @@ public class VaultKeyValueTemplate extends KeyValueTemplate {
|
||||
|
||||
potentiallyPublishEvent(KeyValueEvent.beforeUpdate(id, keyspace, objectToUpdate.getClass(), objectToUpdate));
|
||||
|
||||
T updated = execute(adapter -> (T) adapter.put(id, objectToUpdate, keyspace));
|
||||
T updated = executeRequired(adapter -> (T) adapter.put(id, objectToUpdate, keyspace));
|
||||
|
||||
potentiallyPublishEvent(
|
||||
KeyValueEvent.afterUpdate(id, keyspace, objectToUpdate.getClass(), objectToUpdate, updated));
|
||||
@@ -134,18 +136,18 @@ public class VaultKeyValueTemplate extends KeyValueTemplate {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> T delete(T objectToDelete) {
|
||||
public <T> @Nullable T delete(T objectToDelete) {
|
||||
|
||||
Class<T> type = (Class<T>) ClassUtils.getUserClass(objectToDelete);
|
||||
KeyValuePersistentEntity<?, ?> entity = getEntity(type);
|
||||
|
||||
Object id = entity.getIdentifierAccessor(objectToDelete).getIdentifier();
|
||||
Object id = Objects.requireNonNull(entity.getIdentifierAccessor(objectToDelete).getIdentifier());
|
||||
|
||||
String keyspace = resolveKeySpace(type);
|
||||
|
||||
potentiallyPublishEvent(KeyValueEvent.beforeDelete(id, keyspace, type));
|
||||
|
||||
T result = execute(adapter -> ((VaultKeyValueAdapter) adapter).deleteEntity(objectToDelete, keyspace));
|
||||
T result = executeRequired(adapter -> ((VaultKeyValueAdapter) adapter).deleteEntity(objectToDelete, keyspace));
|
||||
|
||||
potentiallyPublishEvent(KeyValueEvent.afterDelete(id, keyspace, type, result));
|
||||
|
||||
@@ -160,7 +162,7 @@ public class VaultKeyValueTemplate extends KeyValueTemplate {
|
||||
private String resolveKeySpace(Class<?> type) {
|
||||
|
||||
KeyValuePersistentEntity<?, ?> entity = getEntity(type);
|
||||
return entity.getKeySpace();
|
||||
return Objects.requireNonNull(entity.getKeySpace());
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@@ -181,11 +183,11 @@ public class VaultKeyValueTemplate extends KeyValueTemplate {
|
||||
}
|
||||
|
||||
public VaultConverter getConverter() {
|
||||
return execute(adapter -> ((VaultKeyValueAdapter) adapter).getConverter());
|
||||
return executeRequired(adapter -> ((VaultKeyValueAdapter) adapter).getConverter());
|
||||
}
|
||||
|
||||
public VaultOperations getVaultOperations() {
|
||||
return execute(adapter -> ((VaultKeyValueAdapter) adapter).getVaultOperations());
|
||||
return executeRequired(adapter -> ((VaultKeyValueAdapter) adapter).getVaultOperations());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ class VaultQueryEngine extends QueryEngine<VaultKeyValueAdapter, VaultQuery, Com
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public VaultQuery resolve(KeyValueQuery<?> query) {
|
||||
public @Nullable VaultQuery resolve(KeyValueQuery<?> query) {
|
||||
return (VaultQuery) query.getCriteria();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.function.BiPredicate;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
import org.springframework.dao.InvalidDataAccessApiUsageException;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.keyvalue.core.query.KeyValueQuery;
|
||||
@@ -152,7 +154,7 @@ public class VaultQueryCreator extends AbstractQueryCreator<KeyValueQuery<VaultQ
|
||||
}
|
||||
|
||||
@Override
|
||||
protected KeyValueQuery<VaultQuery> complete(VaultQuery vaultQuery, Sort sort) {
|
||||
protected KeyValueQuery<VaultQuery> complete(@Nullable VaultQuery vaultQuery, Sort sort) {
|
||||
|
||||
KeyValueQuery<VaultQuery> query = new KeyValueQuery<>(vaultQuery);
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.vault.repository.support;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import org.springframework.data.keyvalue.core.KeyValueOperations;
|
||||
import org.springframework.data.keyvalue.repository.query.KeyValuePartTreeQuery;
|
||||
import org.springframework.data.keyvalue.repository.support.KeyValueRepositoryFactory;
|
||||
@@ -72,7 +74,7 @@ public class VaultRepositoryFactory extends KeyValueRepositoryFactory {
|
||||
.getRequiredPersistentEntity(metadata.getDomainType());
|
||||
EntityInformation<?, String> entityInformation = getEntityInformation(metadata.getDomainType());
|
||||
VaultRevisionRepository<?> repository = new VaultRevisionRepository<>(entityInformation,
|
||||
entity.getKeySpace(), template);
|
||||
Objects.requireNonNull(entity.getKeySpace()), template);
|
||||
|
||||
return fragments.append(RepositoryFragment.implemented(repository));
|
||||
}
|
||||
|
||||
@@ -107,6 +107,7 @@ public class VaultRevisionRepository<T> implements RevisionRepository<T, String,
|
||||
return Revisions.of(collectRevisions(id, metadata.getVersions()));
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullAway")
|
||||
private List<Revision<Integer, T>> collectRevisions(String id, List<Versioned.Metadata> versions) {
|
||||
|
||||
List<Revision<Integer, T>> revisions = new ArrayList<>();
|
||||
@@ -121,6 +122,7 @@ public class VaultRevisionRepository<T> implements RevisionRepository<T, String,
|
||||
|
||||
T entity = versioned.hasData() ? converter.read(this.metadata.getJavaType(), createDocument(id, versioned))
|
||||
: null;
|
||||
|
||||
revisions.add(Revision.of(new VaultRevisionMetadata(versioned), entity));
|
||||
}
|
||||
return revisions;
|
||||
@@ -157,6 +159,7 @@ public class VaultRevisionRepository<T> implements RevisionRepository<T, String,
|
||||
return toRevision(operations.get(getPath(id), Versioned.Version.from(revisionNumber)), id);
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullAway")
|
||||
private Optional<Revision<Integer, T>> toRevision(@Nullable Versioned<Map<String, Object>> versioned, String id) {
|
||||
|
||||
if (versioned == null) {
|
||||
|
||||
Reference in New Issue
Block a user