Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: spring-projects/spring-data-keyvalue
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4.0.0-M3
Choose a base ref
...
head repository: spring-projects/spring-data-keyvalue
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 18 commits
  • 6 files changed
  • 2 contributors

Commits on May 16, 2025

  1. Prepare next development iteration.

    See #633
    mp911de committed May 16, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    fdc4a67 View commit details
  2. After release cleanups.

    See #633
    mp911de committed May 16, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    8d926d5 View commit details

Commits on Jul 3, 2025

  1. Add getRequiredKeySpace to KeyValuePersistentEntity.

    Improve nullability handling for entities that are required to provide a keyspace.
    
    Closes #640
    mp911de committed Jul 3, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    72bc045 View commit details

Commits on Jul 17, 2025

  1. Upgrade to Maven Wrapper 3.9.11.

    See #641
    mp911de committed Jul 17, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    a34d4d6 View commit details

Commits on Jul 18, 2025

  1. Prepare 4.0 M4 (2025.1.0).

    See #637
    mp911de committed Jul 18, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    8fde008 View commit details
  2. Release version 4.0 M4 (2025.1.0).

    See #637
    mp911de committed Jul 18, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    2f0bdf3 View commit details
  3. Prepare next development iteration.

    See #637
    mp911de committed Jul 18, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    b1ab313 View commit details
  4. After release cleanups.

    See #637
    mp911de committed Jul 18, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    c61dda8 View commit details

Commits on Aug 14, 2025

  1. Polishing.

    Refine antora documentation keys.
    
    See #646
    mp911de committed Aug 14, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    52cb16e View commit details

Commits on Aug 15, 2025

  1. Prepare 4.0 M5 (2025.1.0).

    See #646
    mp911de committed Aug 15, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    5ae879c View commit details
  2. Release version 4.0 M5 (2025.1.0).

    See #646
    mp911de committed Aug 15, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    c4fb5b1 View commit details
  3. Prepare next development iteration.

    See #646
    mp911de committed Aug 15, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    decc1e3 View commit details
  4. After release cleanups.

    See #646
    mp911de committed Aug 15, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    2796dec View commit details

Commits on Aug 18, 2025

  1. Refine version properties for documentation build.

    mp911de committed Aug 18, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    mp911de Mark Paluch
    Copy the full SHA
    75991b3 View commit details

Commits on Sep 12, 2025

  1. Prepare 4.0 M6 (2025.1.0).

    See #649
    christophstrobl committed Sep 12, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    christophstrobl Christoph Strobl
    Copy the full SHA
    ab224e2 View commit details
  2. Verified

    This commit was signed with the committer’s verified signature.
    christophstrobl Christoph Strobl
    Copy the full SHA
    1662b42 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature.
    christophstrobl Christoph Strobl
    Copy the full SHA
    5085756 View commit details
  4. After release cleanups.

    See #649
    christophstrobl committed Sep 12, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    christophstrobl Christoph Strobl
    Copy the full SHA
    91d006a View commit details
4 changes: 2 additions & 2 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#Thu Nov 07 09:47:19 CET 2024
distributionUrl=https\://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
#Thu Jul 17 13:59:50 CEST 2025
distributionUrl=https\://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
24 changes: 18 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-keyvalue</artifactId>
<version>4.0.0-M3</version>
<version>4.0.0-SNAPSHOT</version>

<name>Spring Data KeyValue</name>

<parent>
<groupId>org.springframework.data.build</groupId>
<artifactId>spring-data-parent</artifactId>
<version>4.0.0-M3</version>
<version>4.0.0-SNAPSHOT</version>
<relativePath/>
</parent>

<properties>
<springdata.commons>4.0.0-M3</springdata.commons>
<springdata.commons>4.0.0-SNAPSHOT</springdata.commons>
<java-module-name>spring.data.keyvalue</java-module-name>
</properties>

@@ -107,8 +107,20 @@
</profiles>

<repositories>


<repository>
<id>spring-snapshot</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>

</project>
23 changes: 12 additions & 11 deletions src/main/antora/resources/antora-resources/antora.yml
Original file line number Diff line number Diff line change
@@ -3,19 +3,20 @@ prerelease: ${antora-component.prerelease}

asciidoc:
attributes:
copyright-year: ${current.year}
version: ${project.version}
springversionshort: ${spring.short}
springversion: ${spring}
attribute-missing: 'warn'
commons: ${springdata.commons.docs}
chomp: 'all'
version: '${project.version}'
copyright-year: '${current.year}'
springversionshort: '${spring.short}'
springversion: '${spring}'
commons: '${springdata.commons.docs}'
include-xml-namespaces: false
spring-data-commons-docs-url: https://docs.spring.io/spring-data/commons/reference
spring-data-commons-javadoc-base: https://docs.spring.io/spring-data/commons/docs/${springdata.commons}/api/
springdocsurl: https://docs.spring.io/spring-framework/reference/{springversionshort}
springjavadocurl: https://docs.spring.io/spring-framework/docs/${spring}/javadoc-api
spring-data-commons-docs-url: '${documentation.baseurl}/spring-data/commons/reference/${springdata.commons.short}'
spring-data-commons-javadoc-base: '{spring-data-commons-docs-url}/api/java'
springdocsurl: '${documentation.baseurl}/spring-framework/reference/{springversionshort}'
spring-framework-docs: '{springdocsurl}'
springjavadocurl: '${documentation.spring-javadoc-url}'
spring-framework-javadoc: '{springjavadocurl}'
springhateoasversion: ${spring-hateoas}
releasetrainversion: ${releasetrain}
springhateoasversion: '${spring-hateoas}'
releasetrainversion: '${releasetrain}'
store: KeyValue
Original file line number Diff line number Diff line change
@@ -16,10 +16,15 @@
package org.springframework.data.keyvalue.core.mapping;

import org.jspecify.annotations.Nullable;

import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.model.MutablePersistentEntity;

/**
* KeyValue-specific extension of {@link PersistentEntity} declaring a {@literal keySpace}.
*
* @author Christoph Strobl
* @author Mark Paluch
* @param <T>
*/
public interface KeyValuePersistentEntity<T, P extends KeyValuePersistentProperty<P>>
@@ -32,4 +37,24 @@ public interface KeyValuePersistentEntity<T, P extends KeyValuePersistentPropert
*/
@Nullable
String getKeySpace();

/**
* Returns the required {@literal keySpace} or throws an {@link IllegalStateException} if the {@literal keySpace} is
* not defined.
*
* @return the {@literal keySpace} property of this {@link PersistentEntity}.
* @throws IllegalStateException if the {@literal keySpace} is not defined.
* @since 4.0
*/
default String getRequiredKeySpace() {

String keySpace = getKeySpace();

if (keySpace != null) {
return keySpace;
}

throw new IllegalStateException(String.format("Required keySpace not defined for %s", getType()));
}

}
5 changes: 4 additions & 1 deletion src/main/resources/notice.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Spring Data KeyValue 4.0 M3 (2025.1.0)
Spring Data KeyValue 4.0 M6 (2025.1.0)
Copyright (c) 2015-2019 Pivotal Software, Inc.

This product is licensed to you under the Apache License, Version 2.0
@@ -11,3 +11,6 @@ these subcomponents is subject to the terms and conditions of the
subcomponent's license, as noted in the license.txt file.





Original file line number Diff line number Diff line change
@@ -35,12 +35,12 @@
*/
class BasicKeyValuePersistentEntityUnitTests {

private KeyValueMappingContext<? extends KeyValuePersistentEntity<?, ?>, ? extends KeyValuePersistentProperty<?>> mappingContext = new KeyValueMappingContext<>();
KeyValueMappingContext<? extends KeyValuePersistentEntity<?, ?>, ? extends KeyValuePersistentProperty<?>> mappingContext = new KeyValueMappingContext<>();

@Test // DATAKV-268
void shouldDeriveKeyspaceFromClassName() {

assertThat(mappingContext.getPersistentEntity(KeyspaceEntity.class).getKeySpace())
assertThat(mappingContext.getPersistentEntity(KeyspaceEntity.class).getRequiredKeySpace())
.isEqualTo(KeyspaceEntity.class.getName());
}

@@ -54,7 +54,7 @@ void shouldEvaluateKeyspaceExpression() {
persistentEntity.setEvaluationContextProvider(
new ExtensionAwareEvaluationContextProvider(Collections.singletonList(new SampleExtension())));

assertThat(persistentEntity.getKeySpace()).isEqualTo("some_foo");
assertThat(persistentEntity.getRequiredKeySpace()).isEqualTo("some_foo");
}

@Test // DATAKV-268
@@ -64,7 +64,7 @@ void shouldEvaluateEntityWithoutKeyspace() {
persistentEntity.setEvaluationContextProvider(
new ExtensionAwareEvaluationContextProvider(Collections.singletonList(new SampleExtension())));

assertThat(persistentEntity.getKeySpace()).isEqualTo(NoKeyspaceEntity.class.getName());
assertThat(persistentEntity.getRequiredKeySpace()).isEqualTo(NoKeyspaceEntity.class.getName());
}

@Test // GH-461