This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/master by this push:
new 7be767792c CAUSEWAY-3404: relocate natural name utils to TextUtils
7be767792c is described below
commit 7be767792c08b70b57893c8a07bd1fa4c920acb4
Author: Andi Huber <[email protected]>
AuthorDate: Thu May 11 15:27:24 2023 +0200
CAUSEWAY-3404: relocate natural name utils to TextUtils
---
.../causeway/commons/internal/base/_Strings.java | 4 +-
.../internal/base/_Strings_NaturalNames.java | 2 +-
.../org/apache/causeway/commons/io/TextUtils.java | 11 ++++
.../commons/internal/base/StringsTest.java | 3 +-
.../commons/util/StringSpecialFormsTest.java | 28 ++++++-----
.../core/metamodel/commons/StringExtensions.java | 53 --------------------
.../actions/action/invocation/IdentifierUtil.java | 3 +-
.../fallback/NamedFacetFallbackFromMemberName.java | 4 +-
.../members/layout/group/GroupIdAndName.java | 2 +-
.../ParameterNameFacetFactoryUsingReflection.java | 4 +-
.../specimpl/dflt/ObjectSpecificationDefault.java | 4 +-
.../commons/StringUtils_NaturalNameTest.java | 58 ----------------------
.../commons/StringUtils_NaturalizeTest.java | 48 ------------------
.../ExceptionRecognizerForDataAccessException.java | 10 ++--
.../applib/fixturescripts/FixtureScript.java | 2 +-
15 files changed, 44 insertions(+), 192 deletions(-)
diff --git
a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings.java
b/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings.java
index 3515f520ef..a9e0a700aa 100644
---
a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings.java
+++
b/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings.java
@@ -835,8 +835,8 @@ public final class _Strings {
public static final StringOperator asNormalized = operator()
.andThen(s->_Strings.condenseWhitespaces(s, " "));
- public static final StringOperator asNaturalName2 = operator()
- .andThen(s->_Strings_NaturalNames.naturalName2(s, true));
+ public static final StringOperator asNaturalName = operator()
+ .andThen(s->_Strings_NaturalNames.naturalName(s, true));
public static final String asFileNameWithExtension(final @NonNull String
fileName, final @NonNull String fileExtension) {
diff --git
a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings_NaturalNames.java
b/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings_NaturalNames.java
index c07b0b7285..86c1467449 100644
---
a/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings_NaturalNames.java
+++
b/commons/src/main/java/org/apache/causeway/commons/internal/base/_Strings_NaturalNames.java
@@ -39,7 +39,7 @@ class _Strings_NaturalNames {
* @return
*
*/
- String naturalName2(@Nullable String name, final boolean
handleNestedClassNames) {
+ String naturalName(@Nullable String name, final boolean
handleNestedClassNames) {
if(name==null)
return null;
diff --git
a/commons/src/main/java/org/apache/causeway/commons/io/TextUtils.java
b/commons/src/main/java/org/apache/causeway/commons/io/TextUtils.java
index d78626e87d..6949c2c922 100644
--- a/commons/src/main/java/org/apache/causeway/commons/io/TextUtils.java
+++ b/commons/src/main/java/org/apache/causeway/commons/io/TextUtils.java
@@ -208,6 +208,17 @@ public class TextUtils {
});
}
+ // -- SPECIAL FORMS
+
+ /**
+ * Returns a word spaced version of the specified name, so there are spaces
+ * between the words, where each word starts with a capital letter. E.g.,
+ * "NextAvailableDate" is returned as "Next Available Date".
+ */
+ public String asNaturalName(final String name) {
+ return _Strings.asNaturalName.apply(name);
+ }
+
// -- STRING DELIMITER
public StringDelimiter delimiter(final @NonNull String delimiter) {
diff --git
a/commons/src/test/java/org/apache/causeway/commons/internal/base/StringsTest.java
b/commons/src/test/java/org/apache/causeway/commons/internal/base/StringsTest.java
index 386accc05d..84777878fd 100644
---
a/commons/src/test/java/org/apache/causeway/commons/internal/base/StringsTest.java
+++
b/commons/src/test/java/org/apache/causeway/commons/internal/base/StringsTest.java
@@ -328,10 +328,9 @@ class StringsTest {
@Test
void asNaturalName2() throws Exception {
assertThat(
- _Strings.asNaturalName2
+ _Strings.asNaturalName
.apply("NextAvailableDate"),
is("Next Available Date"));
}
-
}
diff --git
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/NameUtilTest.java
b/commons/src/test/java/org/apache/causeway/commons/util/StringSpecialFormsTest.java
similarity index 55%
rename from
core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/NameUtilTest.java
rename to
commons/src/test/java/org/apache/causeway/commons/util/StringSpecialFormsTest.java
index f52afa396e..3ebb091fdd 100644
---
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/NameUtilTest.java
+++
b/commons/src/test/java/org/apache/causeway/commons/util/StringSpecialFormsTest.java
@@ -16,43 +16,45 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.causeway.core.metamodel.commons;
+package org.apache.causeway.commons.util;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
-class NameUtilTest {
+import org.apache.causeway.commons.io.TextUtils;
+
+class StringSpecialFormsTest {
@Test
void naturalNameAddsSpacesToCamelCaseWords() {
- assertEquals("Camel Case Word",
StringExtensions.asNaturalName2("CamelCaseWord"));
+ assertEquals("Camel Case Word",
TextUtils.asNaturalName("CamelCaseWord"));
}
@Test
void naturalNameAddsSpacesBeforeNumbers() {
- assertEquals("One 2 One", StringExtensions.asNaturalName2("One2One"));
- assertEquals("Type 123", StringExtensions.asNaturalName2("Type123"));
- assertEquals("4321 Go", StringExtensions.asNaturalName2("4321Go"));
+ assertEquals("One 2 One", TextUtils.asNaturalName("One2One"));
+ assertEquals("Type 123", TextUtils.asNaturalName("Type123"));
+ assertEquals("4321 Go", TextUtils.asNaturalName("4321Go"));
}
@Test
void naturalNameRecognisesAcronymns() {
- assertEquals("TNT Power", StringExtensions.asNaturalName2("TNTPower"));
- assertEquals("Spam RAM Can",
StringExtensions.asNaturalName2("SpamRAMCan"));
- assertEquals("DOB", StringExtensions.asNaturalName2("DOB"));
+ assertEquals("TNT Power", TextUtils.asNaturalName("TNTPower"));
+ assertEquals("Spam RAM Can", TextUtils.asNaturalName("SpamRAMCan"));
+ assertEquals("DOB", TextUtils.asNaturalName("DOB"));
}
@Test
void naturalNameWithShortNames() {
- assertEquals("At", StringExtensions.asNaturalName2("At"));
- assertEquals("I", StringExtensions.asNaturalName2("I"));
+ assertEquals("At", TextUtils.asNaturalName("At"));
+ assertEquals("I", TextUtils.asNaturalName("I"));
}
@Test
void naturalNameNoChange() {
- assertEquals("Camel Case Word",
StringExtensions.asNaturalName2("CamelCaseWord"));
- assertEquals("Almost Normal english sentence",
StringExtensions.asNaturalName2("Almost Normal english sentence"));
+ assertEquals("Camel Case Word",
TextUtils.asNaturalName("CamelCaseWord"));
+ assertEquals("Almost Normal english sentence",
TextUtils.asNaturalName("Almost Normal english sentence"));
}
}
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/commons/StringExtensions.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/commons/StringExtensions.java
index 8f3b8af22e..5f9e9bc9d4 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/commons/StringExtensions.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/commons/StringExtensions.java
@@ -41,59 +41,6 @@ public final class StringExtensions {
// naturalName, naturalize, simpleName, camel, memberIdFor
// ////////////////////////////////////////////////////////////
- /**
- * Returns a word spaced version of the specified name, so there are spaces
- * between the words, where each word starts with a capital letter. E.g.,
- * "NextAvailableDate" is returned as "Next Available Date".
- */
- public static String asNaturalName2(final String name) {
- return _Strings.asNaturalName2.apply(name);
- }
-
- public static String asNaturalName(final String extendee) {
-
- int pos = 0;
-
- // find first upper case character
- while ((pos < extendee.length()) &&
Character.isLowerCase(extendee.charAt(pos))) {
- pos++;
- }
-
- if (pos == extendee.length()) {
- return "invalid name";
- }
- return naturalized(extendee, pos);
- }
-
- public static String asNaturalized(final String extendee) {
- return naturalized(extendee, 0);
- }
-
- private static String naturalized(final String name, final int
startingPosition) {
- if (name.length() <= startingPosition) {
- throw new IllegalArgumentException("string shorter than starting
position provided");
- }
- final StringBuffer s = new StringBuffer(name.length() -
startingPosition);
- for (int j = startingPosition; j < name.length(); j++) { // process
- // english name
- // - add spaces
- if ((j > startingPosition) && isStartOfNewWord(name.charAt(j),
name.charAt(j - 1))) {
- s.append(' ');
- }
- if (j == startingPosition) {
- s.append(Character.toUpperCase(name.charAt(j)));
- } else {
- s.append(name.charAt(j));
- }
- }
- final String str = s.toString();
- return str;
- }
-
- private static boolean isStartOfNewWord(final char c, final char
previousChar) {
- return Character.isUpperCase(c) || Character.isDigit(c) &&
!Character.isDigit(previousChar);
- }
-
public static String asCamel(final String extendee) {
final StringBuffer b = new StringBuffer(extendee.length());
final StringTokenizer t = new StringTokenizer(extendee);
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/IdentifierUtil.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/IdentifierUtil.java
index 71f89d7d57..701a8823c9 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/IdentifierUtil.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/IdentifierUtil.java
@@ -25,7 +25,6 @@ import org.apache.causeway.applib.id.LogicalType;
import org.apache.causeway.applib.services.command.Command;
import org.apache.causeway.commons.internal.exceptions._Exceptions;
import org.apache.causeway.commons.io.TextUtils;
-import org.apache.causeway.core.metamodel.commons.StringExtensions;
import org.apache.causeway.core.metamodel.interactions.InteractionHead;
import
org.apache.causeway.core.metamodel.interactions.managed.ActionInteractionHead;
import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
@@ -47,7 +46,7 @@ import lombok.experimental.UtilityClass;
public class IdentifierUtil {
public String targetClassNameFor(final ObjectSpecification spec) {
- return StringExtensions.asNaturalName2(spec.getSingularName());
+ return TextUtils.asNaturalName(spec.getSingularName());
}
/**
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
index fa001c169e..79a3985490 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/fallback/NamedFacetFallbackFromMemberName.java
@@ -18,7 +18,7 @@
*/
package org.apache.causeway.core.metamodel.facets.fallback;
-import org.apache.causeway.core.metamodel.commons.StringExtensions;
+import org.apache.causeway.commons.io.TextUtils;
import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
import
org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacetForStaticMemberName;
@@ -27,7 +27,7 @@ extends MemberNamedFacetForStaticMemberName {
public NamedFacetFallbackFromMemberName(final FacetHolder holder) {
super(
-
StringExtensions.asNaturalName2(holder.getFeatureIdentifier().getMemberLogicalName()),
+
TextUtils.asNaturalName(holder.getFeatureIdentifier().getMemberLogicalName()),
holder,
Precedence.FALLBACK);
}
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
index 537808edcd..a35ccaab76 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/layout/group/GroupIdAndName.java
@@ -165,7 +165,7 @@ implements
* @implNote could potentially be improved to work similar as the title
service
*/
private static @NonNull String inferNameFromId(final @NonNull String id) {
- return _Strings.asNaturalName2.apply(id);
+ return _Strings.asNaturalName.apply(id);
}
/**
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
index 3971ab0266..92ce30da65 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/name/ParameterNameFacetFactoryUsingReflection.java
@@ -22,7 +22,7 @@ import java.util.regex.Pattern;
import javax.inject.Inject;
-import org.apache.causeway.core.metamodel.commons.StringExtensions;
+import org.apache.causeway.commons.io.TextUtils;
import org.apache.causeway.core.metamodel.context.MetaModelContext;
import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
import org.apache.causeway.core.metamodel.facetapi.FeatureType;
@@ -63,7 +63,7 @@ extends FacetFactoryAbstract {
return;
}
- val naturalName = StringExtensions.asNaturalName2(parameterName);
+ val naturalName = TextUtils.asNaturalName(parameterName);
val facetHolder = processParameterContext.getFacetHolder();
FacetUtil.addFacet(
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index ea280e6306..a0f5d4e1c2 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -39,8 +39,8 @@ import
org.apache.causeway.commons.internal.collections._Lists;
import org.apache.causeway.commons.internal.collections._Maps;
import
org.apache.causeway.commons.internal.reflection._MethodFacades.MethodFacade;
import org.apache.causeway.commons.internal.reflection._Reflect;
+import org.apache.causeway.commons.io.TextUtils;
import org.apache.causeway.core.config.beans.CausewayBeanMetaData;
-import org.apache.causeway.core.metamodel.commons.StringExtensions;
import org.apache.causeway.core.metamodel.commons.ToString;
import org.apache.causeway.core.metamodel.context.MetaModelContext;
import org.apache.causeway.core.metamodel.facetapi.FacetHolder;
@@ -189,7 +189,7 @@ implements FacetHolder {
private void addNamedFacetIfRequired() {
if (getFacet(MemberNamedFacet.class) == null) {
addFacet(new MemberNamedFacetForStaticMemberName(
- StringExtensions.asNaturalName2(getShortIdentifier()),
+ TextUtils.asNaturalName(getShortIdentifier()),
this));
}
}
diff --git
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalNameTest.java
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalNameTest.java
deleted file mode 100644
index b516f18fa1..0000000000
---
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalNameTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.core.metamodel.commons;
-
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-public class StringUtils_NaturalNameTest {
-
- @Test
- public void shouldCreateANaturalNameForABooleanPropertyAccessorName() {
- assertThat(StringExtensions.asNaturalName("isOutOfStock"), is("Out Of
Stock"));
- }
-
- @Test
- public void
shouldCreateANaturalNameForABooleanPropertyAccessorNameSingleWord() {
- assertThat(StringExtensions.asNaturalName("isBlacklisted"),
is("Blacklisted"));
- }
-
- @Test
- public void shouldCreateANaturalNameForANonBooleanPropertyAccessorName() {
- assertThat(StringExtensions.asNaturalName("getFirstName"), is("First
Name"));
- }
-
- @Test
- public void
shouldCreateANaturalNameForANonBooleanPropertyAccessorNameSingleWord() {
- assertThat(StringExtensions.asNaturalName("getAge"), is("Age"));
- }
-
- @Test
- public void shouldCreateANaturalNameForAPropertyMutatorName() {
- assertThat(StringExtensions.asNaturalName("setFirstName"), is("First
Name"));
- }
-
- @Test
- public void shouldCreateANaturalNameForAPropertyMutatorNameSingleWord() {
- assertThat(StringExtensions.asNaturalName("setAge"), is("Age"));
- }
-
-}
diff --git
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalizeTest.java
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalizeTest.java
deleted file mode 100644
index 1bbe154310..0000000000
---
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/commons/StringUtils_NaturalizeTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.causeway.core.metamodel.commons;
-
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-class StringUtils_NaturalizeTest {
-
- @Test
- public void shouldNaturalizeMultipleCamelCase() {
- assertThat(StringExtensions.asNaturalized("thisIsACamelCasePhrase"),
is("This Is A Camel Case Phrase"));
- }
-
- @Test
- public void shouldNaturalizeMultiplePascalCase() {
- assertThat(StringExtensions.asNaturalized("ThisIsAPascalCasePhrase"),
is("This Is A Pascal Case Phrase"));
- }
-
- @Test
- public void shouldNaturalizeSingleWordStartingWithLowerCase() {
- assertThat(StringExtensions.asNaturalized("foo"), is("Foo"));
- }
-
- @Test
- public void shouldNaturalizeSingleWordStartingWithUpperCase() {
- assertThat(StringExtensions.asNaturalized("Foo"), is("Foo"));
- }
-
-}
diff --git
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.java
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.java
index 43969af032..97f50299e0 100644
---
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.java
+++
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/recognizer/dae/ExceptionRecognizerForDataAccessException.java
@@ -61,13 +61,13 @@ implements ExceptionRecognizer {
private final boolean disabled;
@Inject
- public ExceptionRecognizerForDataAccessException(CausewayConfiguration
conf) {
+ public ExceptionRecognizerForDataAccessException(final
CausewayConfiguration conf) {
this.disabled = conf.getCore().getRuntimeServices()
.getExceptionRecognizer().getDae().isDisable();
}
@Override
- public Optional<Recognition> recognize(Throwable ex) {
+ public Optional<Recognition> recognize(final Throwable ex) {
if(ex instanceof DataAccessException
&& !isDisabled()) {
return recognizeDae((DataAccessException)ex);
@@ -77,7 +77,7 @@ implements ExceptionRecognizer {
// -- HELPER
- private Optional<Recognition> recognizeDae(DataAccessException ex) {
+ private Optional<Recognition> recognizeDae(final DataAccessException ex) {
if(ex instanceof ConcurrencyFailureException) {
return recognitionOf(Category.CONCURRENCY, ex);
@@ -102,10 +102,10 @@ implements ExceptionRecognizer {
return recognitionOf(Category.OTHER, ex);
}
- private Optional<Recognition> recognitionOf(Category category,
DataAccessException ex) {
+ private Optional<Recognition> recognitionOf(final Category category, final
DataAccessException ex) {
val causeMessage =
_Strings.nullToEmpty(ex.getMostSpecificCause().getMessage()).trim();
- val exceptionFriendlyName = _Strings.asNaturalName2
+ val exceptionFriendlyName = _Strings.asNaturalName
.apply(ex.getClass().getSimpleName())
.toLowerCase();
diff --git
a/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScript.java
b/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScript.java
index 455f0394e4..3cb9b843c2 100644
---
a/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScript.java
+++
b/testing/fixtures/applib/src/main/java/org/apache/causeway/testing/fixtures/applib/fixturescripts/FixtureScript.java
@@ -101,7 +101,7 @@ public abstract class FixtureScript {
}
protected String friendlyNameElseDerived(final String str) {
- return str != null ? str :
_Strings.asNaturalName2.apply(getClass().getSimpleName());
+ return str != null ? str :
_Strings.asNaturalName.apply(getClass().getSimpleName());
}