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) {