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 2019/10/25 10:19:35 UTC
[isis] 02/02: ISIS-2086: converting to config beans: value.format +
locale + money
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit dcef479071cfcf66ea478f1dc70358559dd70c96
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Oct 25 12:19:15 2019 +0200
ISIS-2086: converting to config beans: value.format + locale + money
---
.../org/apache/isis/config/IsisConfiguration.java | 99 ++++++++++++++++++++++
.../apache/isis/metamodel/MetaModelContext.java | 9 +-
.../apache/isis/metamodel/commons/LocaleUtil.java | 4 +-
.../ValueSemanticsProviderAndFacetAbstract.java | 11 +--
.../DateAndTimeValueSemanticsProviderAbstract.java | 8 +-
.../ValueSemanticsProviderAbstractTemporal.java | 16 ++--
.../BigDecimalValueSemanticsProvider.java | 3 +-
.../BigIntegerValueSemanticsProvider.java | 3 +-
.../bytes/ByteValueSemanticsProviderAbstract.java | 3 +-
.../date/DateValueSemanticsProviderAbstract.java | 10 ++-
.../Jdk8LocalDateValueSemanticsProvider.java | 57 +++++--------
.../JodaLocalDateValueSemanticsProvider.java | 24 +-----
.../Jdk8LocalDateTimeValueSemanticsProvider.java | 9 +-
...fsetDateTimeValueSemanticsProviderAbstract.java | 8 +-
...JodaDateTimeValueSemanticsProviderAbstract.java | 10 ++-
.../JodaLocalDateTimeValueSemanticsProvider.java | 23 +----
.../DoubleValueSemanticsProviderAbstract.java | 3 +-
.../FloatValueSemanticsProviderAbstract.java | 3 +-
.../integer/IntValueSemanticsProviderAbstract.java | 3 +-
.../longs/LongValueSemanticsProviderAbstract.java | 3 +-
.../value/money/MoneyValueSemanticsProvider.java | 4 +-
.../PercentageValueSemanticsProvider.java | 6 +-
.../ShortValueSemanticsProviderAbstract.java | 3 +-
.../time/TimeValueSemanticsProviderAbstract.java | 7 +-
.../TimeStampValueSemanticsProviderAbstract.java | 9 +-
.../specloader/SpecificationLoaderDefault.java | 2 +-
.../metamodel/MetaModelContext_configTest.java | 2 +-
.../metamodel/MetaModelContext_forTesting.java | 2 +-
.../system/context/session/RuntimeContext.java | 2 -
.../system/context/session/RuntimeContextBase.java | 3 -
.../server/resources/DomainResourceHelper.java | 6 --
.../wicket/ui/components/footer/FooterPanel.java | 74 ++--------------
.../application/isis-non-changing.properties | 7 +-
.../application/isis-non-changing.properties | 6 +-
.../domainapp/conf/isis-non-changing.properties | 6 +-
.../application/isis-non-changing.properties | 6 +-
.../manifest/isis-non-changing.properties | 6 +-
.../testdomain/conf/isis-non-changing.properties | 6 +-
38 files changed, 231 insertions(+), 235 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 28a217d..9cce4ea 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
@@ -21,6 +21,7 @@ package org.apache.isis.config;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
@@ -37,6 +38,7 @@ 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._Lists;
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;
@@ -51,6 +53,7 @@ import org.apache.isis.metamodel.specloader.IntrospectionMode;
import org.apache.isis.viewer.wicket.ui.DialogMode;
import lombok.Data;
+import lombok.val;
/**
@@ -79,6 +82,12 @@ public class IsisConfiguration {
private boolean autoLogoutIfAlreadyAuthenticated = false;
}
}
+
+ /**
+ * Optional: set to override {@link Locale#getDefault()}
+ * <p>{@code null} is allowed
+ */
+ private String locale = null; //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
private final Objects objects = new Objects();
@Data
@@ -834,6 +843,41 @@ public class IsisConfiguration {
*/
private boolean showChooser = true;
}
+
+
+ //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
+ private List<Credit> credit = _Lists.newArrayList();
+
+ //@RequiredArgsConstructor(staticName = "of") @Getter
+
+ @Data
+ public static class Credit {
+ private int num;
+ private String url;
+ private String name;
+ private String image;
+
+ public boolean isDefined() { return (name != null || image != null) && url != null; }
+ public String getId() { return idFor(""); }
+ public String getUrlId() { return idFor("Url"); }
+ public String getNameId() { return idFor("Name"); }
+ public String getImageId() { return idFor("Image"); }
+
+ private String idFor(final String component) {
+ return "credit" + getNum() + component;
+ }
+ }
+
+ public Credit getCredit(int indexOneBased) {
+ int indexZeroBased = indexOneBased - 1;
+ int maxIndex = credit.size() - 1;
+ val credit = (indexZeroBased<0 || indexZeroBased>maxIndex)
+ ? new Credit()
+ : Wicket.this.credit.get(indexZeroBased);
+ credit.setNum(indexOneBased);
+ return credit;
+ }
+
private final DatePicker datePicker = new DatePicker();
@Data
public static class DatePicker {
@@ -902,6 +946,8 @@ public class IsisConfiguration {
private boolean enabled = true;
private int maxParentChainLength = 64;
}
+
+
}
}
@@ -982,6 +1028,59 @@ public class IsisConfiguration {
}
}
+
+ //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
+ private final Value value = new Value();
+ @Data
+ public static class Value {
+
+ private Map<String, String> format = new HashMap<>();
+
+ public enum FormatIdentifier {
+ /**
+ * Key to indicate how LocalDateTime should be parsed/rendered.
+ * <p>
+ * eg: {@code isis.value.format.datetime=iso}
+ * <p>
+ * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
+ * {@link org.apache.isis.metamodel.facets.value.datetimejdk8local.Jdk8LocalDateTimeValueSemanticsProvider.NAMED_TITLE_FORMATTERS}).
+ * Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
+ */
+ DATETIME,
+ /**
+ * Key to indicate how LocalDate should be parsed/rendered.
+ * <p>
+ * eg: {@code isis.value.format.date=iso}
+ * <p>
+ * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
+ * {@link org.apache.isis.metamodel.facets.value.datejdk8local.Jdk8LocalDateValueSemanticsProvider.NAMED_TITLE_FORMATTERS}).
+ * Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
+ */
+ DATE,
+ TIMESTAMP,
+ TIME,
+
+ INT, DECIMAL, BYTE, DOUBLE, FLOAT, LONG, SHORT,
+ PERCENTAGE
+ }
+
+ public String getFormatOrElse(FormatIdentifier formatIdentifier, String defaultFormat) {
+ return format.getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat);
+ }
+
+ private final Money money = new Money();
+ @Data
+ public static class Money {
+
+ private String currency = null;
+
+ public String getCurrencyOrElse(String fallback) {
+ return _Strings.isNotEmpty(getCurrency()) ? getCurrency() : fallback;
+ }
+ }
+
+
+ }
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
index 3e80bad..53fce51 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
@@ -29,7 +29,6 @@ import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.applib.services.xactn.TransactionState;
import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
import org.apache.isis.metamodel.services.homepage.HomePageAction;
@@ -49,8 +48,7 @@ import org.apache.isis.security.authorization.manager.AuthorizationManager;
public interface MetaModelContext {
// -- INTERFACE
- @Deprecated
- IsisConfigurationLegacy getConfigurationLegacy();
+ //@Deprecated IsisConfigurationLegacy getConfigurationLegacy();
IsisSystemEnvironment getSystemEnvironment();
@@ -111,11 +109,6 @@ public interface MetaModelContext {
public MetaModelContext getMetaModelContext();
@Override
- public default IsisConfigurationLegacy getConfigurationLegacy() {
- return getMetaModelContext().getConfigurationLegacy();
- }
-
- @Override
default IsisSystemEnvironment getSystemEnvironment() {
return getMetaModelContext().getSystemEnvironment();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/LocaleUtil.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/LocaleUtil.java
index 2cc359c..f879243 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/LocaleUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/commons/LocaleUtil.java
@@ -21,10 +21,12 @@ package org.apache.isis.metamodel.commons;
import java.util.Locale;
+import org.apache.isis.commons.internal.base._Strings;
+
public class LocaleUtil {
public static Locale findLocale(final String localeStr) {
- if (localeStr != null) {
+ if (_Strings.isNotEmpty(localeStr)) {
final Locale[] availableLocales = Locale.getAvailableLocales();
for (final Locale locale : availableLocales) {
if (locale.toString().equals(localeStr)) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 94cb018..c695bd3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.applib.clock.Clock;
import org.apache.isis.commons.exceptions.UnknownTypeException;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.commons.LocaleUtil;
import org.apache.isis.metamodel.facetapi.Facet;
@@ -279,8 +279,10 @@ public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbs
// Helper: Locale handling
// ///////////////////////////////////////////////////////////////////////////
- protected NumberFormat determineNumberFormat(final String suffix) {
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + suffix);
+ protected NumberFormat determineNumberFormat(FormatIdentifier formatIdentifier) {
+ final String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(formatIdentifier, null);
+
if (formatRequired != null) {
return new DecimalFormat(formatRequired);
} else {
@@ -289,8 +291,7 @@ public abstract class ValueSemanticsProviderAndFacetAbstract<T> extends FacetAbs
}
private Locale findLocale() {
- final String localeStr = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "locale");
-
+ final String localeStr = getConfiguration().getLocale();
final Locale findLocale = LocaleUtil.findLocale(localeStr);
return findLocale != null ? findLocale : Locale.getDefault();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
index 4f4fed3..6de808a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,7 @@ import java.util.Map;
import java.util.TimeZone;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -46,9 +46,11 @@ public abstract class DateAndTimeValueSemanticsProviderAbstract<T> extends Value
@SuppressWarnings("unchecked")
public DateAndTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final Immutability immutability, final EqualByContent equalByContent) {
- super("datetime", holder, adaptedClass, TYPICAL_LENGTH, immutability, equalByContent, (T) DEFAULT_VALUE);
+ super(FormatIdentifier.DATETIME, holder, adaptedClass, TYPICAL_LENGTH, immutability, equalByContent, (T) DEFAULT_VALUE);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.datetime");
+ final String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATETIME, null);
+
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
index 43ed8ea..6fac59a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
@@ -33,7 +33,7 @@ import java.util.TimeZone;
import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -61,7 +61,7 @@ public abstract class ValueSemanticsProviderAbstractTemporal<T> extends ValueSem
protected static final String ISO_ENCODING_FORMAT = "iso_encoding";
protected static final TimeZone UTC_TIME_ZONE;
- public final static String FORMAT_KEY_PREFIX = ConfigurationConstants.ROOT + "value.format.";
+ //public final static String FORMAT_KEY_PREFIX = ConfigurationConstants.ROOT + "value.format.";
static {
TimeZone timeZone = TimeZone.getTimeZone("Etc/UTC");
@@ -99,20 +99,22 @@ public abstract class ValueSemanticsProviderAbstractTemporal<T> extends ValueSem
/**
* Uses {@link #type()} as the facet type.
*/
- public ValueSemanticsProviderAbstractTemporal(final String propertyName, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
- this(propertyName, type(), holder, adaptedClass, typicalLength, immutability, equalByContent, defaultValue);
+ public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
+ this(formatIdentifier, type(), holder, adaptedClass, typicalLength, immutability, equalByContent, defaultValue);
}
/**
* Allows the specific facet subclass to be specified (rather than use
* {@link #type()}.
*/
- public ValueSemanticsProviderAbstractTemporal(final String propertyType, final Class<? extends Facet> facetType, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
+ public ValueSemanticsProviderAbstractTemporal(final FormatIdentifier formatIdentifier, final Class<? extends Facet> facetType, final FacetHolder holder, final Class<T> adaptedClass, final int typicalLength, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
super(facetType, holder, adaptedClass, typicalLength, -1, immutability, equalByContent, defaultValue);
configureFormats();
- this.propertyType = propertyType;
- configuredFormat = getConfigurationLegacy().getString(FORMAT_KEY_PREFIX + propertyType, defaultFormat()).toLowerCase().trim();
+ this.propertyType = formatIdentifier.name().toLowerCase();
+ configuredFormat = getConfiguration()
+ .getValue().getFormatOrElse(formatIdentifier, defaultFormat()).toLowerCase().trim();
+
buildFormat(configuredFormat);
encodingFormat = formats().get(ISO_ENCODING_FORMAT);
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
index 12710d6..e343de0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
@@ -28,6 +28,7 @@ import java.util.Map;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.commons.exceptions.IsisException;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
@@ -57,7 +58,7 @@ public class BigDecimalValueSemanticsProvider extends ValueSemanticsProviderAndF
public BigDecimalValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, BigDecimal.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.decimal");
+ format = determineNumberFormat(FormatIdentifier.DECIMAL);
}
public void setLocale(final Locale l) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
index 63abb7d..73b1f4a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
@@ -26,6 +26,7 @@ import java.util.Map;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
@@ -55,7 +56,7 @@ public class BigIntegerValueSemanticsProvider extends ValueSemanticsProviderAndF
public BigIntegerValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, BigInteger.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.int");
+ format = determineNumberFormat(FormatIdentifier.INT);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
index 109dd3d..a0d71cd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -44,7 +45,7 @@ public abstract class ByteValueSemanticsProviderAbstract extends ValueSemanticsP
public ByteValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Byte> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.byte");
+ format = determineNumberFormat(FormatIdentifier.BYTE);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
index 6f6e380..730b02d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
@@ -27,7 +27,7 @@ import java.util.Locale;
import java.util.Map;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
@@ -42,13 +42,15 @@ public abstract class DateValueSemanticsProviderAbstract<T> extends ValueSemanti
}
public DateValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final Immutability immutability, final EqualByContent equalByContent, final T defaultValue) {
- super("date", holder, adaptedClass, 12, immutability, equalByContent, defaultValue);
+ super(FormatIdentifier.DATE, holder, adaptedClass, 12, immutability, equalByContent, defaultValue);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.date");
+ final String formatRequired = getConfiguration().getValue()
+ .getFormatOrElse(FormatIdentifier.DATE, null);
+
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
- setMask(formatRequired);
+ setMask(formatRequired); //TODO fails when using format names eg 'medium'
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
index 16959d1..6daf1ea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -62,41 +62,23 @@ public class Jdk8LocalDateValueSemanticsProvider extends ValueSemanticsProviderA
* A replacement for {@link #setFormat(String, String)}.
*/
public static void setTitlePatternOverride(final String pattern) {
- OVERRIDE_TITLE_PATTERN.set(pattern);
+ override_title_pattern.set(pattern);
}
/**
- * Key to indicate how LocalDate should be parsed/rendered.
- *
- * <p>
- * eg:
- * <pre>
- * isis.value.format.date=iso
- * </pre>
- *
- * <p>
- * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
- * {@link #NAMED_TITLE_FORMATTERS}). Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
- *
- * @see #NAMED_TITLE_FORMATTERS
- */
- public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.date";
-
-
- /**
* Keys represent the values which can be configured, and which are used for the rendering of dates.
*
*/
- private static Map<String, TimeFormatter> NAMED_TITLE_FORMATTERS = _Maps.newHashMap();
+ private static Map<String, TimeFormatter> named_title_formatters = _Maps.newHashMap();
static {
- NAMED_TITLE_FORMATTERS.put("iso_encoding", formatterOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
- NAMED_TITLE_FORMATTERS.put("iso", formatterOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- NAMED_TITLE_FORMATTERS.put("long", formatterOfStyle("L-"));
- NAMED_TITLE_FORMATTERS.put("medium", formatterOfStyle("M-"));
- NAMED_TITLE_FORMATTERS.put("short", formatterOfStyle("S-"));
+ named_title_formatters.put("iso_encoding", formatterOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ named_title_formatters.put("iso", formatterOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ named_title_formatters.put("long", formatterOfStyle("L-"));
+ named_title_formatters.put("medium", formatterOfStyle("M-"));
+ named_title_formatters.put("short", formatterOfStyle("S-"));
}
- private final static ThreadLocal<String> OVERRIDE_TITLE_PATTERN = new ThreadLocal<String>() {
+ private final static ThreadLocal<String> override_title_pattern = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return null;
@@ -104,13 +86,13 @@ public class Jdk8LocalDateValueSemanticsProvider extends ValueSemanticsProviderA
};
- private final static List<TimeParser> PARSE_FORMATTERS = _Lists.newArrayList();
+ private final static List<TimeParser> parse_formatters = _Lists.newArrayList();
static {
- PARSE_FORMATTERS.add(parserOfStyle("L-"));
- PARSE_FORMATTERS.add(parserOfStyle("M-"));
- PARSE_FORMATTERS.add(parserOfStyle("S-"));
- PARSE_FORMATTERS.add(parserOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- PARSE_FORMATTERS.add(parserOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
+ parse_formatters.add(parserOfStyle("L-"));
+ parse_formatters.add(parserOfStyle("M-"));
+ parse_formatters.add(parserOfStyle("S-"));
+ parse_formatters.add(parserOf(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ parse_formatters.add(parserOf(DateTimeFormatter.ofPattern("yyyyMMdd")));
}
public static Class<? extends Facet> type() {
@@ -146,13 +128,14 @@ public class Jdk8LocalDateValueSemanticsProvider extends ValueSemanticsProviderA
public Jdk8LocalDateValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- String configuredNameOrPattern = getConfigurationLegacy().getString(CFG_FORMAT_KEY, "medium").trim();
+ String configuredNameOrPattern = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
updateTitleStringFormatter(configuredNameOrPattern);
}
private void updateTitleStringFormatter(String titleStringFormatNameOrPattern) {
- titleStringFormatter = NAMED_TITLE_FORMATTERS.get(titleStringFormatNameOrPattern);
+ titleStringFormatter = named_title_formatters.get(titleStringFormatNameOrPattern);
if (titleStringFormatter == null) {
titleStringFormatter = formatterOf(DateTimeFormatter.ofPattern(titleStringFormatNameOrPattern));
}
@@ -184,7 +167,7 @@ public class Jdk8LocalDateValueSemanticsProvider extends ValueSemanticsProviderA
}
private void updateTitleStringFormatterIfOverridden() {
- final String overridePattern = OVERRIDE_TITLE_PATTERN.get();
+ final String overridePattern = override_title_pattern.get();
if (overridePattern == null ||
titleStringFormatNameOrPattern.equals(overridePattern)) {
return;
@@ -195,7 +178,7 @@ public class Jdk8LocalDateValueSemanticsProvider extends ValueSemanticsProviderA
}
private LocalDate parseDate(final String dateStr, final Object original) {
- return Jdk8LocalDateUtil.parseDate(dateStr, PARSE_FORMATTERS);
+ return Jdk8LocalDateUtil.parseDate(dateStr, parse_formatters);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
index c3d4133..14bc421 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -65,24 +65,6 @@ public class JodaLocalDateValueSemanticsProvider extends ValueSemanticsProviderA
}
/**
- * Key to indicate how LocalDate should be parsed/rendered.
- *
- * <p>
- * eg:
- * <pre>
- * isis.value.format.date=iso
- * </pre>
- *
- * <p>
- * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
- * {@link #NAMED_TITLE_FORMATTERS}). Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
- *
- * @see #NAMED_TITLE_FORMATTERS
- */
- public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.date";
-
-
- /**
* Keys represent the values which can be configured, and which are used for the rendering of dates.
*
*/
@@ -147,7 +129,9 @@ public class JodaLocalDateValueSemanticsProvider extends ValueSemanticsProviderA
public JodaLocalDateValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, LocalDate.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- String configuredNameOrPattern = getConfigurationLegacy().getString(CFG_FORMAT_KEY, "medium").trim();
+ String configuredNameOrPattern = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
+
updateTitleStringFormatter(configuredNameOrPattern);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
index be5c039..e6f8d2a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -66,7 +66,7 @@ public class Jdk8LocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi
OVERRIDE_TITLE_PATTERN.set(pattern);
}
- /**
+ /*
* Key to indicate how LocalDateTime should be parsed/rendered.
*
* <p>
@@ -81,7 +81,7 @@ public class Jdk8LocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi
*
* @see #NAMED_TITLE_FORMATTERS
*/
- public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.datetime";
+ //public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.datetime";
/**
@@ -146,7 +146,8 @@ public class Jdk8LocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi
public Jdk8LocalDateTimeValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, LocalDateTime.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- String configuredNameOrPattern = getConfigurationLegacy().getString(CFG_FORMAT_KEY, "medium").toLowerCase().trim();
+ String configuredNameOrPattern = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATETIME, "medium");
updateTitleStringFormatter(configuredNameOrPattern);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
index 05dc778..52185cf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,7 @@ import java.util.Locale;
import java.util.Map;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
@@ -42,9 +42,11 @@ public abstract class Jdk8OffsetDateTimeValueSemanticsProviderAbstract<T> extend
}
public Jdk8OffsetDateTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final T defaultValue) {
- super("date", holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
+ super(FormatIdentifier.DATE, holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.date");
+ String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATE, "medium");
+
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
index 29d286d..308d500 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,7 @@ import java.util.Locale;
import java.util.Map;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
@@ -42,13 +42,15 @@ public abstract class JodaDateTimeValueSemanticsProviderAbstract<T> extends Valu
}
public JodaDateTimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass, final T defaultValue) {
- super("date", holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
+ super(FormatIdentifier.DATE, holder, adaptedClass, 12, Immutability.IMMUTABLE, EqualByContent.HONOURED, defaultValue);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.date");
+ String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATE, null);
+
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
- setMask(formatRequired);
+ setMask(formatRequired); //TODO fails when using format names eg 'medium'
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
index d4cbae1..df45563 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.adapters.EncodingException;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -66,24 +66,6 @@ public class JodaLocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi
}
/**
- * Key to indicate how LocalDateTime should be parsed/rendered.
- *
- * <p>
- * eg:
- * <pre>
- * isis.value.format.datetime=iso
- * </pre>
- *
- * <p>
- * A pre-determined list of values is available, specifically 'iso_encoding', 'iso' and 'medium' (see
- * {@link #NAMED_TITLE_FORMATTERS}). Alternatively, can also specify a mask, eg <tt>dd-MMM-yyyy</tt>.
- *
- * @see #NAMED_TITLE_FORMATTERS
- */
- public final static String CFG_FORMAT_KEY = ConfigurationConstants.ROOT + "value.format.datetime";
-
-
- /**
* Keys represent the values which can be configured, and which are used for the rendering of dates.
*
*/
@@ -148,7 +130,8 @@ public class JodaLocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi
public JodaLocalDateTimeValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, LocalDateTime.class, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- String configuredNameOrPattern = getConfigurationLegacy().getString(CFG_FORMAT_KEY, "medium").toLowerCase().trim();
+ String configuredNameOrPattern = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.DATETIME, "medium");
updateTitleStringFormatter(configuredNameOrPattern);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
index 7817999..e7e3620 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -45,7 +46,7 @@ public abstract class DoubleValueSemanticsProviderAbstract extends ValueSemantic
public DoubleValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Double> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.double");
+ format = determineNumberFormat(FormatIdentifier.DOUBLE);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
index 38cc98f..2bf6349 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -45,7 +46,7 @@ public class FloatValueSemanticsProviderAbstract extends ValueSemanticsProviderA
public FloatValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Float> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.float");
+ format = determineNumberFormat(FormatIdentifier.FLOAT);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
index 3b41217..7cb1765 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -45,7 +46,7 @@ public abstract class IntValueSemanticsProviderAbstract extends ValueSemanticsPr
public IntValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Integer> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.int");
+ format = determineNumberFormat(FormatIdentifier.INT);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
index 667cdba..4c6480a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -45,7 +46,7 @@ public abstract class LongValueSemanticsProviderAbstract extends ValueSemanticsP
public LongValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Long> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.long");
+ format = determineNumberFormat(FormatIdentifier.LONG);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/money/MoneyValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
index f2c6b22..5d23be2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
@@ -28,7 +28,6 @@ import java.util.Map;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.applib.value.Money;
-import org.apache.isis.config.ConfigurationConstants;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -81,8 +80,7 @@ public class MoneyValueSemanticsProvider extends ValueSemanticsProviderAndFacetA
public MoneyValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, Money.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- final String property = ConfigurationConstants.ROOT + "value.money.currency";
- defaultCurrencyCode = getConfigurationLegacy().getString(property, LOCAL_CURRENCY_CODE);
+ defaultCurrencyCode = getConfiguration().getValue().getMoney().getCurrencyOrElse(LOCAL_CURRENCY_CODE);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
index 5b278a3..cd399c0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
@@ -26,7 +26,7 @@ import java.text.ParseException;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.applib.value.Percentage;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -59,7 +59,9 @@ public class PercentageValueSemanticsProvider extends ValueSemanticsProviderAndF
public PercentageValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, Percentage.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.percentage");
+ final String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.PERCENTAGE, null);
+
if (formatRequired == null) {
format = PERCENTAGE_FORMAT;
} else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
index a9e430a..5c0a955 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
@@ -24,6 +24,7 @@ import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Map;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -45,7 +46,7 @@ public class ShortValueSemanticsProviderAbstract extends ValueSemanticsProviderA
public ShortValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Short> adaptedClass) {
super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat("value.format.short");
+ format = determineNumberFormat(FormatIdentifier.SHORT);
}
// //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
index b8f43c0..fbbd4e7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/time/TimeValueSemanticsProviderAbstract.java
@@ -26,7 +26,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
@@ -42,9 +42,10 @@ public abstract class TimeValueSemanticsProviderAbstract<T> extends ValueSemanti
@SuppressWarnings("unchecked")
public TimeValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass) {
- super("time", holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+ super(FormatIdentifier.TIME, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.time");
+ final String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.TIME, null);
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
index b4d399f..6684242 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/value/timestampsql/TimeStampValueSemanticsProviderAbstract.java
@@ -26,7 +26,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
-import org.apache.isis.config.ConfigurationConstants;
+import org.apache.isis.config.IsisConfiguration.Value.FormatIdentifier;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
@@ -42,8 +42,11 @@ abstract class TimeStampValueSemanticsProviderAbstract<T> extends ValueSemantics
@SuppressWarnings("unchecked")
public TimeStampValueSemanticsProviderAbstract(final FacetHolder holder, final Class<T> adaptedClass) {
- super("timestamp", holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
- final String formatRequired = getConfigurationLegacy().getString(ConfigurationConstants.ROOT + "value.format.timestamp");
+ super(FormatIdentifier.TIMESTAMP, holder, adaptedClass, TYPICAL_LENGTH, Immutability.NOT_IMMUTABLE, EqualByContent.NOT_HONOURED, (T) DEFAULT_VALUE);
+
+ final String formatRequired = getConfiguration()
+ .getValue().getFormatOrElse(FormatIdentifier.TIMESTAMP, null);
+
if (formatRequired == null) {
format = formats().get(defaultFormat());
} else {
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 55fa8b2..535cfe0 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
@@ -376,7 +376,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
}
specs.parallelStream()
- .forEach(spec -> spec.introspectUpTo(upTo));
+ .forEach(spec -> spec.introspectUpTo(upTo)); // TODO swallows exceptions that happen inside (makes debugging hard)
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
index 2b97fc4..968f2b2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
@@ -70,7 +70,7 @@ class MetaModelContext_configTest {
// -- HELPER
private IsisConfigurationLegacy config() {
- return mmc.getConfigurationLegacy();
+ return ((MetaModelContext_forTesting) mmc).getConfigurationLegacy();
}
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
index d2a9da3..165b0e4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
@@ -124,7 +124,7 @@ public final class MetaModelContext_forTesting implements MetaModelContext {
return specificationLoader.loadSpecification(type);
}
- @Override
+ //@Override
public IsisConfigurationLegacy getConfigurationLegacy() {
return _Config.getConfiguration();
}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
index 3fcc33d..3254857 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
@@ -21,7 +21,6 @@ package org.apache.isis.runtime.system.context.session;
import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.oid.Oid;
@@ -46,7 +45,6 @@ public interface RuntimeContext {
AuthenticationSession getAuthenticationSession();
IsisConfiguration getConfiguration();
- IsisConfigurationLegacy getConfigurationLegacy();
SpecificationLoader getSpecificationLoader();
ServiceInjector getServiceInjector();
ServiceRegistry getServiceRegistry();
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
index c05df1a..b56ea91 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
@@ -25,7 +25,6 @@ import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
@@ -57,7 +56,6 @@ public abstract class RuntimeContextBase implements RuntimeContext {
@Getter(onMethod = @__(@Override)) protected final MetaModelContext metaModelContext;
@Getter(onMethod = @__(@Override)) protected final IsisConfiguration configuration;
- @Getter(onMethod = @__(@Override)) protected final IsisConfigurationLegacy configurationLegacy;
@Getter(onMethod = @__(@Override)) protected final ServiceInjector serviceInjector;
@Getter(onMethod = @__(@Override)) protected final ServiceRegistry serviceRegistry;
@Getter(onMethod = @__(@Override)) protected final SpecificationLoader specificationLoader;
@@ -71,7 +69,6 @@ public abstract class RuntimeContextBase implements RuntimeContext {
protected RuntimeContextBase(MetaModelContext mmc) {
this.metaModelContext= mmc;
this.configuration = mmc.getConfiguration();
- this.configurationLegacy = mmc.getConfigurationLegacy();
this.serviceInjector = mmc.getServiceInjector();
this.serviceRegistry = mmc.getServiceRegistry();
this.specificationLoader = mmc.getSpecificationLoader();
diff --git a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
index f02327f..3f621ed 100644
--- a/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
+++ b/core/viewer-restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
@@ -29,7 +29,6 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.adapter.oid.Oid;
@@ -90,11 +89,6 @@ class DomainResourceHelper {
}
@Override
- public IsisConfigurationLegacy getConfigurationLegacy() {
- return rendererContext.getConfigurationLegacy();
- }
-
- @Override
public IsisConfiguration getConfiguration() {
return rendererContext.getConfiguration();
}
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
index c258cba..e9ede78 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
@@ -31,7 +31,7 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.isis.config.IsisConfigurationLegacy;
+import org.apache.isis.config.IsisConfiguration.Viewer.Wicket.Credit;
import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbPanel;
import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.ThemeChooser;
@@ -61,66 +61,6 @@ public class FooterPanel extends PanelAbstract<Model<String>> {
super(id);
}
- static class Credit {
- private final int num;
- private final String url;
- private final String name;
- private final String image;
-
- final boolean defined;
- private Credit(final int num, final String url, final String name, final String image) {
- this.num = num;
- this.url = url;
- this.name = name;
- this.image = image;
- this.defined = (name != null || image != null) && url != null;
- }
-
- int getNum() {
- return num;
- }
-
- boolean isDefined() {
- return defined;
- }
-
- String getId() {
- return idFor("");
- }
-
- String getUrl() {
- return url;
- }
- String getUrlId() {
- return idFor("Url");
- }
-
- String getName() {
- return name;
- }
- String getNameId() {
- return idFor("Name");
- }
-
- String getImage() {
- return image;
- }
- String getImageId() {
- return idFor("Image");
- }
-
- private String idFor(final String component) {
- return "credit" + num + component;
- }
-
- public static Credit create(final IsisConfigurationLegacy configurationLegacy, final int num) {
- String base = "isis.viewer.wicket.credit." + num + ".";
- String url = configurationLegacy.getString(base + "url");
- String name = configurationLegacy.getString(base + "name");
- String image = configurationLegacy.getString(base + "image");
- return new Credit(num, url, name, image);
- }
- }
@Override
protected void onInitialize() {
@@ -133,17 +73,17 @@ public class FooterPanel extends PanelAbstract<Model<String>> {
}
private void addCredits() {
- boolean credits = false;
- credits = addCredit(1) || credits;
- credits = addCredit(2) || credits;
- credits = addCredit(3) || credits;
+ boolean hasAnyCredits = false;
+ hasAnyCredits = addCredit(1) || hasAnyCredits;
+ hasAnyCredits = addCredit(2) || hasAnyCredits;
+ hasAnyCredits = addCredit(3) || hasAnyCredits;
final Label creditsLabel = new Label("creditsLabel", "Credits: ");
add(creditsLabel);
- creditsLabel.setVisibilityAllowed(credits);
+ creditsLabel.setVisibilityAllowed(hasAnyCredits);
}
private boolean addCredit(final int num) {
- final Credit credit = Credit.create(super.getCommonContext().getConfigurationLegacy(), num);
+ final Credit credit = super.getConfiguration().getViewer().getWicket().getCredit(num);
final WebMarkupContainer creditLink = newLink(credit);
if(credit.isDefined()) {
creditLink.add(new CreditImage(credit.getImageId(), credit.getImage()));
diff --git a/examples/apps/demo/src/main/java/domainapp/application/isis-non-changing.properties b/examples/apps/demo/src/main/java/domainapp/application/isis-non-changing.properties
index fc49dd5..d40228c 100644
--- a/examples/apps/demo/src/main/java/domainapp/application/isis-non-changing.properties
+++ b/examples/apps/demo/src/main/java/domainapp/application/isis-non-changing.properties
@@ -48,10 +48,9 @@ isis.viewer.wicket.application.js=/scripts/application.js
isis.viewer.wicket.application.about=Isis Demo App
isis.viewer.wicket.welcome.file=welcome.html
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
-
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
isis.viewer.wicket.themes.initial=bootstrap-theme
isis.viewer.wicket.themes.showChooser=yes
diff --git a/examples/apps/helloworld/src/main/java/domainapp/application/isis-non-changing.properties b/examples/apps/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
index 09dcb88..9b53670 100644
--- a/examples/apps/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
+++ b/examples/apps/helloworld/src/main/java/domainapp/application/isis-non-changing.properties
@@ -42,9 +42,9 @@ isis.viewer.wicket.application.js=scripts/application.js
isis.viewer.wicket.application.about=Hello World
isis.viewer.wicket.welcome.file=welcome.html
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
isis.viewer.wicket.themes.initial=Flatly
isis.viewer.wicket.themes.showChooser=yes
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties
index 1ba7209..bdcbc36 100644
--- a/examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties
+++ b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties
@@ -555,9 +555,9 @@ isis.viewer.wicket.application.css=css/application.css
isis.viewer.wicket.application.js=scripts/application.js
isis.viewer.wicket.application.about=Simple App
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
#
# The maximum length of titles to display in standalone or parented tables.
diff --git a/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties b/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
index d1f5123..937916c 100644
--- a/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
+++ b/examples/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis-non-changing.properties
@@ -51,9 +51,9 @@ isis.viewer.wicket.application.js=scripts/application.js
isis.viewer.wicket.application.about=Hello World
isis.viewer.wicket.welcome.file=welcome.html
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
isis.viewer.wicket.themes.initial=Flatly
isis.viewer.wicket.themes.showChooser=yes
diff --git a/examples/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties b/examples/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
index 421517a..95fe0e1 100644
--- a/examples/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
+++ b/examples/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
@@ -558,9 +558,9 @@ isis.viewer.wicket.application.css=css/application.css
isis.viewer.wicket.application.js=scripts/application.js
isis.viewer.wicket.application.about=Simple App
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
${symbol_pound}
${symbol_pound} The maximum length of titles to display in standalone or parented tables.
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/isis-non-changing.properties b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/isis-non-changing.properties
index 434fc3b..1936d18 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/isis-non-changing.properties
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/isis-non-changing.properties
@@ -43,9 +43,9 @@ isis.viewer.wicket.application.js=scripts/application.js
isis.viewer.wicket.application.about=Hello World
isis.viewer.wicket.welcome.file=welcome.html
-isis.viewer.wicket.credit.1.image=/images/apache-isis/logo-48x48.png
-isis.viewer.wicket.credit.1.name=Apache Isis
-isis.viewer.wicket.credit.1.url=http://isis.apache.org
+isis.viewer.wicket.credit[0].image=/images/apache-isis/logo-48x48.png
+isis.viewer.wicket.credit[0].name=Apache Isis
+isis.viewer.wicket.credit[0].url=http://isis.apache.org
isis.viewer.wicket.themes.initial=Flatly
isis.viewer.wicket.themes.showChooser=yes