You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/09/29 13:19:03 UTC
[isis] 01/02: ISIS-2086: refactors "isis.objects.editing" to
type-safe config
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 4b719957526926404ad9dc709d4f522ea1c8f478
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:12:40 2019 +0100
ISIS-2086: refactors "isis.objects.editing" to type-safe config
---
.../java/org/apache/isis/config/IsisConfiguration.java | 7 +++++++
.../editing/EditingObjectsConfiguration.java | 14 +-------------
.../domainobject/DomainObjectAnnotationFacetFactory.java | 2 +-
.../editing/ImmutableFacetForDomainObjectAnnotation.java | 6 +++---
.../DomainObjectAnnotationFacetFactoryTest.java | 16 ++++++++--------
5 files changed, 20 insertions(+), 25 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index f6f5061..1728e88 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -34,6 +34,7 @@ import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.facets.actions.action.command.CommandActionsConfiguration;
import org.apache.isis.metamodel.facets.actions.action.publishing.PublishActionsConfiguration;
+import org.apache.isis.metamodel.facets.object.domainobject.editing.EditingObjectsConfiguration;
import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishObjectsConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
@@ -55,6 +56,12 @@ import org.springframework.stereotype.Component;
@Data
public class IsisConfiguration {
+ private final Objects objects = new Objects();
+ @Data
+ public static class Objects {
+ private EditingObjectsConfiguration editing = EditingObjectsConfiguration.TRUE;
+ }
+
private final Reflector reflector = new Reflector();
@Data
public static class Reflector {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
similarity index 68%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
rename to core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
index 296f779..2b0708e3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
@@ -18,23 +18,11 @@
*/
package org.apache.isis.metamodel.facets.object.domainobject.editing;
+import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.facets.object.domainobject.Util;
public enum EditingObjectsConfiguration {
TRUE,
FALSE;
-
- public static final String EDIT_OBJECTS_KEY = "isis.objects.editing";
-
- public static EditingObjectsConfiguration parse(final IsisConfigurationLegacy configuration) {
- final String configuredValue = configuration.getString(EDIT_OBJECTS_KEY);
- return EditingObjectsConfiguration.parse(configuredValue);
- }
-
- private static EditingObjectsConfiguration parse(final String value) {
- // must be explicitly disabled
- return Util.parseNo(value)? FALSE : TRUE;
- }
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 53c6438..9a1b4ab 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -247,7 +247,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
// check from @DomainObject(editing=...)
ImmutableFacet facet = ImmutableFacetForDomainObjectAnnotation
- .create(domainObjects, getConfigurationLegacy(), facetHolder);
+ .create(domainObjects, getConfiguration(), facetHolder);
// then add
FacetUtil.addFacet(facet);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
index 79f80ae..2934a68 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
@@ -25,7 +25,7 @@ import java.util.Map;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Editing;
import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.config.IsisConfigurationLegacy;
+import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facetapi.FacetUtil;
@@ -39,10 +39,10 @@ public class ImmutableFacetForDomainObjectAnnotation extends ImmutableFacetAbstr
public static ImmutableFacet create(
final List<DomainObject> domainObjects,
- final IsisConfigurationLegacy configuration,
+ final IsisConfiguration configuration,
final FacetHolder holder) {
- final EditingObjectsConfiguration setting = EditingObjectsConfiguration.parse(configuration);
+ final EditingObjectsConfiguration setting = configuration.getObjects().getEditing();
return domainObjects.stream()
.filter(domainObject -> domainObject.editing() != Editing.NOT_SPECIFIED)
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
index 4e5d938..2fc3238 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
@@ -583,7 +583,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_true() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "true");
+ allowingConfigurationToReturn("isis.objects.editing", "true");
facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
@@ -595,7 +595,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_false() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "false");
+ allowingConfigurationToReturn("isis.objects.editing", "false");
facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
@@ -608,7 +608,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_not_recognized() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "foobar");
+ allowingConfigurationToReturn("isis.objects.editing", "foobar");
facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
@@ -624,7 +624,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_true() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "true");
+ allowingConfigurationToReturn("isis.objects.editing", "true");
facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -636,7 +636,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_false() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "false");
+ allowingConfigurationToReturn("isis.objects.editing", "false");
facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -649,7 +649,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void configured_value_set_to_not_recognized() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "foobar");
+ allowingConfigurationToReturn("isis.objects.editing", "foobar");
facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -664,7 +664,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void irrespective_of_configured_value() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "false");
+ allowingConfigurationToReturn("isis.objects.editing", "false");
facetFactory.process(new ProcessClassContext(
CustomerWithDomainObjectAndEditingSetToEnabled.class, mockMethodRemover, facetHolder));
@@ -681,7 +681,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
@Test
public void irrespective_of_configured_value() {
- allowingConfigurationToReturn(EditingObjectsConfiguration.EDIT_OBJECTS_KEY, "true");
+ allowingConfigurationToReturn("isis.objects.editing", "true");
facetFactory.process(new ProcessClassContext(
CustomerWithDomainObjectAndEditingSetToDisabled.class, mockMethodRemover, facetHolder));