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/28 14:43:17 UTC

[isis] 03/05: ISIS-2086: refactors a bunch of isis.reflector.facet.XxxAnnotation.YyyEvent.postForDefault 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 ad5f094cd53045a3a1c0119b9a6f1f742f1d4746
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Sep 28 15:30:55 2019 +0100

    ISIS-2086: refactors a bunch of isis.reflector.facet.XxxAnnotation.YyyEvent.postForDefault properties to type-safe config
---
 .../org/apache/isis/config/IsisConfiguration.java  | 122 +++++++++++++++++++++
 .../action/ActionAnnotationFacetFactory.java       |   2 +-
 .../CollectionAnnotationFacetFactory.java          |   3 +-
 .../DomainObjectAnnotationFacetFactory.java        |  21 ++--
 ...ObjectLayoutAnnotationUsingCssClassUiEvent.java |   7 +-
 ...wModelLayoutAnnotationUsingCssClassUiEvent.java |   7 +-
 .../DomainObjectLayoutFacetFactory.java            |  16 +--
 ...mainObjectLayoutAnnotationUsingIconUiEvent.java |   7 +-
 ...aViewModelLayoutAnnotationUsingIconUiEvent.java |   7 +-
 ...inObjectLayoutAnnotationUsingLayoutUiEvent.java |   7 +-
 ...iewModelLayoutAnnotationUsingLayoutUiEvent.java |   8 +-
 ...ainObjectLayoutAnnotationUsingTitleUiEvent.java |   7 +-
 ...ViewModelLayoutAnnotationUsingTitleUiEvent.java |   8 +-
 .../property/PropertyAnnotationFacetFactory.java   |   4 +-
 .../org/apache/isis/metamodel/util/EventUtil.java  |   7 +-
 .../bootstrapping/AutoConfigurationTest.java       |   5 +-
 16 files changed, 179 insertions(+), 59 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 bad731f..9d7bb08 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
@@ -19,11 +19,13 @@
 package org.apache.isis.config;
 
 import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
 import lombok.Data;
 
+
 /**
  * 
  * Configuration 'beans' with meta-data (IDE-support).
@@ -57,7 +59,127 @@ public class IsisConfiguration {
         @Data
         public static class Facet {
             private boolean filterVisibility = true;
+
+            private final ActionAnnotation actionAnnotation = new ActionAnnotation();
+            @Data
+            public static class ActionAnnotation {
+                private final DomainEvent domainEvent = new DomainEvent();
+                @Data
+                public static class DomainEvent {
+                    private boolean postForDefault = true;
+                }
+            }
+
+            private final CollectionAnnotation collectionAnnotation = new CollectionAnnotation();
+            @Data
+            public static class CollectionAnnotation {
+                private final DomainEvent domainEvent = new DomainEvent();
+                @Data
+                public static class DomainEvent {
+                    private boolean postForDefault = true;
+                }
+            }
+
+            private final DomainObjectAnnotation domainObjectAnnotation = new DomainObjectAnnotation();
+            @Data
+            public static class DomainObjectAnnotation {
+                private final CreatedLifecycleEvent createdLifecycleEvent = new CreatedLifecycleEvent();
+                @Data
+                public static class CreatedLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final LoadedLifecycleEvent loadedLifecycleEvent = new LoadedLifecycleEvent();
+                @Data
+                public static class LoadedLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final PersistingLifecycleEvent persistingLifecycleEvent = new PersistingLifecycleEvent();
+                @Data
+                public static class PersistingLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final PersistedLifecycleEvent persistedLifecycleEvent = new PersistedLifecycleEvent();
+                @Data
+                public static class PersistedLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final RemovingLifecycleEvent removingLifecycleEvent = new RemovingLifecycleEvent();
+                @Data
+                public static class RemovingLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final UpdatedLifecycleEvent updatedLifecycleEvent = new UpdatedLifecycleEvent();
+                @Data
+                public static class UpdatedLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+                private final UpdatingLifecycleEvent updatingLifecycleEvent = new UpdatingLifecycleEvent();
+                @Data
+                public static class UpdatingLifecycleEvent {
+                    private boolean postForDefault = true;
+                }
+            }
+
+            private final DomainObjectLayoutAnnotation domainObjectLayoutAnnotation = new DomainObjectLayoutAnnotation();
+            @Data
+            public static class DomainObjectLayoutAnnotation {
+                private final CssClassUiEvent cssClassUiEvent = new CssClassUiEvent();
+                @Data
+                public static class CssClassUiEvent {
+                    private boolean postForDefault = true;
+                }
+                private final IconUiEvent iconUiEvent = new IconUiEvent();
+                @Data
+                public static class IconUiEvent {
+                    private boolean postForDefault = true;
+                }
+                private final LayoutUiEvent layoutUiEvent = new LayoutUiEvent();
+                @Data
+                public static class LayoutUiEvent {
+                    private boolean postForDefault = true;
+                }
+                private final TitleUiEvent titleUiEvent = new TitleUiEvent();
+                @Data
+                public static class TitleUiEvent {
+                    private boolean postForDefault = true;
+                }
+            }
+
+            private final PropertyAnnotation propertyAnnotation = new PropertyAnnotation();
+            @Data
+            public static class PropertyAnnotation {
+                private final DomainEvent domainEvent = new DomainEvent();
+                @Data
+                public static class DomainEvent {
+                    private boolean postForDefault = true;
+                }
+            }
+            private final ViewModelLayoutAnnotation viewModelLayoutAnnotation = new ViewModelLayoutAnnotation();
+            @Data
+            public static class ViewModelLayoutAnnotation {
+                private final CssClassUiEvent cssClassUiEvent = new CssClassUiEvent();
+                @Data
+                public static class CssClassUiEvent {
+                    private boolean postForDefault =true;
+                }
+                private final IconUiEvent iconUiEvent = new IconUiEvent();
+                @Data
+                public static class IconUiEvent {
+                    private boolean postForDefault =true;
+                }
+                private final LayoutUiEvent layoutUiEvent = new LayoutUiEvent();
+                @Data
+                public static class LayoutUiEvent {
+                    private boolean postForDefault =true;
+                }
+                private final TitleUiEvent titleUiEvent = new TitleUiEvent();
+                @Data
+                public static class TitleUiEvent {
+                    private boolean postForDefault =true;
+                }
+            }
         }
+
         private final Validator validator = new Validator();
         @Data
         public static class Validator {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 874721c..f43f72a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -120,7 +120,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract {
                     actionDomainEventFacet.getEventType(),
                     ActionDomainEvent.Noop.class,
                     ActionDomainEvent.Default.class,
-                    "isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", getConfigurationLegacy())) {
+                    getConfiguration().getReflector().getFacet().getActionAnnotation().getDomainEvent().isPostForDefault())) {
                 FacetUtil.addFacet(actionDomainEventFacet);
             }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index 1926859..62aa904 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -119,7 +119,8 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract {
                 collectionDomainEventFacet.getEventType(),
                 CollectionDomainEvent.Noop.class,
                 CollectionDomainEvent.Default.class,
-                "isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault", getConfigurationLegacy())) {
+                getConfiguration().getReflector().getFacet().getCollectionAnnotation().getDomainEvent().isPostForDefault()
+                )) {
             FacetUtil.addFacet(collectionDomainEventFacet);
         }
 
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 b667cd2..886a42f 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
@@ -350,8 +350,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectCreatedEvent.Noop.class,
                 ObjectCreatedEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getCreatedLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new CreatedLifecycleEventFacetForDomainObjectAnnotation(
@@ -368,8 +367,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectLoadedEvent.Noop.class,
                 ObjectLoadedEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.loadedLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getLoadedLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new LoadedLifecycleEventFacetForDomainObjectAnnotation(
@@ -386,8 +384,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectPersistingEvent.Noop.class,
                 ObjectPersistingEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.persistingLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getPersistingLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new PersistingLifecycleEventFacetForDomainObjectAnnotation(
@@ -404,8 +401,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectPersistedEvent.Noop.class,
                 ObjectPersistedEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.persistedLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getPersistedLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new PersistedLifecycleEventFacetForDomainObjectAnnotation(
@@ -422,8 +418,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectRemovingEvent.Noop.class,
                 ObjectRemovingEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.removingLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getRemovingLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new RemovingLifecycleEventFacetForDomainObjectAnnotation(
@@ -440,8 +435,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectUpdatedEvent.Noop.class,
                 ObjectUpdatedEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.updatedLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getUpdatedLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new UpdatedLifecycleEventFacetForDomainObjectAnnotation(
@@ -458,8 +452,7 @@ implements MetaModelValidatorRefiner, PostConstructMethodCache, ObjectSpecIdFace
                 lifecycleEvent,
                 ObjectUpdatingEvent.Noop.class,
                 ObjectUpdatingEvent.Default.class,
-                "isis.reflector.facet.domainObjectAnnotation.updatingLifecycleEvent.postForDefault",
-                getConfigurationLegacy())
+                getConfiguration().getReflector().getFacet().getDomainObjectAnnotation().getUpdatingLifecycleEvent().isPostForDefault())
                 )
         .findFirst()
         .map(lifecycleEvent -> new UpdatingLifecycleEventFacetForDomainObjectAnnotation(
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
index b5fce82..4c9f6cb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetAbstract;
@@ -43,7 +44,8 @@ implements CssClassFacet {
     public static Facet create(
             final List<DomainObjectLayout> domainObjectLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayouts.stream()
@@ -52,8 +54,7 @@ implements CssClassFacet {
                         cssClassUiEventClass,
                         CssClassUiEvent.Noop.class,
                         CssClassUiEvent.Default.class,
-                        "isis.reflector.facet.domainObjectLayoutAnnotation.cssClassUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getDomainObjectLayoutAnnotation().getCssClassUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(cssClassUiEventClass -> {
                     return new CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent(
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
index f207761..4d31025 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.applib.events.ui.CssClassUiEvent;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetAbstract;
@@ -42,7 +43,8 @@ CssClassFacet {
     public static Facet create(
             final List<ViewModelLayout> viewModelLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return viewModelLayouts.stream()
@@ -51,8 +53,7 @@ CssClassFacet {
                         cssClassUiEventClass,
                         CssClassUiEvent.Noop.class,
                         CssClassUiEvent.Default.class,
-                        "isis.reflector.facet.viewModelLayoutAnnotation.cssClassUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getViewModelLayoutAnnotation().getCssClassUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(cssClassUiEventClass -> {
                     return new CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent(
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
index 9263f92..aff11c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
@@ -49,31 +49,31 @@ public class DomainObjectLayoutFacetFactory extends FacetFactoryAbstract {
 
         FacetUtil.addFacet(
                 TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.create(
-                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.create(
-                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
 
         FacetUtil.addFacet(
                 IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.create(
-                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.create(
-                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
 
         FacetUtil.addFacet(
                 CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.create(
-                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 CssClassFacetViaViewModelLayoutAnnotationUsingCssClassUiEvent.create(
-                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
 
         FacetUtil.addFacet(
                 LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.create(
-                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        domainObjectLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 LayoutFacetViaViewModelLayoutAnnotationUsingLayoutUiEvent.create(
-                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), facetHolder));
+                        viewModelLayouts, metamodelEventService, getConfigurationLegacy(), getConfiguration() , facetHolder));
 
         FacetUtil.addFacet(
                 CssClassFacetForDomainObjectLayoutAnnotation.create(domainObjectLayouts, facetHolder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
index 22c3bce..e6d6994 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.IconUiEvent;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -40,7 +41,8 @@ public class IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent extends Ic
     public static Facet create(
             final List<DomainObjectLayout> domainObjectLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration,
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayouts.stream()
@@ -49,8 +51,7 @@ public class IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent extends Ic
                         iconUiEvent,
                         IconUiEvent.Noop.class,
                         IconUiEvent.Default.class,
-                        "isis.reflector.facet.domainObjectLayoutAnnotation.iconUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getDomainObjectLayoutAnnotation().getIconUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(iconUiEvent -> {
                     return new IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent(
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
index ce9a1d8..f055f40 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.applib.events.ui.IconUiEvent;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -40,7 +41,8 @@ public class IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent extends IconF
     public static Facet create(
             final List<ViewModelLayout> viewModelLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return viewModelLayouts.stream()
@@ -49,8 +51,7 @@ public class IconFacetViaViewModelLayoutAnnotationUsingIconUiEvent extends IconF
                         iconUiEvent,
                         IconUiEvent.Noop.class,
                         IconUiEvent.Default.class,
-                        "isis.reflector.facet.viewModelLayoutAnnotation.iconUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getViewModelLayoutAnnotation().getIconUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(iconUiEvent -> {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
index 921d105..c26800f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaDomainObjectLayoutAnnotationUsingLayoutUiEvent.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.events.ui.LayoutUiEvent;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -41,7 +42,8 @@ implements LayoutFacet {
     public static Facet create(
             final List<DomainObjectLayout> domainObjectLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayouts.stream()
@@ -50,8 +52,7 @@ implements LayoutFacet {
                         layoutUiEvent,
                         LayoutUiEvent.Noop.class,
                         LayoutUiEvent.Default.class,
-                        "isis.reflector.facet.domainObjectLayoutAnnotation.layoutUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getDomainObjectLayoutAnnotation().getLayoutUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(layoutUiEvent -> {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaViewModelLayoutAnnotationUsingLayoutUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaViewModelLayoutAnnotationUsingLayoutUiEvent.java
index 6bd8c9f..760d055 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaViewModelLayoutAnnotationUsingLayoutUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/LayoutFacetViaViewModelLayoutAnnotationUsingLayoutUiEvent.java
@@ -25,6 +25,7 @@ import java.util.Map;
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.ViewModelLayout;
 import org.apache.isis.applib.events.ui.LayoutUiEvent;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -41,8 +42,8 @@ implements LayoutFacet {
     public static Facet create(
             final List<ViewModelLayout> viewModelLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
-            final FacetHolder facetHolder) {
+            final IsisConfigurationLegacy configurationLegacy,
+            IsisConfiguration configuration, final FacetHolder facetHolder) {
 
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::layoutUiEvent)
@@ -50,8 +51,7 @@ implements LayoutFacet {
                         layoutUiEvent,
                         LayoutUiEvent.Noop.class,
                         LayoutUiEvent.Default.class,
-                        "isis.reflector.facet.viewModelLayoutAnnotation.layoutUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getViewModelLayoutAnnotation().getLayoutUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(layoutUiEvent -> {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
index d659db4..4368a6a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.java
@@ -28,6 +28,7 @@ import org.apache.isis.applib.events.ui.TitleUiEvent;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -43,7 +44,8 @@ public class TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent extends
     public static Facet create(
             final List<DomainObjectLayout> domainObjectLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration,
             final FacetHolder facetHolder) {
 
         return domainObjectLayouts.stream()
@@ -52,8 +54,7 @@ public class TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent extends
                         titleUiEvent,
                         TitleUiEvent.Noop.class,
                         TitleUiEvent.Default.class,
-                        "isis.reflector.facet.domainObjectLayoutAnnotation.titleUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getDomainObjectLayoutAnnotation().getTitleUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(titleUiEventClass -> {
                     final String translationContext;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
index 977fcd9..d458a92 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobjectlayout/TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent.java
@@ -28,6 +28,7 @@ import org.apache.isis.applib.events.ui.TitleUiEvent;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -43,8 +44,8 @@ public class TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent extends Tit
     public static Facet create(
             final List<ViewModelLayout> viewModelLayouts,
             final MetamodelEventService metamodelEventService,
-            final IsisConfigurationLegacy configuration, 
-            final FacetHolder facetHolder) {
+            final IsisConfigurationLegacy configurationLegacy,
+            final IsisConfiguration configuration, final FacetHolder facetHolder) {
 
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::titleUiEvent)
@@ -52,8 +53,7 @@ public class TitleFacetViaViewModelLayoutAnnotationUsingTitleUiEvent extends Tit
                         titleUiEvent,
                         TitleUiEvent.Noop.class,
                         TitleUiEvent.Default.class,
-                        "isis.reflector.facet.viewModelLayoutAnnotation.titleUiEvent.postForDefault",
-                        configuration))
+                        configuration.getReflector().getFacet().getViewModelLayoutAnnotation().getTitleUiEvent().isPostForDefault()))
                 .findFirst()
                 .map(titleUiEventClass -> {
                     final String translationContext;
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 59b2307..4ada66c 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
@@ -143,8 +143,8 @@ implements MetaModelValidatorRefiner {
                 propertyDomainEventFacet.getEventType(),
                 PropertyDomainEvent.Noop.class,
                 PropertyDomainEvent.Default.class,
-                "isis.reflector.facet.propertyAnnotation.domainEvent.postForDefault",
-                getConfigurationLegacy())) {
+                getConfiguration().getReflector().getFacet().getPropertyAnnotation().getDomainEvent().isPostForDefault()
+                )) {
             FacetUtil.addFacet(propertyDomainEventFacet);
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/util/EventUtil.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/util/EventUtil.java
index db196f1..f777034 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/util/EventUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/util/EventUtil.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.metamodel.util;
 
-import org.apache.isis.config.IsisConfigurationLegacy;
-
 public final class EventUtil {
 
     private EventUtil() {
@@ -30,13 +28,12 @@ public final class EventUtil {
             final Class<? extends T> eventType,
             final Class<? extends T> noopClass,
             final Class<? extends T> defaultClass,
-            final String configProp,
-            final IsisConfigurationLegacy configuration) {
+            final boolean configurationPropertyValue) {
         if (noopClass.isAssignableFrom(eventType)) {
             return false;
         }
         if (defaultClass.isAssignableFrom(eventType)) {
-            return configuration.getBoolean(configProp, true);
+            return configurationPropertyValue;
         }
         return true;
     }
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
index 18682ee..dd15641 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
@@ -19,6 +19,7 @@
 package org.apache.isis.testdomain.bootstrapping;
 
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -109,8 +110,8 @@ class AutoConfigurationTest {
         val discoveredTypes = registry.streamAndClearInbox()
         .map(Map.Entry::getKey)
         .collect(Collectors.toSet());
-        discoveredTypes.addAll(registry.getEntityTypes());
-        discoveredTypes.addAll(registry.getBeanTypes());
+        discoveredTypes.addAll((Set)registry.getEntityTypes());
+        discoveredTypes.addAll((Set)registry.getBeanTypes());
         
         for(val cls : nonManaged()) {
             assertTrue(discoveredTypes.contains(cls));