You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/08/11 10:07:31 UTC
[isis] branch master updated: ISIS-3119: convert build-in PK stringifiers to value-semantics-providers
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new de02942469 ISIS-3119: convert build-in PK stringifiers to value-semantics-providers
de02942469 is described below
commit de02942469c0a95c545eb68a0f01304d6bd8e53e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Aug 11 12:07:22 2022 +0200
ISIS-3119: convert build-in PK stringifiers to value-semantics-providers
---
.../applib/services/bookmark/IdStringifier.java | 1 -
.../ValueSemanticsBasedOnIdStringifier.java | 87 ++++++++++++++++++++++
.../valuesemantics/SerializableValueSemantics.java | 42 ++---------
.../commandlog/jpa/dom/CommandLogEntryPK.java | 41 ++--------
.../IsisModuleExtExecutionLogPersistenceJdo.java | 2 +-
.../executionlog/jdo/dom/ExecutionLogEntryPK.java | 17 ++---
.../IsisModuleExtExecutionLogPersistenceJpa.java | 2 +-
.../executionlog/jpa/dom/ExecutionLogEntryPK.java | 15 ++--
...IsisModuleExtExecutionOutboxPersistenceJdo.java | 2 +-
.../jdo/dom/ExecutionOutboxEntryPK.java | 10 +--
...IsisModuleExtExecutionOutboxPersistenceJpa.java | 2 +-
.../jpa/dom/ExecutionOutboxEntryPK.java | 10 +--
.../jpa/IsisModuleExtSessionLogPersistenceJpa.java | 2 +-
.../sessionlog/jpa/dom/SessionLogEntryPK.java | 9 ++-
14 files changed, 129 insertions(+), 113 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
index 049b71ce76..7ecc3699c4 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/IdStringifier.java
@@ -105,7 +105,6 @@ public interface IdStringifier<T> {
_Assert.assertFalse(correspondingClass.isPrimitive());
this.correspondingClass = correspondingClass;
- ClassUtils.resolvePrimitiveIfNecessary(correspondingClass);
}
@Override
diff --git a/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
new file mode 100644
index 0000000000..6a07f027dc
--- /dev/null
+++ b/api/applib/src/main/java/org/apache/isis/applib/value/semantics/ValueSemanticsBasedOnIdStringifier.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.applib.value.semantics;
+
+import org.springframework.util.ClassUtils;
+
+import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.commons.internal.assertions._Assert;
+import org.apache.isis.schema.common.v2.ValueType;
+
+import lombok.Getter;
+import lombok.NonNull;
+import lombok.experimental.Accessors;
+
+/**
+ * @since 2.x {@index}
+ */
+public abstract class ValueSemanticsBasedOnIdStringifier<T>
+extends ValueSemanticsAbstract<T>
+implements
+ IdStringifier<T> {
+
+ @Getter @Accessors(makeFinal = true)
+ private final Class<T> correspondingClass;
+
+ protected ValueSemanticsBasedOnIdStringifier(
+ final @NonNull Class<T> correspondingClass) {
+ _Assert.assertFalse(correspondingClass.isPrimitive());
+ this.correspondingClass = correspondingClass;
+ }
+
+ @Override
+ public final ValueType getSchemaValueType() {
+ return ValueType.STRING;
+ }
+
+ // -- ID STRINGIFIER
+
+ @Override
+ public final boolean handles(final @NonNull Class<?> candidateValueClass) {
+ return getCorrespondingClass()
+ .isAssignableFrom(ClassUtils.resolvePrimitiveIfNecessary(candidateValueClass));
+ }
+
+ @Override
+ public String enstring(@NonNull final T value) {
+ return value.toString();
+ }
+
+ @Override
+ public final T destring(@NonNull final String stringified, @NonNull final Class<?> targetEntityClass) {
+ return destring(stringified);
+ }
+
+ // -- COMPOSER
+
+ @Override
+ public final ValueDecomposition decompose(final T value) {
+ return decomposeAsString(value, this::enstring, ()->null);
+ }
+
+ @Override
+ public final T compose(final ValueDecomposition decomposition) {
+ return composeFromString(decomposition, this::destring, ()->null);
+ }
+
+ // --
+
+ protected abstract T destring(@NonNull String stringified);
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
index 527b15920d..252a5c9fd0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/SerializableValueSemantics.java
@@ -28,15 +28,12 @@ import javax.inject.Named;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
import org.apache.isis.applib.services.urlencoding.UrlEncodingService;
-import org.apache.isis.applib.value.semantics.ValueDecomposition;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import org.apache.isis.applib.value.semantics.ValueSemanticsProvider;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.resources._Serializables;
-import org.apache.isis.schema.common.v2.ValueType;
import lombok.NonNull;
@@ -48,40 +45,17 @@ import lombok.NonNull;
@Named("isis.val.SerializableValueSemantics")
@Priority(PriorityPrecedence.LAST)
public class SerializableValueSemantics
-extends ValueSemanticsAbstract<Serializable>
-implements
- IdStringifier<Serializable> {
+extends ValueSemanticsBasedOnIdStringifier<Serializable> {
private final UrlEncodingService codec;
@Inject
public SerializableValueSemantics(
final @NonNull UrlEncodingService codec) {
+ super(Serializable.class);
this.codec = codec;
}
- @Override
- public Class<Serializable> getCorrespondingClass() {
- return Serializable.class;
- }
-
- @Override
- public ValueType getSchemaValueType() {
- return ValueType.STRING;
- }
-
- // -- COMPOSER
-
- @Override
- public ValueDecomposition decompose(final Serializable value) {
- return decomposeAsString(value, this::enstring, ()->null);
- }
-
- @Override
- public Serializable compose(final ValueDecomposition decomposition) {
- return composeFromString(decomposition, this::destring, ()->null);
- }
-
// -- ID STRINGIFIER
@Override
@@ -92,13 +66,6 @@ implements
: null;
}
- @Override
- public Serializable destring(
- final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
- return destring(stringified);
- }
-
@Override
public Can<Serializable> getExamples() {
return Can.of(
@@ -109,7 +76,8 @@ implements
// -- HELPER
- private Serializable destring(
+ @Override
+ protected Serializable destring(
@NonNull final String stringified) {
return destringAs(stringified, Serializable.class);
}
diff --git a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntryPK.java b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
index 073df2a148..0e8a8c0ae2 100644
--- a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
+++ b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
@@ -30,12 +30,9 @@ import javax.persistence.Embeddable;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
-import org.apache.isis.applib.value.semantics.ValueDecomposition;
-import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntry;
import org.apache.isis.persistence.jpa.integration.typeconverters.java.util.JavaUtilUuidConverter;
-import org.apache.isis.schema.common.v2.ValueType;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
@@ -68,51 +65,23 @@ public class CommandLogEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
public static class Semantics
- extends ValueSemanticsAbstract<CommandLogEntryPK>
- implements IdStringifier<CommandLogEntryPK> {
+ extends ValueSemanticsBasedOnIdStringifier<CommandLogEntryPK> {
- @Override
- public Class<CommandLogEntryPK> getCorrespondingClass() {
- return CommandLogEntryPK.class;
- }
-
- @Override
- public ValueType getSchemaValueType() {
- return ValueType.STRING;
- }
-
- // -- COMPOSER
-
- @Override
- public ValueDecomposition decompose(final CommandLogEntryPK value) {
- return decomposeAsString(value, this::enstring, ()->null);
+ public Semantics() {
+ super(CommandLogEntryPK.class);
}
- @Override
- public CommandLogEntryPK compose(final ValueDecomposition decomposition) {
- return composeFromString(decomposition, this::destring, ()->null);
- }
-
- // -- ID STRINGIFIER
-
@Override
public String enstring(final CommandLogEntryPK value) {
return value.getInteractionId().toString();
}
@Override
- public CommandLogEntryPK destring(
- @NonNull final String stringified,
- @NonNull final Class<?> targetEntityClass) {
- return destring(stringified);
- }
-
- private CommandLogEntryPK destring(
+ protected CommandLogEntryPK destring(
@NonNull final String stringified) {
return new CommandLogEntryPK(UUID.fromString(stringified));
}
-
}
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/IsisModuleExtExecutionLogPersistenceJdo.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/IsisModuleExtExecutionLogPersistenceJdo.java
index c8d87d1c5f..caaa4fd54e 100644
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/IsisModuleExtExecutionLogPersistenceJdo.java
+++ b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/IsisModuleExtExecutionLogPersistenceJdo.java
@@ -40,7 +40,7 @@ import org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAb
// @Service's
ExecutionLogEntryRepository.class,
- ExecutionLogEntryPK.Stringifier.class,
+ ExecutionLogEntryPK.Semantics.class,
// entities
ExecutionLogEntry.class
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
index 1cb39e0ad0..fb82c34319 100644
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
+++ b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/isis/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
@@ -27,7 +27,7 @@ import javax.annotation.Priority;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -62,22 +62,19 @@ public class ExecutionLogEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
- public static class Stringifier extends IdStringifier.Abstract<ExecutionLogEntryPK> {
+ public static class Semantics
+ extends ValueSemanticsBasedOnIdStringifier<ExecutionLogEntryPK> {
- public Stringifier() {
+ public Semantics() {
super(ExecutionLogEntryPK.class);
}
- @Override
- public String enstring(final ExecutionLogEntryPK value) {
- return value.toString();
- }
-
@Override
public ExecutionLogEntryPK destring(
- final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final @NonNull String stringified) {
return new ExecutionLogEntryPK(stringified);
}
+
+
}
}
diff --git a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/IsisModuleExtExecutionLogPersistenceJpa.java b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/IsisModuleExtExecutionLogPersistenceJpa.java
index 608a73f72a..8c86479bfe 100644
--- a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/IsisModuleExtExecutionLogPersistenceJpa.java
+++ b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/IsisModuleExtExecutionLogPersistenceJpa.java
@@ -44,7 +44,7 @@ import org.apache.isis.testing.fixtures.applib.teardown.jpa.TeardownFixtureJpaAb
// @Service's
ExecutionLogEntryRepository.class,
- ExecutionLogEntryPK.Stringifier.class,
+ ExecutionLogEntryPK.Semantics.class,
// entities
ExecutionLogEntry.class
diff --git a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
index d7d7eb56b5..7cdb2bf1b7 100644
--- a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
+++ b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
@@ -30,7 +30,7 @@ import javax.persistence.Embeddable;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import org.apache.isis.persistence.jpa.integration.typeconverters.java.util.JavaUtilUuidConverter;
import lombok.AccessLevel;
@@ -73,21 +73,16 @@ public class ExecutionLogEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
- public static class Stringifier extends IdStringifier.Abstract<ExecutionLogEntryPK> {
+ public static class Semantics
+ extends ValueSemanticsBasedOnIdStringifier<ExecutionLogEntryPK> {
- public Stringifier() {
+ public Semantics() {
super(ExecutionLogEntryPK.class);
}
- @Override
- public String enstring(final ExecutionLogEntryPK value) {
- return value.toString();
- }
-
@Override
public ExecutionLogEntryPK destring(
- final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final @NonNull String stringified) {
return new ExecutionLogEntryPK(stringified);
}
}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/IsisModuleExtExecutionOutboxPersistenceJdo.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/IsisModuleExtExecutionOutboxPersistenceJdo.java
index c876d65bdb..a27348c297 100644
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/IsisModuleExtExecutionOutboxPersistenceJdo.java
+++ b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/IsisModuleExtExecutionOutboxPersistenceJdo.java
@@ -40,7 +40,7 @@ import org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAb
// @Service's
ExecutionOutboxEntryRepository.class,
- ExecutionOutboxEntryPK.Stringifier.class,
+ ExecutionOutboxEntryPK.Semantics.class,
// entities
ExecutionOutboxEntry.class
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
index 662c67452b..79a2be7db0 100644
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
+++ b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/isis/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
@@ -27,7 +27,7 @@ import javax.annotation.Priority;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -62,9 +62,10 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
- public static class Stringifier extends IdStringifier.Abstract<ExecutionOutboxEntryPK> {
+ public static class Semantics
+ extends ValueSemanticsBasedOnIdStringifier<ExecutionOutboxEntryPK> {
- public Stringifier() {
+ public Semantics() {
super(ExecutionOutboxEntryPK.class);
}
@@ -75,8 +76,7 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Override
public ExecutionOutboxEntryPK destring(
- final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final @NonNull String stringified) {
return new ExecutionOutboxEntryPK(stringified);
}
}
diff --git a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/IsisModuleExtExecutionOutboxPersistenceJpa.java b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/IsisModuleExtExecutionOutboxPersistenceJpa.java
index c7929ec451..3899fdd8ed 100644
--- a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/IsisModuleExtExecutionOutboxPersistenceJpa.java
+++ b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/IsisModuleExtExecutionOutboxPersistenceJpa.java
@@ -44,7 +44,7 @@ import org.apache.isis.testing.fixtures.applib.teardown.jpa.TeardownFixtureJpaAb
// @Service's
ExecutionOutboxEntryRepository.class,
- ExecutionOutboxEntryPK.Stringifier.class,
+ ExecutionOutboxEntryPK.Semantics.class,
// entities
ExecutionOutboxEntry.class
diff --git a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
index 98f854f364..059d038058 100644
--- a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
+++ b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/isis/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
@@ -30,7 +30,7 @@ import javax.persistence.Embeddable;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import org.apache.isis.persistence.jpa.integration.typeconverters.java.util.JavaUtilUuidConverter;
import lombok.AccessLevel;
@@ -73,9 +73,10 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
- public static class Stringifier extends IdStringifier.Abstract<ExecutionOutboxEntryPK> {
+ public static class Semantics
+ extends ValueSemanticsBasedOnIdStringifier<ExecutionOutboxEntryPK> {
- public Stringifier() {
+ public Semantics() {
super(ExecutionOutboxEntryPK.class);
}
@@ -86,8 +87,7 @@ public class ExecutionOutboxEntryPK implements Serializable {
@Override
public ExecutionOutboxEntryPK destring(
- final @NonNull String stringified,
- final @NonNull Class<?> targetEntityClass) {
+ final @NonNull String stringified) {
return new ExecutionOutboxEntryPK(stringified);
}
}
diff --git a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/IsisModuleExtSessionLogPersistenceJpa.java b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/IsisModuleExtSessionLogPersistenceJpa.java
index 49a4f22f8d..2140b863ac 100644
--- a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/IsisModuleExtSessionLogPersistenceJpa.java
+++ b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/IsisModuleExtSessionLogPersistenceJpa.java
@@ -44,7 +44,7 @@ import org.apache.isis.testing.fixtures.applib.teardown.jpa.TeardownFixtureJpaAb
// services
SessionLogEntryRepository.class,
- SessionLogEntryPK.Stringifier.class,
+ SessionLogEntryPK.Semantics.class,
// entities, eager meta-model introspection
SessionLogEntry.class,
diff --git a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
index f9c1e1cc94..42517e6979 100644
--- a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
+++ b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/isis/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
@@ -31,7 +31,7 @@ import javax.persistence.Embeddable;
import org.springframework.stereotype.Component;
import org.apache.isis.applib.annotation.PriorityPrecedence;
-import org.apache.isis.applib.services.bookmark.IdStringifier;
+import org.apache.isis.applib.value.semantics.ValueSemanticsBasedOnIdStringifier;
import org.apache.isis.extensions.sessionlog.applib.dom.SessionLogEntry;
import org.apache.isis.persistence.jpa.integration.typeconverters.java.util.JavaUtilUuidConverter;
@@ -63,9 +63,10 @@ public class SessionLogEntryPK implements Serializable {
@Component
@Priority(PriorityPrecedence.MIDPOINT)
- public static class Stringifier extends IdStringifier.Abstract<SessionLogEntryPK> {
+ public static class Semantics
+ extends ValueSemanticsBasedOnIdStringifier<SessionLogEntryPK> {
- public Stringifier() {
+ public Semantics() {
super(SessionLogEntryPK.class);
}
@@ -75,7 +76,7 @@ public class SessionLogEntryPK implements Serializable {
}
@Override
- public SessionLogEntryPK destring(@NonNull final String stringified, @NonNull final Class<?> targetEntityClass) {
+ public SessionLogEntryPK destring(@NonNull final String stringified) {
return new SessionLogEntryPK(UUID.fromString(stringified));
}
}