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:32:34 UTC

[isis] 02/02: ISIS-2086: refactors 'isis.services.publish.properties' 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 054f92681fee30455207f7e3395c04edfe16620c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:32:16 2019 +0100

    ISIS-2086: refactors 'isis.services.publish.properties' to type-safe config
---
 .../main/java/org/apache/isis/config/IsisConfiguration.java |  4 +++-
 .../property/publishing/PublishPropertiesConfiguration.java | 13 +------------
 .../properties/property/PropertyAnnotationFacetFactory.java |  2 +-
 .../PublishedPropertyFacetForPropertyAnnotation.java        |  5 +++--
 4 files changed, 8 insertions(+), 16 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 873fed7..01637b0 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
@@ -38,6 +38,7 @@ import org.apache.isis.metamodel.facets.object.domainobject.auditing.DefaultView
 import org.apache.isis.metamodel.facets.object.domainobject.editing.EditingObjectsConfiguration;
 import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishObjectsConfiguration;
 import org.apache.isis.metamodel.facets.properties.property.command.CommandPropertiesConfiguration;
+import org.apache.isis.metamodel.facets.properties.property.publishing.PublishPropertiesConfiguration;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
 import org.springframework.core.convert.converter.Converter;
@@ -286,8 +287,9 @@ public class IsisConfiguration {
         private final Publish publish = new Publish();
         @Data
         public static class Publish {
-           private PublishActionsConfiguration actions = PublishActionsConfiguration.NONE;
+            private PublishActionsConfiguration actions = PublishActionsConfiguration.NONE;
             private PublishObjectsConfiguration objects = PublishObjectsConfiguration.NONE;
+            private PublishPropertiesConfiguration properties = PublishPropertiesConfiguration.NONE;
         }
         private final Translation translation = new Translation();
         @Data
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java b/core/config/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java
similarity index 68%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java
rename to core/config/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java
index da79411..e515b67 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishPropertiesConfiguration.java
@@ -18,22 +18,11 @@
  */
 package org.apache.isis.metamodel.facets.properties.property.publishing;
 
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facets.object.domainobject.Util;
 
 public enum PublishPropertiesConfiguration {
     ALL,
     NONE;
-
-    private static final String PUBLISH_PROPERTIES_KEY = "isis.services.publish.properties";
-
-    public static PublishPropertiesConfiguration parse(IsisConfigurationLegacy configuration) {
-        final String configuredValue = configuration.getString(PUBLISH_PROPERTIES_KEY);
-        return PublishPropertiesConfiguration.parse(configuredValue);
-    }
-
-    private static PublishPropertiesConfiguration parse(final String value) {
-        return Util.parseYes(value)? ALL: NONE;
-    }
-
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index 1b09891..746a60b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -281,7 +281,7 @@ implements MetaModelValidatorRefiner {
 
         // check for @Property(publishing=...)
         final PublishedPropertyFacet facet = PublishedPropertyFacetForPropertyAnnotation
-                .create(properties, getConfigurationLegacy(), holder);
+                .create(properties, getConfigurationLegacy(), getConfiguration(), holder);
 
         FacetUtil.addFacet(facet);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishedPropertyFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishedPropertyFacetForPropertyAnnotation.java
index 17872ac..7e3a696 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishedPropertyFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/publishing/PublishedPropertyFacetForPropertyAnnotation.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.Publishing;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facets.properties.publish.PublishedPropertyFacet;
@@ -32,10 +33,10 @@ public class PublishedPropertyFacetForPropertyAnnotation extends PublishedProper
 
     public static PublishedPropertyFacet create(
             final List<Property> properties,
-            final IsisConfigurationLegacy configuration,
+            final IsisConfiguration configuration,
             final FacetHolder holder) {
 
-        final PublishPropertiesConfiguration setting = PublishPropertiesConfiguration.parse(configuration);
+        final PublishPropertiesConfiguration setting = configuration.getServices().getPublish().getProperties();
 
         return properties.stream()
                 .map(Property::publishing)