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/19 14:21:28 UTC
[isis] branch master updated: ISIS-3127: [RO] make JsonValueEncoder an overridable service
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 76cf90add6 ISIS-3127: [RO] make JsonValueEncoder an overridable service
76cf90add6 is described below
commit 76cf90add6ed20f6f7c7e9352438ef00e0c99a83
Author: andi-huber <ah...@apache.org>
AuthorDate: Fri Aug 19 16:21:20 2022 +0200
ISIS-3127: [RO] make JsonValueEncoder an overridable service
---
.../isis/testdomain/rest/JsonValueEncoderTest.java | 6 +--
.../IsisModuleRestfulObjectsRendering.java | 4 +-
.../rendering/ReprRendererAbstract.java | 6 +--
.../domainobjects/DomainObjectReprRenderer.java | 4 +-
.../domainobjects/ObjectPropertyReprRenderer.java | 1 +
.../domainobjects/ScalarValueReprRenderer.java | 1 +
.../valuerender}/JsonValueConverter.java | 11 +----
.../valuerender/JsonValueEncoderService.java | 57 ++++++++++++++++++++++
.../JsonValueEncoderServiceDefault.java} | 29 +++++------
.../valuerender/_JsonValueConverters.java} | 4 +-
.../JsonValueEncoderTest_asAdapter.java | 16 +++---
.../JsonValueEncoderTest_asObject.java | 6 ++-
.../viewer/resources/JsonParserHelper.java | 6 +--
13 files changed, 101 insertions(+), 50 deletions(-)
diff --git a/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java b/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
index da1a0ea318..e68f167b9c 100644
--- a/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
+++ b/regressiontests/stable-rest/src/test/java/org/apache/isis/testdomain/rest/JsonValueEncoderTest.java
@@ -38,8 +38,8 @@ import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.testdomain.conf.Configuration_headless;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueConverter.Context;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter.Context;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
@@ -420,7 +420,7 @@ class JsonValueEncoderTest {
private JsonRepresentation representationFor(
final Object value, final Context context, final Consumer<Object> valueAsObjectVerifier) {
val valueAdapter = mmc.getObjectManager().adapt(value);
- val jsonValueEncoder = JsonValueEncoder.forTesting(mmc.getSpecificationLoader());
+ val jsonValueEncoder = JsonValueEncoderServiceDefault.forTesting(mmc.getSpecificationLoader());
valueAsObjectVerifier.accept(jsonValueEncoder.asObject(valueAdapter, context));
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
index 70d64a8384..c6e3996f13 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
@@ -23,7 +23,6 @@ import org.springframework.context.annotation.Import;
import org.apache.isis.core.runtime.IsisModuleCoreRuntime;
import org.apache.isis.viewer.restfulobjects.applib.IsisModuleViewerRestfulObjectsApplib;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
import org.apache.isis.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest;
import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceForRestfulObjectsV1_0;
@@ -36,6 +35,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.
import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.SwaggerSpecGenerator;
import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.TaggerDefault;
import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.ValuePropertyFactoryDefault;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
/**
* @since 1.x {@index}
@@ -59,7 +59,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.swagger.internal.
ContentNegotiationServiceOrgApacheIsisV2.class,
ContentNegotiationServiceOrgApacheIsisV1.class, // to intercept client requests and respond with HTTP 501 (no longer supported)
ContentNegotiationServiceXRoDomainType.class,
- JsonValueEncoder.class,
+ JsonValueEncoderServiceDefault.class,
RepresentationService.class,
SwaggerServiceDefault.class,
SwaggerServiceMenu.class,
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index eee1ed7968..8b881d4331 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -34,8 +34,8 @@ import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.Rel;
import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.DomainTypeReprRenderer;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderService;
import lombok.Getter;
import lombok.val;
@@ -44,7 +44,7 @@ public abstract class ReprRendererAbstract<T>
implements ReprRenderer<T> {
@Getter protected final IResourceContext resourceContext;
- @Getter protected final JsonValueEncoder jsonValueEncoder;
+ @Getter protected final JsonValueEncoderService jsonValueEncoder;
private final LinkFollowSpecs linkFollower;
private final RepresentationType representationType;
@@ -62,7 +62,7 @@ implements ReprRenderer<T> {
final JsonRepresentation representation) {
this.resourceContext = resourceContext;
this.jsonValueEncoder = resourceContext.getMetaModelContext().getServiceRegistry()
- .lookupServiceElseFail(JsonValueEncoder.class);
+ .lookupServiceElseFail(JsonValueEncoderService.class);
this.linkFollower = asProvidedElseCreate(linkFollower);
this.representationType = representationType;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index 80886aa489..fef00dbb68 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -46,6 +46,8 @@ import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.DomainTypeReprRenderer;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderService;
import lombok.val;
@@ -455,7 +457,7 @@ extends ReprRendererAbstract<ManagedObject> {
public static Object valueOrRef(
final IResourceContext context,
final ObjectFeature objectFeature,
- final JsonValueEncoder jsonValueEncoder,
+ final JsonValueEncoderService jsonValueEncoder,
final ManagedObject domainObject) {
val spec = domainObject.getSpecification();
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index 2d850dc881..0ffd00b8c3 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -36,6 +36,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.LinkBuilder;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
import org.apache.isis.viewer.restfulobjects.rendering.domaintypes.PropertyDescriptionReprRenderer;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter;
import lombok.val;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
index 8fb24bacc6..9481f3d16c 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ScalarValueReprRenderer.java
@@ -30,6 +30,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.LinkFollowSpecs;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererAbstract;
import org.apache.isis.viewer.restfulobjects.rendering.ReprRendererException;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter;
import lombok.Getter;
import lombok.val;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverter.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
similarity index 93%
rename from viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverter.java
rename to viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
index e8f2a3d61b..20d5955652 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverter.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueConverter.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
+package org.apache.isis.viewer.restfulobjects.rendering.service.valuerender;
import java.util.OptionalInt;
@@ -33,7 +33,7 @@ import org.apache.isis.core.metamodel.spec.feature.HasObjectFeature;
import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueConverters.DefaultFormat;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender._JsonValueConverters.DefaultFormat;
import lombok.Getter;
import lombok.NonNull;
@@ -113,19 +113,12 @@ public interface JsonValueConverter {
@Getter private final Class<?> valueClass;
-
public Abstract(final DefaultFormat format) {
this.format = format.format;
this.extendedFormat = format.extendedFormat;
this.valueClass = format.valueClass;
}
-// public Abstract(final String format, final String extendedFormat, final Class<?> valueClass) {
-// this.format = format;
-// this.extendedFormat = extendedFormat;
-// this.valueClass = valueClass;
-// }
-
@Override
public Object appendValueAndFormat(
final ManagedObject objectAdapter,
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java
new file mode 100644
index 0000000000..8b887bfc11
--- /dev/null
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.java
@@ -0,0 +1,57 @@
+/*
+ * 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.viewer.restfulobjects.rendering.service.valuerender;
+
+import org.springframework.lang.Nullable;
+
+import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter.Context;
+
+import lombok.NonNull;
+
+/**
+ * Converts value representing {@link ManagedObject}s to their corresponding JSON representation.
+ */
+public interface JsonValueEncoderService {
+
+ public ManagedObject asAdapter(
+ final ObjectSpecification objectSpec,
+ final JsonRepresentation argValueRepr,
+ final JsonValueConverter.Context context);
+
+ public void appendValueAndFormat(
+ final ManagedObject valueAdapter,
+ final JsonRepresentation repr,
+ final Context context);
+
+ @Nullable
+ public Object asObject(final @NonNull ManagedObject adapter, final JsonValueConverter.Context context);
+
+ static void appendFormats(
+ final JsonRepresentation repr,
+ final @Nullable String format, final @Nullable String extendedFormat, final boolean suppressExtensions) {
+ repr.putFormat(format);
+ if(!suppressExtensions) {
+ repr.putExtendedFormat(extendedFormat);
+ }
+ }
+
+}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
similarity index 92%
rename from viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
rename to viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
index f49c5ee5b3..5850edbe06 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/JsonValueEncoderServiceDefault.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
+package org.apache.isis.viewer.restfulobjects.rendering.service.valuerender;
import java.util.Map;
import java.util.Optional;
@@ -48,22 +48,18 @@ import org.apache.isis.core.metamodel.util.Facets;
import org.apache.isis.schema.common.v2.ValueType;
import org.apache.isis.viewer.restfulobjects.applib.IsisModuleViewerRestfulObjectsApplib;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueConverter.Context;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueConverter.Context;
import lombok.NonNull;
import lombok.val;
import lombok.extern.log4j.Log4j2;
-/**
- * Similar to Isis' value encoding, but with additional support for JSON
- * primitives.
- */
@Service
-@Named(IsisModuleViewerRestfulObjectsApplib.NAMESPACE + ".JsonValueEncoder")
-@Priority(PriorityPrecedence.EARLY)
+@Named(IsisModuleViewerRestfulObjectsApplib.NAMESPACE + ".JsonValueEncoderDefault")
+@Priority(PriorityPrecedence.MIDPOINT)
@Qualifier("Default")
@Log4j2
-public class JsonValueEncoder {
+public class JsonValueEncoderServiceDefault implements JsonValueEncoderService {
@Inject private SpecificationLoader specificationLoader;
@@ -71,10 +67,11 @@ public class JsonValueEncoder {
@PostConstruct
public void init() {
- new JsonValueConverters().asList()
+ new _JsonValueConverters().asList()
.forEach(converter->converterByClass.put(converter.getValueClass(), converter));
}
+ @Override
public ManagedObject asAdapter(
final ObjectSpecification objectSpec,
final JsonRepresentation argValueRepr,
@@ -124,6 +121,7 @@ public class JsonValueEncoder {
throw new IllegalArgumentException("Could not parse value '" + argValueRepr.asString() + "' as a " + objectSpec.getFullIdentifier());
}
+ @Override
public void appendValueAndFormat(
final ManagedObject valueAdapter,
final JsonRepresentation repr,
@@ -200,6 +198,7 @@ public class JsonValueEncoder {
return decompositionIfAny;
}
+ @Override
@Nullable
public Object asObject(final @NonNull ManagedObject adapter, final JsonValueConverter.Context context) {
@@ -224,17 +223,11 @@ public class JsonValueEncoder {
}
}
- // -- NESTED TYPE DECLARATIONS
-
- public static class ExpectedStringRepresentingValueException extends IllegalArgumentException {
- private static final long serialVersionUID = 1L;
- }
-
/**
* JUnit support
*/
- public static JsonValueEncoder forTesting(final SpecificationLoader specificationLoader) {
- val jsonValueEncoder = new JsonValueEncoder();
+ public static JsonValueEncoderServiceDefault forTesting(final SpecificationLoader specificationLoader) {
+ val jsonValueEncoder = new JsonValueEncoderServiceDefault();
jsonValueEncoder.specificationLoader = specificationLoader;
jsonValueEncoder.init();
return jsonValueEncoder;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverters.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
similarity index 99%
rename from viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverters.java
rename to viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
index fa6b7d59dd..efa466e1f4 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueConverters.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/valuerender/_JsonValueConverters.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
+package org.apache.isis.viewer.restfulobjects.rendering.service.valuerender;
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -40,7 +40,7 @@ import lombok.val;
/**
* Has support for JSON primitives.
*/
-final class JsonValueConverters {
+final class _JsonValueConverters {
@RequiredArgsConstructor
public static enum DefaultFormat {
diff --git a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
index c2d8ed0ef1..787450a1d4 100644
--- a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
+++ b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
@@ -38,11 +38,6 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-
import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
@@ -53,6 +48,13 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderService;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
import lombok.val;
@@ -67,12 +69,12 @@ public class JsonValueEncoderTest_asAdapter {
@Mock private SpecificationLoader specLoader;
private JsonRepresentation representation;
- private JsonValueEncoder jsonValueEncoder;
+ private JsonValueEncoderService jsonValueEncoder;
@Before
public void setUp() throws Exception {
- jsonValueEncoder = JsonValueEncoder.forTesting(specLoader);
+ jsonValueEncoder = JsonValueEncoderServiceDefault.forTesting(specLoader);
representation = new JsonRepresentation(TextNode.valueOf("aString"));
}
diff --git a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asObject.java b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asObject.java
index 15cb403dce..e811a3dd1d 100644
--- a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asObject.java
+++ b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asObject.java
@@ -28,6 +28,8 @@ import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderService;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault;
public class JsonValueEncoderTest_asObject {
@@ -38,7 +40,7 @@ public class JsonValueEncoderTest_asObject {
@Mock private ManagedObject mockObjectAdapter;
@Mock private SpecificationLoader specLoader;
- private JsonValueEncoder jsonValueEncoder;
+ private JsonValueEncoderService jsonValueEncoder;
@Before
public void setUp() throws Exception {
@@ -50,7 +52,7 @@ public class JsonValueEncoderTest_asObject {
}
});
- jsonValueEncoder = JsonValueEncoder.forTesting(specLoader);
+ jsonValueEncoder = JsonValueEncoderServiceDefault.forTesting(specLoader);
}
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
index b1e5b069ca..e0f0ab9681 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/JsonParserHelper.java
@@ -28,7 +28,7 @@ import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
-import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
+import org.apache.isis.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderService;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
import lombok.val;
@@ -44,13 +44,13 @@ public class JsonParserHelper {
private final IResourceContext resourceContext;
private final ObjectSpecification objectSpec;
- private final JsonValueEncoder jsonValueEncoder;
+ private final JsonValueEncoderService jsonValueEncoder;
public JsonParserHelper(final IResourceContext resourceContext, final ObjectSpecification objectSpecification) {
this.objectSpec = objectSpecification;
this.resourceContext = resourceContext;
this.jsonValueEncoder = resourceContext.getMetaModelContext().getServiceRegistry()
- .lookupServiceElseFail(JsonValueEncoder.class);
+ .lookupServiceElseFail(JsonValueEncoderService.class);
}