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:48:57 UTC
[isis] branch ISIS-2086 updated (1cc00d2 -> 4c5137b)
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 1cc00d2 ISIS-2086: refactors 'isis.services.publish.properties' to type-safe config
new d86d147 ISIS-2086: refactors 'isis.reflector.facets.ignoreDeprecated' to type-safe config
new 39dfde5 ISIS-2086: refactors 'isis.services.injector.setPrefix' and 'isis.services.injector.injectPrefix' to type-safe config
new 4c5137b ISIS-2086: refactors 'isis.services.applicationFeatures.init' 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:
.../java/org/apache/isis/config/IsisConfiguration.java | 13 +++++++++++++
.../appfeat/ApplicationFeaturesInitConfiguration.java | 10 ++++++++++
.../facets/param/name/ParameterNameFacetTest.java | 4 ++--
.../metamodel/progmodel/ProgrammingModelAbstract.java | 18 +-----------------
.../metamodel/services/ServiceInjectorDefault.java | 14 ++++++--------
.../appfeat/ApplicationFeatureRepositoryDefault.java | 13 ++++++-------
.../specloader/ProgrammingModelServiceDefault.java | 13 ++++++++-----
.../specloader/SpecificationLoaderTestAbstract.java | 4 ++--
8 files changed, 48 insertions(+), 41 deletions(-)
create mode 100644 core/config/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeaturesInitConfiguration.java
[isis] 03/03: ISIS-2086: refactors
'isis.services.applicationFeatures.init' 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 4c5137b4298ead9af3ef441b65c2e67ee16e47b6
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:48:35 2019 +0100
ISIS-2086: refactors 'isis.services.applicationFeatures.init' to type-safe config
---
.../main/java/org/apache/isis/config/IsisConfiguration.java | 6 ++++++
.../appfeat/ApplicationFeaturesInitConfiguration.java | 10 ++++++++++
.../appfeat/ApplicationFeatureRepositoryDefault.java | 13 ++++++-------
3 files changed, 22 insertions(+), 7 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 2bb9293..6bf53db 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
@@ -39,6 +39,7 @@ import org.apache.isis.metamodel.facets.object.domainobject.editing.EditingObjec
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.apache.isis.metamodel.services.appfeat.ApplicationFeaturesInitConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
import org.springframework.core.convert.converter.Converter;
@@ -255,6 +256,11 @@ public class IsisConfiguration {
private final Services services = new Services();
@Data
public static class Services {
+ private final ApplicationFeatures applicationFeatures = new ApplicationFeatures();
+ @Data
+ public static class ApplicationFeatures {
+ ApplicationFeaturesInitConfiguration init = ApplicationFeaturesInitConfiguration.NOT_SPECIFIED;
+ }
private final Command command = new Command();
@Data
public static class Command {
diff --git a/core/config/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeaturesInitConfiguration.java b/core/config/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeaturesInitConfiguration.java
new file mode 100644
index 0000000..be4f14d
--- /dev/null
+++ b/core/config/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeaturesInitConfiguration.java
@@ -0,0 +1,10 @@
+package org.apache.isis.metamodel.services.appfeat;
+
+public enum ApplicationFeaturesInitConfiguration {
+ EAGER,
+ /**
+ * Alias for {@link #EAGER}
+ */
+ EAGERLY,
+ NOT_SPECIFIED
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index aebe97e..7a0578d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -28,8 +28,8 @@ import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import javax.inject.Singleton;
+import org.apache.isis.config.IsisConfiguration;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.SemanticsOf;
@@ -59,7 +59,6 @@ import org.apache.isis.metamodel.specloader.SpecificationLoader;
import org.apache.isis.metamodel.specloader.specimpl.ContributeeMember;
import static org.apache.isis.commons.internal.base._NullSafe.stream;
-import static org.apache.isis.config.internal._Config.getConfiguration;
import lombok.val;
@@ -76,8 +75,6 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
// -- init
- private static final String KEY = "isis.services.applicationFeatures.init";
-
@PostConstruct
public void init() {
if(isEagerInitialize()) {
@@ -85,10 +82,12 @@ public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRe
}
}
+ @Inject
+ IsisConfiguration configuration;
+
private boolean isEagerInitialize() {
- final String configuredValue = getConfiguration().getString(KEY);
- return "eager".equalsIgnoreCase(configuredValue) ||
- "eagerly".equalsIgnoreCase(configuredValue);
+ ApplicationFeaturesInitConfiguration setting = configuration.getServices().getApplicationFeatures().getInit();
+ return setting == ApplicationFeaturesInitConfiguration.EAGER || setting == ApplicationFeaturesInitConfiguration.EAGERLY;
}
// -- initializeIfRequired
[isis] 01/03: ISIS-2086: refactors
'isis.reflector.facets.ignoreDeprecated' 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 d86d14786c93c414d53ed4d85414d5a7dda281fb
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:40:58 2019 +0100
ISIS-2086: refactors 'isis.reflector.facets.ignoreDeprecated' to type-safe config
---
.../java/org/apache/isis/config/IsisConfiguration.java | 1 +
.../facets/param/name/ParameterNameFacetTest.java | 4 ++--
.../metamodel/progmodel/ProgrammingModelAbstract.java | 18 +-----------------
.../specloader/ProgrammingModelServiceDefault.java | 13 ++++++++-----
.../specloader/SpecificationLoaderTestAbstract.java | 4 ++--
5 files changed, 14 insertions(+), 26 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 01637b0..85cab90 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
@@ -227,6 +227,7 @@ public class IsisConfiguration {
public static class ViewModelSemanticCheckingFacetFactory {
private boolean enable = false;
}
+ private boolean ignoreDeprecated = false;
}
private final Validator validator = new Validator();
@Data
diff --git a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/param/name/ParameterNameFacetTest.java b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/param/name/ParameterNameFacetTest.java
index bb2c873..5e54ea6 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/param/name/ParameterNameFacetTest.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/param/name/ParameterNameFacetTest.java
@@ -20,6 +20,7 @@ package org.apache.isis.metamodel.facets.param.name;
import java.lang.reflect.Method;
+import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -29,7 +30,6 @@ import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.metamodel.facets.FacetFactory;
import org.apache.isis.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract.DeprecatedPolicy;
import org.apache.isis.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
import static org.hamcrest.CoreMatchers.is;
@@ -45,7 +45,7 @@ public class ParameterNameFacetTest extends AbstractFacetFactoryJUnit4TestCase {
@Before
public void setUp() throws Exception {
- programmingModel = new ProgrammingModelFacetsJava8(DeprecatedPolicy.IGNORE);
+ programmingModel = new ProgrammingModelFacetsJava8(ProgrammingModelAbstract.DeprecatedPolicy.IGNORE);
programmingModel.init();
super.setUpFacetedMethodAndParameter();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
index e40f1ff..224dbde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
@@ -25,10 +25,8 @@ import java.util.List;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.factory.InstanceUtil;
-import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.facetapi.MetaModelValidatorRefiner;
import org.apache.isis.metamodel.facets.FacetFactory;
-import org.apache.isis.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
import org.apache.isis.metamodel.specloader.validator.MetaModelValidatorComposite;
public abstract class ProgrammingModelAbstract implements ProgrammingModel {
@@ -36,29 +34,15 @@ public abstract class ProgrammingModelAbstract implements ProgrammingModel {
private final List<FacetFactory> facetFactories = _Lists.newArrayList();
private final List<Object> facetFactoryInstancesOrClasses = _Lists.newLinkedList();
- public static final String KEY_IGNORE_DEPRECATED = "isis.reflector.facets.ignoreDeprecated";
-
public enum DeprecatedPolicy {
IGNORE,
HONOUR;
-
- public static DeprecatedPolicy parse(final IsisConfigurationLegacy configuration) {
- boolean ignoreDep = configuration.getBoolean(KEY_IGNORE_DEPRECATED, false);
- return ignoreDep ? IGNORE : HONOUR;
- }
-
- //[2112]
- // public static DeprecatedPolicy parse(final IsisConfigurationBuilder configuration) {
- // boolean ignoreDep = configuration.peekAtBoolean(KEY_IGNORE_DEPRECATED, false);
- // return ignoreDep ? IGNORE : HONOUR;
- // }
-
}
protected final DeprecatedPolicy deprecatedPolicy;
public ProgrammingModelAbstract(
- final ProgrammingModelFacetsJava8.DeprecatedPolicy deprecatedPolicy) {
+ final DeprecatedPolicy deprecatedPolicy) {
this.deprecatedPolicy = deprecatedPolicy;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
index 34153b4..cb224ec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
@@ -20,12 +20,13 @@ package org.apache.isis.metamodel.specloader;
import javax.inject.Inject;
+import org.apache.isis.config.IsisConfiguration;
+import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract;
import org.springframework.stereotype.Service;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract.DeprecatedPolicy;
import org.apache.isis.metamodel.progmodel.ProgrammingModelService;
import org.apache.isis.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
@@ -42,7 +43,8 @@ public class ProgrammingModelServiceDefault implements ProgrammingModelService {
// -- HELPER
- @Inject private IsisConfigurationLegacy configuration;
+ @Inject private IsisConfigurationLegacy configurationLegacy;
+ @Inject private IsisConfiguration configuration;
private _Lazy<ProgrammingModel> programmingModel =
_Lazy.threadSafe(this::createProgrammingModel);
@@ -51,11 +53,12 @@ public class ProgrammingModelServiceDefault implements ProgrammingModelService {
log.debug("About to create the ProgrammingModel.");
- val deprecatedPolicy = DeprecatedPolicy.parse(configuration);
+ boolean ignoreDep = configuration.getReflector().getFacets().isIgnoreDeprecated();
+ val deprecatedPolicy = ignoreDep ? ProgrammingModelAbstract.DeprecatedPolicy.IGNORE : ProgrammingModelAbstract.DeprecatedPolicy.HONOUR;
val programmingModel = new ProgrammingModelFacetsJava8(deprecatedPolicy);
- ProgrammingModel.Util.includeFacetFactories(configuration, programmingModel);
- ProgrammingModel.Util.excludeFacetFactories(configuration, programmingModel);
+ ProgrammingModel.Util.includeFacetFactories(configurationLegacy, programmingModel);
+ ProgrammingModel.Util.excludeFacetFactories(configurationLegacy, programmingModel);
if(log.isDebugEnabled()) {
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 7dd1f8e..b80db03 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -19,6 +19,7 @@
package org.apache.isis.metamodel.specloader;
+import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -38,7 +39,6 @@ import org.apache.isis.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.metamodel.facets.object.plural.PluralFacet;
import org.apache.isis.metamodel.metamodelvalidator.dflt.MetaModelValidatorDefault;
-import org.apache.isis.metamodel.progmodel.ProgrammingModelAbstract.DeprecatedPolicy;
import org.apache.isis.metamodel.progmodels.dflt.ProgrammingModelFacetsJava8;
import org.apache.isis.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -90,7 +90,7 @@ abstract class SpecificationLoaderTestAbstract {
//@Produces
SpecificationLoader getSpecificationLoader() {
return SpecificationLoaderDefault.getInstance(
- new ProgrammingModelFacetsJava8(DeprecatedPolicy.HONOUR),
+ new ProgrammingModelFacetsJava8(ProgrammingModelAbstract.DeprecatedPolicy.HONOUR),
new MetaModelValidatorDefault());
}
[isis] 02/03: ISIS-2086: refactors
'isis.services.injector.setPrefix' and
'isis.services.injector.injectPrefix' 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 39dfde505ee0e11a6d580c3c3b8df3f16284e746
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 14:43:19 2019 +0100
ISIS-2086: refactors 'isis.services.injector.setPrefix' and 'isis.services.injector.injectPrefix' to type-safe config
---
.../java/org/apache/isis/config/IsisConfiguration.java | 6 ++++++
.../isis/metamodel/services/ServiceInjectorDefault.java | 14 ++++++--------
2 files changed, 12 insertions(+), 8 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 85cab90..2bb9293 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
@@ -285,6 +285,12 @@ public class IsisConfiguration {
}
+ private final Injector injector = new Injector();
+ @Data
+ public static class Injector {
+ private boolean setPrefix = false;
+ private boolean injectPrefix = true;
+ }
private final Publish publish = new Publish();
@Data
public static class Publish {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
index 0a72e7f..5321c31 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
@@ -28,8 +28,8 @@ import java.util.function.Predicate;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import javax.inject.Singleton;
+import org.apache.isis.config.IsisConfiguration;
import org.springframework.beans.factory.InjectionPoint;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Service;
@@ -50,10 +50,8 @@ import lombok.extern.log4j.Log4j2;
@Service @Log4j2
public class ServiceInjectorDefault implements ServiceInjector {
- private static final String KEY_SET_PREFIX = "isis.services.injector.setPrefix";
- private static final String KEY_INJECT_PREFIX = "isis.services.injector.injectPrefix";
-
- @Inject IsisConfigurationLegacy configuration;
+ @Inject IsisConfigurationLegacy configurationLegacy;
+ @Inject IsisConfiguration configuration;
@Inject ServiceRegistry serviceRegistry;
@Inject InjectorMethodEvaluator injectorMethodEvaluator;
@@ -68,8 +66,8 @@ public class ServiceInjectorDefault implements ServiceInjector {
@PostConstruct
public void init() {
- autowireSetters = configuration.getBoolean(KEY_SET_PREFIX, false);
- autowireInject = configuration.getBoolean(KEY_INJECT_PREFIX, true);
+ autowireSetters = configuration.getServices().getInjector().isSetPrefix();
+ autowireInject = configuration.getServices().getInjector().isInjectPrefix();
}
// -- HELPERS
@@ -252,7 +250,7 @@ public class ServiceInjectorDefault implements ServiceInjector {
InjectorMethodEvaluator injectorMethodEvaluator) {
val instance = new ServiceInjectorDefault();
- instance.configuration = configuration;
+ instance.configurationLegacy = configuration;
instance.serviceRegistry = serviceRegistry;
instance.injectorMethodEvaluator = injectorMethodEvaluator;