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 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}