diff --git a/model/infinispan/pom.xml b/model/infinispan/pom.xml
index 5b5c51c65a7..008252e45c4 100755
--- a/model/infinispan/pom.xml
+++ b/model/infinispan/pom.xml
@@ -66,21 +66,6 @@
provided
-
- org.infinispan.protostream
- protostream
-
-
- org.infinispan.protostream
- protostream-types
-
-
- org.infinispan.protostream
- protostream-processor
-
- provided
-
-
junit
junit
@@ -98,7 +83,7 @@
- org.infinispan.maven-plugins
+ org.infinispan.protostream
proto-schema-compatibility-maven-plugin
diff --git a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/WrapperClusterEvent.java b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/WrapperClusterEvent.java
index 05dd0f6fd4a..63370fe7c66 100644
--- a/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/WrapperClusterEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/cluster/infinispan/WrapperClusterEvent.java
@@ -57,7 +57,7 @@ public class WrapperClusterEvent implements ClusterEvent {
@ProtoFactory
static WrapperClusterEvent protoFactory(String eventKey, String senderAddress, String senderSite, SiteFilter siteFilter, List eventPS) {
var events = eventPS.stream().map(WrappedMessage::getValue).map(ClusterEvent.class::cast).toList();
- return new WrapperClusterEvent(eventKey, Marshalling.emptyStringToNull(senderAddress), Marshalling.emptyStringToNull(senderSite), siteFilter, events);
+ return new WrapperClusterEvent(eventKey, senderAddress, senderSite, siteFilter, events);
}
public static WrapperClusterEvent wrap(String eventKey, Collection extends ClusterEvent> events, String senderAddress, String senderSite, ClusterProvider.DCNotify dcNotify, boolean ignoreSender) {
diff --git a/model/infinispan/src/main/java/org/keycloak/marshalling/KeycloakModelSchema.java b/model/infinispan/src/main/java/org/keycloak/marshalling/KeycloakModelSchema.java
index b322610490f..c463359e6d1 100644
--- a/model/infinispan/src/main/java/org/keycloak/marshalling/KeycloakModelSchema.java
+++ b/model/infinispan/src/main/java/org/keycloak/marshalling/KeycloakModelSchema.java
@@ -94,6 +94,7 @@ import org.keycloak.storage.managers.UserStorageSyncManager;
syntax = ProtoSyntax.PROTO3,
schemaPackageName = "keycloak",
schemaFilePath = "proto/generated",
+ allowNullFields = true,
// common-types for UUID
dependsOn = CommonTypes.class,
diff --git a/model/infinispan/src/main/java/org/keycloak/marshalling/Marshalling.java b/model/infinispan/src/main/java/org/keycloak/marshalling/Marshalling.java
index 9980c475285..5ca13fb3af6 100644
--- a/model/infinispan/src/main/java/org/keycloak/marshalling/Marshalling.java
+++ b/model/infinispan/src/main/java/org/keycloak/marshalling/Marshalling.java
@@ -155,9 +155,4 @@ public final class Marshalling {
public static void configure(ConfigurationBuilder builder) {
builder.addContextInitializer(KeycloakModelSchema.INSTANCE);
}
-
-
- public static String emptyStringToNull(String value) {
- return value == null || value.isEmpty() ? null : value;
- }
}
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceRemovedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceRemovedEvent.java
index 61a4ab9ed1f..6f88bcf6534 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceRemovedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceRemovedEvent.java
@@ -32,7 +32,7 @@ public class ResourceRemovedEvent extends BaseResourceEvent {
@ProtoFactory
static ResourceRemovedEvent protoFactory(String id, String name, String owner, String serverId, String type, Set uris, Set scopes) {
- return new ResourceRemovedEvent(id, name, owner, serverId, Marshalling.emptyStringToNull(type), uris, scopes);
+ return new ResourceRemovedEvent(id, name, owner, serverId, type, uris, scopes);
}
private ResourceRemovedEvent(String id, String name, String owner, String serverId, String type, Set uris, Set scopes) {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceUpdatedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceUpdatedEvent.java
index 78e578641e6..be0c276a3fb 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceUpdatedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/authorization/events/ResourceUpdatedEvent.java
@@ -32,7 +32,7 @@ public class ResourceUpdatedEvent extends BaseResourceEvent {
@ProtoFactory
static ResourceUpdatedEvent protoFactory(String id, String name, String owner, String serverId, String type, Set uris, Set scopes) {
- return new ResourceUpdatedEvent(id, name, owner, serverId, Marshalling.emptyStringToNull(type), uris, scopes);
+ return new ResourceUpdatedEvent(id, name, owner, serverId, type, uris, scopes);
}
private ResourceUpdatedEvent(String id, String name, String owner, String serverId, String type, Set uris, Set scopes) {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupAddedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupAddedEvent.java
index 79df2f671d3..2eedcbcc12f 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupAddedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupAddedEvent.java
@@ -46,7 +46,7 @@ public class GroupAddedEvent extends InvalidationEvent implements RealmCacheInva
@ProtoFactory
static GroupAddedEvent protoFactory(String id, String realmId, String parentId) {
- return new GroupAddedEvent(id, realmId, Marshalling.emptyStringToNull(parentId));
+ return new GroupAddedEvent(id, realmId, parentId);
}
public static GroupAddedEvent create(String groupId, String parentId, String realmId) {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupMovedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupMovedEvent.java
index 6e2ee7df9ad..adbaba06d9c 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupMovedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupMovedEvent.java
@@ -49,7 +49,7 @@ public class GroupMovedEvent extends InvalidationEvent implements RealmCacheInva
@ProtoFactory
static GroupMovedEvent protoFactory(String id, String newParentId, String oldParentId, String realmId) {
- return new GroupMovedEvent(id, Marshalling.emptyStringToNull(newParentId), Marshalling.emptyStringToNull(oldParentId), realmId);
+ return new GroupMovedEvent(id, newParentId, oldParentId, realmId);
}
public static GroupMovedEvent create(GroupModel group, GroupModel toParent, String realmId) {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupRemovedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupRemovedEvent.java
index 9f914b8dc31..1fc0b41d6d1 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupRemovedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/GroupRemovedEvent.java
@@ -46,7 +46,7 @@ public class GroupRemovedEvent extends InvalidationEvent implements RealmCacheIn
@ProtoFactory
static GroupRemovedEvent protoFactory(String id, String realmId, String parentId) {
- return new GroupRemovedEvent(id, realmId, Marshalling.emptyStringToNull(parentId));
+ return new GroupRemovedEvent(id, realmId, parentId);
}
public static GroupRemovedEvent create(GroupModel group, String realmId) {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFederationLinkRemovedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFederationLinkRemovedEvent.java
index b8b7e42bb05..993b6af3fbc 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFederationLinkRemovedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFederationLinkRemovedEvent.java
@@ -53,7 +53,7 @@ public class UserFederationLinkRemovedEvent extends InvalidationEvent implements
@ProtoFactory
static UserFederationLinkRemovedEvent protoFactory(String id, String realmId, String identityProviderId, String socialUserId) {
- return new UserFederationLinkRemovedEvent(id, realmId, Marshalling.emptyStringToNull(identityProviderId), Marshalling.emptyStringToNull(socialUserId));
+ return new UserFederationLinkRemovedEvent(id, realmId, identityProviderId, socialUserId);
}
@ProtoField(2)
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFullInvalidationEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFullInvalidationEvent.java
index 7babc97eee7..34769a8b2ca 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFullInvalidationEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserFullInvalidationEvent.java
@@ -70,7 +70,7 @@ public class UserFullInvalidationEvent extends InvalidationEvent implements User
@ProtoFactory
static UserFullInvalidationEvent protoFactory(String id, String username, String email, String realmId, boolean identityFederationEnabled, Map federatedIdentities) {
- return new UserFullInvalidationEvent(id, username, Marshalling.emptyStringToNull(email), realmId, identityFederationEnabled, federatedIdentities);
+ return new UserFullInvalidationEvent(id, username, email, realmId, identityFederationEnabled, federatedIdentities);
}
public Map getFederatedIdentities() {
diff --git a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserUpdatedEvent.java b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserUpdatedEvent.java
index 9626e132094..41bb8b330b7 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserUpdatedEvent.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/cache/infinispan/events/UserUpdatedEvent.java
@@ -52,7 +52,7 @@ public class UserUpdatedEvent extends InvalidationEvent implements UserCacheInva
@ProtoFactory
static UserUpdatedEvent protoFactory(String id, String username, String email, String realmId) {
- return new UserUpdatedEvent(id, username, Marshalling.emptyStringToNull(email), realmId);
+ return new UserUpdatedEvent(id, username, email, realmId);
}
@Override
diff --git a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/AuthenticatedClientSessionEntity.java b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/AuthenticatedClientSessionEntity.java
index dc7890c1108..ad61c0b34b7 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/AuthenticatedClientSessionEntity.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/AuthenticatedClientSessionEntity.java
@@ -156,9 +156,9 @@ public class AuthenticatedClientSessionEntity extends SessionEntity {
AuthenticatedClientSessionEntity(String realmId, String authMethod, String redirectUri, int timestamp, String action, Map notes, UUID id) {
super(realmId);
this.authMethod = authMethod;
- this.redirectUri = Marshalling.emptyStringToNull(redirectUri);
+ this.redirectUri = redirectUri;
this.timestamp = timestamp;
- this.action = Marshalling.emptyStringToNull(action);
+ this.action = action;
this.notes = notes;
this.id = id;
}
diff --git a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/LoginFailureEntity.java b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/LoginFailureEntity.java
index a76ca9c9bc8..d0601041811 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/LoginFailureEntity.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/entities/LoginFailureEntity.java
@@ -51,7 +51,7 @@ public class LoginFailureEntity extends SessionEntity {
this.numFailures = numFailures;
this.numTemporaryLockouts = numTemporaryLockouts;
this.lastFailure = lastFailure;
- this.lastIPFailure = Marshalling.emptyStringToNull(lastIPFailure);
+ this.lastIPFailure = lastIPFailure;
}
@ProtoField(2)
diff --git a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/stream/UserSessionPredicate.java b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/stream/UserSessionPredicate.java
index 1e3d8dc8865..917b96e759d 100644
--- a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/stream/UserSessionPredicate.java
+++ b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/stream/UserSessionPredicate.java
@@ -118,10 +118,10 @@ public class UserSessionPredicate implements Predicate6.2.13.Final
6.2.13.Final
15.0.5.Final
+ 5.0.7.Final
2.1.1
@@ -199,7 +200,6 @@
3.6.2
6.3.0
3.2.0
- 1.0.5.Final
512m
@@ -1439,6 +1439,25 @@
rdf-urdna
${io.setl.rdf-urdna.version}
+
+
+ org.infinispan.protostream
+ protostream
+ ${protostream.version}
+
+
+ org.infinispan.protostream
+ protostream-types
+ ${protostream.version}
+
+
+ org.infinispan.protostream
+ protostream-processor
+ ${protostream.version}
+
+ provided
+
+
@@ -1695,9 +1714,9 @@
${build-helper-maven-plugin.version}
- org.infinispan.maven-plugins
+ org.infinispan.protostream
proto-schema-compatibility-maven-plugin
- ${infinispan.maven-plugins.version}
+ ${protostream.version}
${commitProtoLockChanges}