You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/07/20 13:50:28 UTC
[isis] branch master updated: ISIS-2811: only lazily compile
patterns after config has settled
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new fac69aa ISIS-2811: only lazily compile patterns after config has settled
fac69aa is described below
commit fac69aa6c569d1ac708e5a9c144767c294c1b719
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jul 20 15:50:15 2021 +0200
ISIS-2811: only lazily compile patterns after config has settled
---
.../apache/isis/core/config/IsisConfiguration.java | 19 ++++++++++++-------
...sClassFacetOnActionFromConfiguredRegexFactory.java | 2 +-
.../CssClassFaFacetOnMemberFromConfiguredRegex.java | 2 +-
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index f693a85..fcc0e4a 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -66,8 +66,6 @@ import org.apache.isis.applib.services.userreg.EmailNotificationService;
import org.apache.isis.applib.services.userreg.UserRegistrationService;
import org.apache.isis.applib.services.userui.UserMenu;
import org.apache.isis.commons.internal.context._Context;
-import org.apache.isis.core.config.IsisConfiguration.Core;
-import org.apache.isis.core.config.IsisConfiguration.Viewer;
import org.apache.isis.core.config.metamodel.facets.DefaultViewConfiguration;
import org.apache.isis.core.config.metamodel.facets.EditingObjectsConfiguration;
import org.apache.isis.core.config.metamodel.facets.PublishingPolicies.ActionPublishingPolicy;
@@ -786,11 +784,14 @@ public class IsisConfiguration {
* {@link org.apache.isis.applib.annotation.ActionLayout#cssClass()}.
* </p>
*/
- private Map<Pattern, String> patterns = asMap(
+ private String[] patterns = {
"delete.*:btn-danger",
"discard.*:btn-warning",
- "remove.*:btn-warning"
- );
+ "remove.*:btn-warning"};
+
+ @Getter(lazy = true)
+ private final Map<Pattern, String> patternsAsMap = asMap(getPatterns());
+
}
private final CssClassFa cssClassFa = new CssClassFa();
@@ -810,7 +811,7 @@ public class IsisConfiguration {
* {@link org.apache.isis.applib.annotation.ActionLayout#cssClassFa()}.
* </p>
*/
- private Map<Pattern, String> patterns = asMap(
+ private String[] patterns = {
"add.*:fa-plus-square",
"all.*:fa-list",
"approve.*:fa-thumbs-o-up",
@@ -856,7 +857,11 @@ public class IsisConfiguration {
"update.*:fa-edit",
"upload.*:fa-upload",
"verify.*:fa-check-circle",
- "view.*:fa-search");
+ "view.*:fa-search"};
+
+ @Getter(lazy = true)
+ private final Map<Pattern, String> patternsAsMap = asMap(getPatterns());
+
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
index cd57bd8..09ae198 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
@@ -41,7 +41,7 @@ extends FacetFactoryAbstract {
@Inject
public CssClassFacetOnActionFromConfiguredRegexFactory(final MetaModelContext mmc) {
super(mmc, FeatureType.ACTIONS_ONLY);
- this.cssClassByPattern = getConfiguration().getApplib().getAnnotation().getActionLayout().getCssClass().getPatterns();
+ this.cssClassByPattern = getConfiguration().getApplib().getAnnotation().getActionLayout().getCssClass().getPatternsAsMap();
}
@Override
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromConfiguredRegex.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromConfiguredRegex.java
index adbd615..ca81539 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromConfiguredRegex.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFromConfiguredRegex.java
@@ -67,7 +67,7 @@ extends CssClassFaImperativeFacetAbstract {
final MemberNamedFacet memberNamedFacet,
final FacetHolder holder) {
super(holder);
- this.faIconByPattern = getConfiguration().getApplib().getAnnotation().getActionLayout().getCssClassFa().getPatterns();
+ this.faIconByPattern = getConfiguration().getApplib().getAnnotation().getActionLayout().getCssClassFa().getPatternsAsMap();
this.memberNamedFacet = memberNamedFacet;
// an optimization, not strictly required