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:56:13 UTC

[isis] branch ISIS-2086 updated (4c5137b -> 0117949)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 4c5137b  ISIS-2086: refactors 'isis.services.applicationFeatures.init' to type-safe config
     new 14a4536  ISIS-2086: refactors 'isis.reflector.introspector.parallelize' to type-safe config
     new 6a1e923  ISIS-2086: moves static method from IntrospectionMode to SpecificationLoaderDefault, so can move this enum
     new 0117949  ISIS-2086: refactors 'isis.reflector.introspector.mode' to type-safe config

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/isis/config/IsisConfiguration.java  | 10 ++++++++-
 .../metamodel/specloader/IntrospectionMode.java    | 17 --------------
 .../metamodel/specloader/SpecificationLoader.java  |  8 +------
 .../specloader/SpecificationLoaderDefault.java     | 26 ++++++++++++++++++----
 4 files changed, 32 insertions(+), 29 deletions(-)
 rename core/{metamodel => config}/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java (74%)


[isis] 02/03: ISIS-2086: moves static method from IntrospectionMode to SpecificationLoaderDefault, so can move this enum

Posted by da...@apache.org.
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 6a1e923fcdf18517026b631bfefa73d0852b870e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:53:15 2019 +0100

    ISIS-2086: moves static method from IntrospectionMode to SpecificationLoaderDefault, so can move this enum
---
 .../isis/metamodel/specloader/IntrospectionMode.java    | 13 -------------
 .../specloader/SpecificationLoaderDefault.java          | 17 ++++++++++++++++-
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
index 633b77b..1762000 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
@@ -57,19 +57,6 @@ public enum IntrospectionMode {
         }
     };
 
-    /**
-     * @return whether current introspection mode is 'full', dependent on current
-     * deployment mode and configuration
-     */
-    public static boolean isFullIntrospect() {
-
-        val config = MetaModelContext.current().getConfigurationLegacy();
-        val introspectionMode = SpecificationLoader.CONFIG_PROPERTY_MODE.from(config);
-        val deploymentMode = _Context.getEnvironment().getDeploymentType();
-
-        return introspectionMode.isFullIntrospect(deploymentMode);
-    }
-
     protected abstract boolean isFullIntrospect(final DeploymentType deploymentType);
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index 0eb54e5..577f288 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -27,6 +27,7 @@ import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
 import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.metamodel.MetaModelContext;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.commons.internal.collections._Lists;
@@ -232,7 +233,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
         if(validationFailures == null) {
             validationFailures = new ValidationFailures();
 
-            if(IntrospectionMode.isFullIntrospect()) {
+            if(isFullIntrospect()) {
                 metaModelValidator.validate(validationFailures);
             } else {
                 log.info("Meta model validation skipped (full introspection of metamodel not configured)");
@@ -242,6 +243,20 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
         return validationFailures;
     }
 
+    /**
+     * @return whether current introspection mode is 'full', dependent on current
+     * deployment mode and configuration
+     */
+    private static boolean isFullIntrospect() {
+
+        val config = MetaModelContext.current().getConfigurationLegacy();
+        val introspectionMode = CONFIG_PROPERTY_MODE.from(config);
+        val deploymentMode = _Context.getEnvironment().getDeploymentType();
+
+        return introspectionMode.isFullIntrospect(deploymentMode);
+    }
+
+
     // -- SPEC LOADING
 
     @Override


[isis] 03/03: ISIS-2086: refactors 'isis.reflector.introspector.mode' to type-safe config

Posted by da...@apache.org.
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 0117949c08e2071f4fd3dfec59f7616de8d81f6f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:55:54 2019 +0100

    ISIS-2086: refactors 'isis.reflector.introspector.mode' to type-safe config
---
 .../src/main/java/org/apache/isis/config/IsisConfiguration.java    | 4 +++-
 .../org/apache/isis/metamodel/specloader/IntrospectionMode.java    | 4 ----
 .../org/apache/isis/metamodel/specloader/SpecificationLoader.java  | 5 +----
 .../isis/metamodel/specloader/SpecificationLoaderDefault.java      | 7 +++----
 4 files changed, 7 insertions(+), 13 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 b047099..ba36b3e 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
@@ -40,6 +40,7 @@ import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishOb
 import org.apache.isis.metamodel.facets.properties.property.command.CommandPropertiesConfiguration;
 import org.apache.isis.metamodel.facets.properties.property.publishing.PublishPropertiesConfiguration;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeaturesInitConfiguration;
+import org.apache.isis.metamodel.specloader.IntrospectionMode;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
 import org.springframework.core.convert.converter.Converter;
@@ -66,7 +67,6 @@ public class IsisConfiguration {
         private EditingObjectsConfiguration editing = EditingObjectsConfiguration.TRUE;
     }
 
-
     private final Reflector reflector = new Reflector();
     @Data
     public static class Reflector {
@@ -235,7 +235,9 @@ public class IsisConfiguration {
         @Data
         public static class Introspector {
             private boolean parallelize = true;
+            private IntrospectionMode mode = IntrospectionMode.LAZY_UNLESS_PRODUCTION;
         }
+
         private final Validator validator = new Validator();
         @Data
         public static class Validator {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java b/core/config/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
similarity index 93%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
rename to core/config/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
index 1762000..2932950 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
+++ b/core/config/src/main/java/org/apache/isis/metamodel/specloader/IntrospectionMode.java
@@ -18,11 +18,7 @@
  */
 package org.apache.isis.metamodel.specloader;
 
-import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.commons.internal.plugins.environment.DeploymentType;
-import org.apache.isis.metamodel.MetaModelContext;
-
-import lombok.val;
 
 public enum IntrospectionMode {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
index 1c88748..9d0d96d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
@@ -38,10 +38,7 @@ import org.apache.isis.metamodel.specloader.validator.ValidationFailures;
  */
 public interface SpecificationLoader {
 
-    static final ConfigPropertyEnum<IntrospectionMode> CONFIG_PROPERTY_MODE =
-            new ConfigPropertyEnum<>("isis.reflector.introspector.mode", IntrospectionMode.LAZY_UNLESS_PRODUCTION);
-
-    // -- LIVE CYCLE 
+    // -- LIVE CYCLE
 
     void init();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index 577f288..cc173f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -207,7 +207,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
 
         logAfter(cachedSpecifications);
 
-        final IntrospectionMode mode = CONFIG_PROPERTY_MODE.from(getConfiguration());
+        final IntrospectionMode mode = configuration.getReflector().getIntrospector().getMode();
         if(mode.isFullIntrospect(_Context.getEnvironment().getDeploymentType())) {
             log.info("Introspecting all cached specs up to {}", IntrospectionState.TYPE_AND_MEMBERS_INTROSPECTED);
             introspect(cachedSpecifications, IntrospectionState.TYPE_AND_MEMBERS_INTROSPECTED);
@@ -247,10 +247,9 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
      * @return whether current introspection mode is 'full', dependent on current
      * deployment mode and configuration
      */
-    private static boolean isFullIntrospect() {
+    private boolean isFullIntrospect() {
 
-        val config = MetaModelContext.current().getConfigurationLegacy();
-        val introspectionMode = CONFIG_PROPERTY_MODE.from(config);
+        val introspectionMode = configuration.getReflector().getIntrospector().getMode();
         val deploymentMode = _Context.getEnvironment().getDeploymentType();
 
         return introspectionMode.isFullIntrospect(deploymentMode);


[isis] 01/03: ISIS-2086: refactors 'isis.reflector.introspector.parallelize' to type-safe config

Posted by da...@apache.org.
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 14a453648d156075a5ffb844d8f460b6a6ba6c20
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:51:10 2019 +0100

    ISIS-2086: refactors 'isis.reflector.introspector.parallelize' to type-safe config
---
 .../src/main/java/org/apache/isis/config/IsisConfiguration.java   | 6 ++++++
 .../org/apache/isis/metamodel/specloader/SpecificationLoader.java | 3 ---
 .../isis/metamodel/specloader/SpecificationLoaderDefault.java     | 8 ++++++--
 3 files changed, 12 insertions(+), 5 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 6bf53db..b047099 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
@@ -230,6 +230,12 @@ public class IsisConfiguration {
             }
             private boolean ignoreDeprecated = false;
         }
+
+        private final Introspector introspector = new Introspector();
+        @Data
+        public static class Introspector {
+            private boolean parallelize = true;
+        }
         private final Validator validator = new Validator();
         @Data
         public static class Validator {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
index abff395..1c88748 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoader.java
@@ -38,9 +38,6 @@ import org.apache.isis.metamodel.specloader.validator.ValidationFailures;
  */
 public interface SpecificationLoader {
 
-    static final ConfigPropertyBoolean CONFIG_PROPERTY_PARALLELIZE =
-            new ConfigPropertyBoolean("isis.reflector.introspector.parallelize", true);
-
     static final ConfigPropertyEnum<IntrospectionMode> CONFIG_PROPERTY_MODE =
             new ConfigPropertyEnum<>("isis.reflector.introspector.mode", IntrospectionMode.LAZY_UNLESS_PRODUCTION);
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index afb2bb4..0eb54e5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -26,6 +26,7 @@ import javax.annotation.Nullable;
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
+import org.apache.isis.config.IsisConfiguration;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.commons.internal.collections._Lists;
@@ -88,6 +89,9 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
     private final SpecificationCacheDefault cache = new SpecificationCacheDefault();
     private PostProcessor postProcessor;
 
+    @Inject
+    private IsisConfiguration configuration;
+
     @PostConstruct
     public void preInit() {
         this.programmingModel = programmingModelService.get();
@@ -418,8 +422,8 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
 
     private void introspect(final Collection<ObjectSpecification> specs, final IntrospectionState upTo) {
 
-        val isConcurrentFromConfig = (boolean) CONFIG_PROPERTY_PARALLELIZE.from(getConfiguration());
-        
+        val isConcurrentFromConfig = configuration.getReflector().getIntrospector().isParallelize();
+
         val runSequential = !isConcurrentFromConfig || true; //FIXME concurrent specloading disabled, it deadlocks
         
         if(runSequential) {