This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-3102
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/ISIS-3102 by this push:
new 55d4a21d00 ISIS-3002: removes special case of encoding some ObjectIds
using UUID
55d4a21d00 is described below
commit 55d4a21d00242ed62db4ee4aa209f88d15da3b39
Author: Dan Haywood <[email protected]>
AuthorDate: Sun Jul 31 14:25:01 2022 +0100
ISIS-3002: removes special case of encoding some ObjectIds using UUID
---
.../idstringifiers/IdStringifierForUuid.java | 6 +-
.../facets/entity/IdStringifierForObjectId.java | 24 --------
.../entity/IdStringifierForObjectIdentity.java | 24 --------
...va => IdStringifierForObjectIdentity_Test.java} | 6 +-
...dStringifierForObjectIdentity_forUuid_Test.java | 69 ----------------------
5 files changed, 5 insertions(+), 124 deletions(-)
diff --git
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
index 88055f2936..6bfb0fbf50 100644
---
a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
+++
b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/idstringifiers/IdStringifierForUuid.java
@@ -32,14 +32,14 @@ import lombok.NonNull;
@Component
@Priority(PriorityPrecedence.LATE)
-public class IdStringifierForUuid extends
IdStringifier.AbstractWithPrefix<UUID> {
+public class IdStringifierForUuid extends IdStringifier.Abstract<UUID> {
public IdStringifierForUuid() {
- super(UUID.class, "u");
+ super(UUID.class);
}
@Override
- public UUID doDestring(final @NonNull String stringified, @NonNull
Class<?> targetEntityClass) {
+ public UUID destring(final @NonNull String stringified, @NonNull Class<?>
targetEntityClass) {
return UUID.fromString(stringified);
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
index e3d122019c..3ebcc66d8b 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectId.java
@@ -18,17 +18,13 @@
*/
package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
-import java.util.UUID;
-
import javax.annotation.Priority;
-import javax.inject.Inject;
import org.datanucleus.identity.ObjectId;
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.bookmark.idstringifiers.IdStringifierForUuid;
import lombok.Builder;
import lombok.NonNull;
@@ -38,29 +34,13 @@ import lombok.NonNull;
@Builder
public class IdStringifierForObjectId extends IdStringifier.Abstract<ObjectId>
{
- @Inject IdStringifierForUuid idStringifierForUuid;
-
public IdStringifierForObjectId() {
super(ObjectId.class);
}
- /**
- * for testing only
- * @param idStringifierForUuid
- */
- @Builder
- IdStringifierForObjectId(final IdStringifierForUuid idStringifierForUuid) {
- this();
- this.idStringifierForUuid = idStringifierForUuid;
- }
-
@Override
public String enstring(final @NonNull ObjectId value) {
Object keyAsObject = value.getKeyAsObject();
- if (keyAsObject instanceof UUID) {
- UUID uuid = (UUID) keyAsObject;
- return idStringifierForUuid.enstring(uuid);
- }
// rely on JDO spec (5.4.3)
return value.toString();
}
@@ -69,10 +49,6 @@ public class IdStringifierForObjectId extends
IdStringifier.Abstract<ObjectId> {
public ObjectId destring(
final @NonNull String stringified,
final Class<?> targetEntityClassIfAny) {
- if (idStringifierForUuid.recognizes(stringified)) {
- UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClassIfAny);
- return new ObjectId(targetEntityClassIfAny, uuid);
- }
return new ObjectId(targetEntityClassIfAny, stringified);
}
}
diff --git
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
index a27c9f0668..fbe8b47ecf 100644
---
a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
+++
b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/IdStringifierForObjectIdentity.java
@@ -18,17 +18,13 @@
*/
package org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity;
-import java.util.UUID;
-
import javax.annotation.Priority;
-import javax.inject.Inject;
import javax.jdo.identity.ObjectIdentity;
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.bookmark.idstringifiers.IdStringifierForUuid;
import lombok.Builder;
import lombok.NonNull;
@@ -38,29 +34,13 @@ import lombok.NonNull;
@Builder
public class IdStringifierForObjectIdentity extends
IdStringifier.Abstract<ObjectIdentity> {
- @Inject IdStringifierForUuid idStringifierForUuid;
-
public IdStringifierForObjectIdentity() {
super(ObjectIdentity.class);
}
- /**
- * for testing only
- * @param idStringifierForUuid
- */
- @Builder
- IdStringifierForObjectIdentity(final IdStringifierForUuid
idStringifierForUuid) {
- this();
- this.idStringifierForUuid = idStringifierForUuid;
- }
-
@Override
public String enstring(final @NonNull ObjectIdentity value) {
Object keyAsObject = value.getKeyAsObject();
- if (keyAsObject instanceof UUID) {
- UUID uuid = (UUID) keyAsObject;
- return idStringifierForUuid.enstring(uuid);
- }
// rely on JDO spec (5.4.3)
return value.toString();
}
@@ -69,10 +49,6 @@ public class IdStringifierForObjectIdentity extends
IdStringifier.Abstract<Objec
public ObjectIdentity destring(
final @NonNull String stringified,
final Class<?> targetEntityClassIfAny) {
- if (idStringifierForUuid.recognizes(stringified)) {
- UUID uuid = idStringifierForUuid.destring(stringified,
targetEntityClassIfAny);
- return new ObjectIdentity(targetEntityClassIfAny, uuid);
- }
return new ObjectIdentity(targetEntityClassIfAny, stringified);
}
}
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
similarity index 92%
rename from
persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
rename to
persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
index 27dfd9ec80..96b133a311 100644
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_other_Test.java
+++
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_Test.java
@@ -34,7 +34,7 @@ import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStr
import lombok.val;
-class IdStringifierForObjectIdentity_other_Test {
+class IdStringifierForObjectIdentity_Test {
public static Stream<Arguments> roundtrip() {
return Stream.of(
@@ -54,9 +54,7 @@ class IdStringifierForObjectIdentity_other_Test {
val entityType = Customer.class;
- val stringifier = IdStringifierForObjectIdentity.builder()
- .idStringifierForUuid(new
IdStringifierForUuid())
- .build();
+ val stringifier = IdStringifierForObjectIdentity.builder().build();
val stringified = stringifier.enstring(new ObjectIdentity(entityType,
value));
val parse = stringifier.destring(stringified, entityType);
diff --git
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_forUuid_Test.java
b/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_forUuid_Test.java
deleted file mode 100644
index 0e53f7494e..0000000000
---
a/persistence/jdo/datanucleus/src/test/java/org/apache/isis/persistence/jdo/datanucleus/oid/IdStringifierForObjectIdentity_forUuid_Test.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.persistence.jdo.datanucleus.oid;
-
-import java.util.UUID;
-import java.util.stream.Stream;
-
-import javax.jdo.identity.ObjectIdentity;
-
-import org.assertj.core.api.Assertions;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import
org.apache.isis.applib.services.bookmark.idstringifiers.IdStringifierForUuid;
-import
org.apache.isis.persistence.jdo.datanucleus.metamodel.facets.entity.IdStringifierForObjectIdentity;
-
-import lombok.val;
-
-class IdStringifierForObjectIdentity_forUuid_Test {
-
- public static Stream<Arguments> roundtrip() {
- return Stream.of(
- Arguments.of(UUID.randomUUID()),
- Arguments.of(UUID.randomUUID()),
- Arguments.of(UUID.randomUUID())
- );
- }
-
- static class Customer {}
-
- @ParameterizedTest
- @MethodSource()
- void roundtrip(UUID value) {
-
- val entityType = Customer.class;
-
- val stringifier = IdStringifierForObjectIdentity.builder()
- .idStringifierForUuid(new
IdStringifierForUuid())
- .build();
-
- val stringified = stringifier.enstring(new ObjectIdentity(entityType,
value));
- val parse = stringifier.destring(stringified, entityType);
-
- Assertions.assertThat(parse.getKeyAsObject()).isEqualTo(value);
- Assertions.assertThat(parse.getTargetClass()).isEqualTo(entityType);
- }
-
-}