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 11:09:33 UTC
[isis] branch ISIS-2086 updated (4ecb056 -> 4370d14)
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 4ecb056 ISIS-2086: refactors 'isis.reflector.validator.jaxb...' (5 of them) to type-safe config
add 2206581 Merge pull request #142 from apache/ISIS-2086
add a97a525 ISIS-2158: fixes MetaModelContext.Delegating self referencing recursion
add fe492d0 Merge pull request #143 from apache/ISIS-2086
add c20a0e3 ISIS-2158: minor: java-doc copy & paste error, missing header
add 67e4ce0 ISIS-2086: fixes tests
add a3a20dc ISIS-2158: minor: some compiler warnings cleanup
add 0bb1469 ISIS-2158: wrapper: redesigns recently introduced async execution
add d4f78a1 ISIS-2158: wrapper: fixes zero arg async action not using a proxy
new c932c26 ISIS-2086: refactors 'isis.reflector.facets.cssClass.patterns' to type-safe config
new cde260a ISIS-2086: moves PatternsConverter component to higher level
new 264f9f0 ISIS-2086: cleans up implementation of PatternsConverter component
new 31d1dd1 ISIS-2086: refactors "isis.reflector.facet.cssClassFa.patterns" to type-safe
new 4370d14 ISIS-2086: adds TODO, think we need to reinstate some missing code from AuditableFacetForDomainObjectAnnotation
The 5 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:
.../isis/applib/services/wrapper/AsyncWrap.java | 91 +++++++++
.../applib/services/wrapper/WrapperFactory.java | 60 +++---
.../services/wrapper/events/InteractionEvent.java | 3 +-
.../org/apache/isis/config/IsisConfigModule.java | 9 +-
.../org/apache/isis/config/IsisConfiguration.java | 78 ++++++-
.../command/CommandActionsConfiguration.java | 2 -
.../publishing/PublishActionsConfiguration.java | 2 -
...ion_getMaxTitleLengthInParentedTables_Test.java | 2 -
...mainObjectComparableContractTest_compareTo.java | 1 -
.../apache/isis/metamodel/MetaModelContext.java | 4 +-
...assFacetOnActionFromConfiguredRegexFactory.java | 32 +--
.../annotprop/CssClassFaFacetOnMemberFactory.java | 28 +--
.../auditing/AuditObjectsConfiguration.java | 3 +
.../action/ActionAnnotationFacetFactoryTest.java | 25 ++-
.../ActionAnnotationFacetFactoryTest_Command.java | 25 +--
...ctionAnnotationFacetFactoryTest_Publishing.java | 25 +--
.../ParameterAnnotationFacetFactoryTest.java | 1 -
...romptStyleFacetFromPropertyAnnotation_Test.java | 18 +-
...acetForPropertyLayoutAnnotationFactoryTest.java | 1 -
...acetForPropertyLayoutAnnotationFactoryTest.java | 2 -
...ValidationDigitsAnnotationFacetFactoryTest.java | 1 -
.../org/apache/isis/wrapper/AsyncWrapDefault.java | 225 +++++++++++++++++++++
.../apache/isis/wrapper/WrapperFactoryDefault.java | 18 +-
.../handlers/DomainObjectInvocationHandler.java | 45 -----
.../java/org/apache/isis/testdomain/Smoketest.java | 4 +-
.../testdomain/commandexecution/WrapperTest.java | 26 ++-
.../isis/testdomain/config/FooProperties.java | 18 ++
.../isis/extensions/secman/api/SecurityModule.java | 9 +-
.../permission/ApplicationPermissionValueSet.java | 9 +-
.../secman/api/tenancy/ApplicationTenancy.java | 9 +-
30 files changed, 559 insertions(+), 217 deletions(-)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/services/wrapper/AsyncWrap.java
create mode 100644 core/runtime-extensions/src/main/java/org/apache/isis/wrapper/AsyncWrapDefault.java
[isis] 02/05: ISIS-2086: moves PatternsConverter component to
higher level
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 cde260ab1b9e94c8150e3620620bd7890cba92a3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 11:44:05 2019 +0100
ISIS-2086: moves PatternsConverter component to higher level
because this code ends up as being more general purpose than just for CSS class regex patterns.
(cherry picked from commit bc9eade891eacbe713a066888a51b7d068870288)
---
.../org/apache/isis/config/IsisConfiguration.java | 77 +++++++++++-----------
1 file changed, 38 insertions(+), 39 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 5f42451..dc6420a 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
@@ -98,45 +98,7 @@ public class IsisConfiguration {
private final CssClass cssClass = new CssClass();
@Data
public static class CssClass {
-
private Map<Pattern, String> patterns = new HashMap<>();
-
- @Component
- @ConfigurationPropertiesBinding
- public static class PatternsConverter implements Converter<String, Map<Pattern, String>> {
- @Override
- public Map<Pattern, String> convert(String source) {
- return buildCssClassByPattern(source);
- }
- }
-
- private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
-
- private static Map<Pattern, String> buildCssClassByPattern(String cssClassPatterns) {
- final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
- if(cssClassPatterns != null) {
- final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
- final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
- while (regexToCssClasses.hasMoreTokens()) {
- String regexToCssClass = regexToCssClasses.nextToken().trim();
- if (_Strings.isNullOrEmpty(regexToCssClass)) {
- continue;
- }
- final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
- if(matcher.matches()) {
- cssClassByRegex.put(matcher.group(1), matcher.group(2));
- }
- }
- for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
- final String regex = entry.getKey();
- final String cssClass = entry.getValue();
- cssClassByPattern.put(Pattern.compile(regex), cssClass);
- }
- }
- return cssClassByPattern;
- }
-
-
}
private final DomainObjectAnnotation domainObjectAnnotation = new DomainObjectAnnotation();
@@ -470,5 +432,42 @@ public class IsisConfiguration {
}
}
-
+
+ @Component
+ @ConfigurationPropertiesBinding
+ public static class PatternsConverter implements Converter<String, Map<Pattern, String>> {
+ @Override
+ public Map<Pattern, String> convert(String source) {
+ return toPatternMap(source);
+ }
+
+ private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
+
+ private static Map<Pattern, String> toPatternMap(String cssClassPatterns) {
+ final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
+ if(cssClassPatterns != null) {
+ final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
+ final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
+ while (regexToCssClasses.hasMoreTokens()) {
+ String regexToCssClass = regexToCssClasses.nextToken().trim();
+ if (_Strings.isNullOrEmpty(regexToCssClass)) {
+ continue;
+ }
+ final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
+ if(matcher.matches()) {
+ cssClassByRegex.put(matcher.group(1), matcher.group(2));
+ }
+ }
+ for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
+ final String regex = entry.getKey();
+ final String cssClass = entry.getValue();
+ cssClassByPattern.put(Pattern.compile(regex), cssClass);
+ }
+ }
+ return cssClassByPattern;
+ }
+
+ }
+
+
}
[isis] 01/05: ISIS-2086: refactors
'isis.reflector.facets.cssClass.patterns' 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 c932c2610f32fa5f61bbb0c515d5eb74554983a7
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Sep 28 17:38:38 2019 +0100
ISIS-2086: refactors 'isis.reflector.facets.cssClass.patterns' to type-safe config
---
.../org/apache/isis/config/IsisConfiguration.java | 62 ++++++++++++++++++++--
...assFacetOnActionFromConfiguredRegexFactory.java | 32 +----------
2 files changed, 60 insertions(+), 34 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 d258f7f..5f42451 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
@@ -18,15 +18,25 @@
*/
package org.apache.isis.config;
-import org.springframework.boot.context.properties.ConfigurationProperties;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.facets.actions.action.command.CommandActionsConfiguration;
import org.apache.isis.metamodel.facets.actions.action.publishing.PublishActionsConfiguration;
-
-import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.stereotype.Component;
/**
@@ -61,6 +71,7 @@ public class IsisConfiguration {
private final Facet facet = new Facet();
@Data
public static class Facet {
+
private boolean filterVisibility = true;
private final ActionAnnotation actionAnnotation = new ActionAnnotation();
@@ -83,6 +94,51 @@ public class IsisConfiguration {
}
}
+ // isis.reflector.facet.cssClass.patterns
+ private final CssClass cssClass = new CssClass();
+ @Data
+ public static class CssClass {
+
+ private Map<Pattern, String> patterns = new HashMap<>();
+
+ @Component
+ @ConfigurationPropertiesBinding
+ public static class PatternsConverter implements Converter<String, Map<Pattern, String>> {
+ @Override
+ public Map<Pattern, String> convert(String source) {
+ return buildCssClassByPattern(source);
+ }
+ }
+
+ private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
+
+ private static Map<Pattern, String> buildCssClassByPattern(String cssClassPatterns) {
+ final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
+ if(cssClassPatterns != null) {
+ final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
+ final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
+ while (regexToCssClasses.hasMoreTokens()) {
+ String regexToCssClass = regexToCssClasses.nextToken().trim();
+ if (_Strings.isNullOrEmpty(regexToCssClass)) {
+ continue;
+ }
+ final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
+ if(matcher.matches()) {
+ cssClassByRegex.put(matcher.group(1), matcher.group(2));
+ }
+ }
+ for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
+ final String regex = entry.getKey();
+ final String cssClass = entry.getValue();
+ cssClassByPattern.put(Pattern.compile(regex), cssClass);
+ }
+ }
+ return cssClassByPattern;
+ }
+
+
+ }
+
private final DomainObjectAnnotation domainObjectAnnotation = new DomainObjectAnnotation();
@Data
public static class DomainObjectAnnotation {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
index 8fa9653..302831b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
@@ -92,8 +92,6 @@ public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactor
// -- cssClassFromPattern
- private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
-
private CssClassFacet createFromConfiguredRegexIfPossible(String name, FacetHolder facetHolder) {
String value = cssIfAnyFor(name);
return value != null
@@ -119,38 +117,10 @@ public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactor
private Map<Pattern, String> getCssClassByPattern() {
if (cssClassByPattern == null) {
// build lazily
- final String cssClassPatterns = getConfigurationLegacy().getString("isis.reflector.facet.cssClass.patterns");
- this.cssClassByPattern = buildCssClassByPattern(cssClassPatterns);
- }
- return cssClassByPattern;
- }
-
- private static Map<Pattern, String> buildCssClassByPattern(String cssClassPatterns) {
- final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
- if(cssClassPatterns != null) {
- final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
- final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
- while (regexToCssClasses.hasMoreTokens()) {
- String regexToCssClass = regexToCssClasses.nextToken().trim();
- if (_Strings.isNullOrEmpty(regexToCssClass)) {
- continue;
- }
- final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
- if(matcher.matches()) {
- cssClassByRegex.put(matcher.group(1), matcher.group(2));
- }
- }
- for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
- final String regex = entry.getKey();
- final String cssClass = entry.getValue();
- cssClassByPattern.put(Pattern.compile(regex), cssClass);
- }
+ this.cssClassByPattern = getConfiguration().getReflector().getFacet().getCssClass().getPatterns();
}
return cssClassByPattern;
}
-
-
-
}
[isis] 05/05: ISIS-2086: adds TODO,
think we need to reinstate some missing code from
AuditableFacetForDomainObjectAnnotation
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 4370d1448f895f573a909f70c6f37efa7954eff5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 12:01:42 2019 +0100
ISIS-2086: adds TODO, think we need to reinstate some missing code from AuditableFacetForDomainObjectAnnotation
(cherry picked from commit a7197c57b5b277a735f342bfac9e7bad651d31de)
---
.../facets/object/domainobject/auditing/AuditObjectsConfiguration.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
index cdb4ba8..67ebdbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
@@ -21,6 +21,9 @@ package org.apache.isis.metamodel.facets.object.domainobject.auditing;
import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.facets.object.domainobject.Util;
+// TODO: v2: why is this enum no longer referenced?
+// compare AuditableFacetForDomainObjectAnnotation vs PublishedObjectFacetForDomainObjectAnnotation
+// the latter does read from the configuration, but the former does not.
public enum AuditObjectsConfiguration {
ALL,
NONE;
[isis] 04/05: ISIS-2086: refactors
"isis.reflector.facet.cssClassFa.patterns" to type-safe
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 31d1dd1506cf1cce758615cfdbef3d7e1204e1be
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 11:56:34 2019 +0100
ISIS-2086: refactors "isis.reflector.facet.cssClassFa.patterns" to type-safe
also registers IsisConfiguration.PatternsConverter as a managed bean
(cherry picked from commit 537148a800aeb16533aab6ec3f0cf2b3d895f7c9)
---
.../org/apache/isis/config/IsisConfigModule.java | 9 +++----
.../org/apache/isis/config/IsisConfiguration.java | 7 +++++-
.../annotprop/CssClassFaFacetOnMemberFactory.java | 28 +---------------------
3 files changed, 12 insertions(+), 32 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java b/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
index bcb5077..18bbe2a 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
@@ -20,12 +20,13 @@ package org.apache.isis.config;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
@Configuration
-//@Import({
-// IsisConfiguration.class // not required
-//XXX if this module would contribute any managed beans, these would go here
-//})
+@Import({
+ //IsisConfiguration.class // not required
+ IsisConfiguration.PatternsConverter.class
+})
@EnableConfigurationProperties(IsisConfiguration.class)
public class IsisConfigModule {
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 9a5d947..98864df 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
@@ -94,12 +94,17 @@ public class IsisConfiguration {
}
}
- // isis.reflector.facet.cssClass.patterns
private final CssClass cssClass = new CssClass();
@Data
public static class CssClass {
private Map<Pattern, String> patterns = new HashMap<>();
}
+ private final CssClassFa cssClassFa = new CssClassFa();
+ @Data
+ public static class CssClassFa {
+ private Map<Pattern, String> patterns = new HashMap<>();
+ }
+
private final DomainObjectAnnotation domainObjectAnnotation = new DomainObjectAnnotation();
@Data
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index 284bf44..e8ed533 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -97,36 +97,10 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
}
private Map<Pattern, String> faIconByPattern;
-
private Map<Pattern, String> getFaIconByPattern() {
if (faIconByPattern == null) {
// build lazily
- final String cssClassFaPatterns = getConfigurationLegacy().getString("isis.reflector.facet.cssClassFa.patterns");
- this.faIconByPattern = buildFaIconByPattern(cssClassFaPatterns);
- }
- return faIconByPattern;
- }
-
- private static Map<Pattern, String> buildFaIconByPattern(String cssClassFaPatterns) {
- final Map<Pattern, String> faIconByPattern = _Maps.newLinkedHashMap();
- if (cssClassFaPatterns != null) {
- final StringTokenizer regexToFaIcons = new StringTokenizer(cssClassFaPatterns, ConfigurationConstants.LIST_SEPARATOR);
- final Map<String, String> faIconByRegex = _Maps.newLinkedHashMap();
- while (regexToFaIcons.hasMoreTokens()) {
- String regexToFaIcon = regexToFaIcons.nextToken().trim();
- if (_Strings.isNullOrEmpty(regexToFaIcon)) {
- continue;
- }
- final Matcher matcher = FA_ICON_REGEX_PATTERN.matcher(regexToFaIcon);
- if (matcher.matches()) {
- faIconByRegex.put(matcher.group(1), matcher.group(2));
- }
- }
- for (Map.Entry<String, String> entry : faIconByRegex.entrySet()) {
- final String regex = entry.getKey();
- final String faIcon = entry.getValue();
- faIconByPattern.put(Pattern.compile(regex), faIcon);
- }
+ this.faIconByPattern = getConfiguration().getReflector().getFacet().getCssClassFa().getPatterns();
}
return faIconByPattern;
}
[isis] 03/05: ISIS-2086: cleans up implementation of
PatternsConverter component
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 264f9f0c3b88fdbf4da624af7b2c98d417d3c9cc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Sep 29 11:53:16 2019 +0100
ISIS-2086: cleans up implementation of PatternsConverter component
(cherry picked from commit 8a69f3d5ce52e2eb66c0a03633144a469f6f2221)
---
.../org/apache/isis/config/IsisConfiguration.java | 26 +++++++++++++++-------
1 file changed, 18 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 dc6420a..9a5d947 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
@@ -441,30 +441,40 @@ public class IsisConfiguration {
return toPatternMap(source);
}
- private final static Pattern CSS_CLASS_REGEX_PATTERN = Pattern.compile("([^:]+):(.+)");
+ /**
+ * The pattern matches definitions like:
+ * <ul>
+ * <li>methodNameRegex:value</li>
+ * </ul>
+ *
+ * <p>
+ * Used for associating cssClass and cssClassFa (font awesome icon) values to method pattern names.
+ * </p>
+ */
+ private final static Pattern PATTERN_FOR_COLON_SEPARATED_PAIR = Pattern.compile("(?<methodRegex>[^:]+):(?<value>.+)");
private static Map<Pattern, String> toPatternMap(String cssClassPatterns) {
- final Map<Pattern,String> cssClassByPattern = _Maps.newLinkedHashMap();
+ final Map<Pattern,String> valueByPattern = _Maps.newLinkedHashMap();
if(cssClassPatterns != null) {
final StringTokenizer regexToCssClasses = new StringTokenizer(cssClassPatterns, ConfigurationConstants.LIST_SEPARATOR);
- final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
+ final Map<String,String> valueByRegex = _Maps.newLinkedHashMap();
while (regexToCssClasses.hasMoreTokens()) {
String regexToCssClass = regexToCssClasses.nextToken().trim();
if (_Strings.isNullOrEmpty(regexToCssClass)) {
continue;
}
- final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
+ final Matcher matcher = PATTERN_FOR_COLON_SEPARATED_PAIR.matcher(regexToCssClass);
if(matcher.matches()) {
- cssClassByRegex.put(matcher.group(1), matcher.group(2));
+ valueByRegex.put(matcher.group("methodRegex"), matcher.group("value"));
}
}
- for (Map.Entry<String, String> entry : cssClassByRegex.entrySet()) {
+ for (Map.Entry<String, String> entry : valueByRegex.entrySet()) {
final String regex = entry.getKey();
final String cssClass = entry.getValue();
- cssClassByPattern.put(Pattern.compile(regex), cssClass);
+ valueByPattern.put(Pattern.compile(regex), cssClass);
}
}
- return cssClassByPattern;
+ return valueByPattern;
}
}