You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/01/28 09:32:15 UTC

[isis] branch master updated (c870b52 -> 79ff071)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from c870b52  ISIS-2443: adds descriptions for embedded types
     new 8bdac4c  ISIS-2502: update mignotes
     new 79ff071  ISIS-2502: group specialized exceptions by their hierarchy they belong to

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc | 13 +++++++++++++
 .../exceptions/{ => recoverable}/InteractionException.java  |  2 +-
 .../exceptions/{ => recoverable}/InvalidEntryException.java |  2 +-
 .../{ => recoverable}/TextEntryParseException.java          |  2 +-
 .../{ => unrecoverable}/DomainModelException.java           |  2 +-
 .../exceptions/{ => unrecoverable}/MetaModelException.java  |  2 +-
 .../{ => unrecoverable}/NoAuthenticatorException.java       |  2 +-
 .../{ => unrecoverable}/ObjectNotFoundException.java        |  2 +-
 .../{ => unrecoverable}/ObjectPersistenceException.java     |  2 +-
 .../{ => unrecoverable}/PersistFailedException.java         |  2 +-
 .../{ => unrecoverable}/ReflectiveActionException.java      |  2 +-
 .../exceptions/{ => unrecoverable}/RepositoryException.java |  2 +-
 .../{ => unrecoverable}/UnexpectedCallException.java        |  2 +-
 .../{ => unrecoverable}/UnknownTypeException.java           |  2 +-
 .../isis/applib/services/wrapper/DisabledException.java     |  3 +--
 .../isis/applib/services/wrapper/HiddenException.java       |  2 +-
 .../isis/applib/services/wrapper/InvalidException.java      |  2 +-
 .../apache/isis/applib/services/wrapper/WrapperFactory.java |  2 +-
 .../isis/core/metamodel/_testing/ServiceInjectorLegacy.java |  2 +-
 .../isis/core/metamodel/commons/ThrowableExtensions.java    |  4 ++--
 .../org/apache/isis/core/metamodel/facets/Annotations.java  |  2 +-
 .../method/ActionValidationFacetViaMethodFactory.java       |  2 +-
 .../metamodel/facets/object/callbacks/CallbackFacet.java    |  2 +-
 .../object/choices/enums/EnumValueSemanticsProvider.java    |  2 +-
 .../object/parseable/parser/ParseableFacetUsingParser.java  |  2 +-
 .../value/vsp/ValueSemanticsProviderAndFacetAbstract.java   |  4 ++--
 .../ActionParameterAutoCompleteFacetViaMethodFactory.java   |  2 +-
 .../param/choices/method/ActionChoicesFacetViaMethod.java   |  2 +-
 .../ActionParameterChoicesFacetViaMethodFactory.java        |  2 +-
 .../ActionParameterDefaultsFacetViaMethodFactory.java       |  2 +-
 .../ActionParameterDisabledFacetViaMethodFactory.java       |  2 +-
 .../method/ActionParameterHiddenFacetViaMethodFactory.java  |  2 +-
 .../ActionParameterValidationFacetViaMethodFactory.java     |  2 +-
 .../defaults/method/PropertyDefaultFacetViaMethod.java      |  2 +-
 .../value/ValueSemanticsProviderAbstractTemporal.java       |  2 +-
 .../value/bigdecimal/BigDecimalValueSemanticsProvider.java  |  2 +-
 .../value/biginteger/BigIntegerValueSemanticsProvider.java  |  2 +-
 .../booleans/BooleanValueSemanticsProviderAbstract.java     |  2 +-
 .../value/bytes/ByteValueSemanticsProviderAbstract.java     |  2 +-
 .../value/chars/CharValueSemanticsProviderAbstract.java     |  2 +-
 .../facets/value/datejodalocal/JodaLocalDateUtil.java       |  2 +-
 .../value/datetimejodalocal/JodaLocalDateTimeUtil.java      |  2 +-
 .../value/doubles/DoubleValueSemanticsProviderAbstract.java |  2 +-
 .../value/floats/FloatValueSemanticsProviderAbstract.java   |  2 +-
 .../value/image/ImageValueSemanticsProviderAbstract.java    |  2 +-
 .../value/integer/IntValueSemanticsProviderAbstract.java    |  2 +-
 .../value/longs/LongValueSemanticsProviderAbstract.java     |  2 +-
 .../value/shortint/ShortValueSemanticsProviderAbstract.java |  2 +-
 .../temporal/TemporalValueSemanticsProviderAbstract.java    |  2 +-
 .../JavaSqlTimeStampValueSemanticsProvider.java             |  2 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java          |  2 +-
 .../metamodel/specloader/specimpl/MemberSortingUtils.java   |  2 +-
 .../metamodel/specloader/specimpl/ObjectActionDefault.java  |  2 +-
 .../specloader/specimpl/ObjectActionParameterAbstract.java  |  2 +-
 .../facets/actions/ActionMethodsFacetFactoryTest.java       |  2 +-
 .../object/parseable/ParseableFacetUsingParserTest.java     |  2 +-
 .../facets/value/BigDecimalValueSemanticsProviderTest.java  |  2 +-
 .../facets/value/BigIntValueSemanticsProviderTest.java      |  2 +-
 .../facets/value/BooleanValueSemanticsProviderTest.java     |  2 +-
 .../facets/value/ByteValueSemanticsProviderTest.java        |  2 +-
 .../facets/value/CharacterValueSemanticsProviderTest.java   |  2 +-
 .../facets/value/DoubleValueSemanticsProviderTest.java      |  2 +-
 .../facets/value/FloatValueSemanticsProviderTest.java       |  2 +-
 .../facets/value/IntValueSemanticsProviderTest.java         |  2 +-
 .../facets/value/JavaSqlDateValueSemanticsProviderTest.java |  2 +-
 .../value/JavaUtilDateValueSemanticsProviderTest.java       |  2 +-
 .../facets/value/LongValueSemanticsProviderTest.java        |  2 +-
 .../facets/value/ShortValueSemanticsProviderTest.java       |  2 +-
 .../runtimeservices/bookmarks/BookmarkServiceDefault.java   |  2 +-
 .../repository/RepositoryServiceDefault.java                |  4 ++--
 .../wrapper/handlers/DomainObjectInvocationHandler.java     |  2 +-
 .../authentication/manager/AuthenticationManager.java       |  2 +-
 .../standard/AuthenticationManager_authenticators_Test.java |  2 +-
 .../facets/value/color/ColorValueSemanticsProvider.java     |  2 +-
 .../facets/value/money/MoneyValueSemanticsProvider.java     |  2 +-
 .../value/percentage/PercentageValueSemanticsProvider.java  |  2 +-
 .../facets/value/ColorValueSemanticsProviderTest.java       |  2 +-
 .../facets/value/MoneyValueSemanticsProviderTest.java       |  2 +-
 .../facets/value/PolishMoneyValueSemanticsProviderTest.java |  2 +-
 .../datanucleus/jdosupport/JdoSupportServiceDefault.java    |  2 +-
 .../datanucleus/metamodel/facets/entity/JdoEntityFacet.java |  2 +-
 .../domainmodel/DomainModelTest_usingBadDomain.java         |  2 +-
 .../DomainModelTest_usingBadDomain_noActionEnforced.java    |  2 +-
 .../applib/validate/DomainModelValidator.java               |  2 +-
 .../rendering/domainobjects/JsonValueEncoder.java           |  2 +-
 .../domainobjects/JsonValueEncoderTest_asAdapter.java       |  2 +-
 .../viewer/mappers/ExceptionMapperForObjectNotFound.java    |  2 +-
 .../ui/components/bookmarkedpages/BookmarkedPagesPanel.java |  2 +-
 88 files changed, 103 insertions(+), 91 deletions(-)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => recoverable}/InteractionException.java (97%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => recoverable}/InvalidEntryException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => recoverable}/TextEntryParseException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/DomainModelException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/MetaModelException.java (95%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/NoAuthenticatorException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/ObjectNotFoundException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/ObjectPersistenceException.java (95%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/PersistFailedException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/ReflectiveActionException.java (95%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/RepositoryException.java (96%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/UnexpectedCallException.java (95%)
 rename api/applib/src/main/java/org/apache/isis/applib/exceptions/{ => unrecoverable}/UnknownTypeException.java (95%)


[isis] 01/02: ISIS-2502: update mignotes

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 8bdac4cffe5b4a2ca97e0f10763165a586f8f722
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 28 10:01:52 2021 +0100

    ISIS-2502: update mignotes
---
 .../relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
index 4e6094b..1286b30 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
@@ -218,6 +218,9 @@ CommandServiceInternal -> CommandPublisher
 | Clock (moved from applib module to fixture-applib module)
 | VirtualClock (introduced)
 
+| FatalException (removed) 
+| removed, adds no new semantics compared to the already existing UnrecoverableException
+
 | IsisInteractionFactory
 | InteractionFactory
 
@@ -233,12 +236,22 @@ CommandServiceInternal -> CommandPublisher
 | IsisApplicationException
 | ApplicationException
 
+| IsisException (removed)
+| use one of 2 hierarchies (in support of i18n translation)
+
+- RecoverableException
+
+- UnrecoverableException
+
 | IsisInteractionTracker
 | InteractionTracker
 
 | MessageBroker is held by Authentication(Session)
 | MessageBroker is held by InteractionSession
 
+| NonRecoverableException
+| renamed to UnrecoverableException
+
 | ParentedOid, PojoRecreationException, PojoRefreshException
 | removed, as no longer used
 


[isis] 02/02: ISIS-2502: group specialized exceptions by their hierarchy they belong to

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 79ff07114df7cc57889c443cbc2390c30951f045
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 28 10:32:00 2021 +0100

    ISIS-2502: group specialized exceptions by their hierarchy they belong
    to
---
 .../applib/exceptions/{ => recoverable}/InteractionException.java     | 2 +-
 .../applib/exceptions/{ => recoverable}/InvalidEntryException.java    | 2 +-
 .../applib/exceptions/{ => recoverable}/TextEntryParseException.java  | 2 +-
 .../applib/exceptions/{ => unrecoverable}/DomainModelException.java   | 2 +-
 .../applib/exceptions/{ => unrecoverable}/MetaModelException.java     | 2 +-
 .../exceptions/{ => unrecoverable}/NoAuthenticatorException.java      | 2 +-
 .../exceptions/{ => unrecoverable}/ObjectNotFoundException.java       | 2 +-
 .../exceptions/{ => unrecoverable}/ObjectPersistenceException.java    | 2 +-
 .../applib/exceptions/{ => unrecoverable}/PersistFailedException.java | 2 +-
 .../exceptions/{ => unrecoverable}/ReflectiveActionException.java     | 2 +-
 .../applib/exceptions/{ => unrecoverable}/RepositoryException.java    | 2 +-
 .../exceptions/{ => unrecoverable}/UnexpectedCallException.java       | 2 +-
 .../applib/exceptions/{ => unrecoverable}/UnknownTypeException.java   | 2 +-
 .../org/apache/isis/applib/services/wrapper/DisabledException.java    | 3 +--
 .../java/org/apache/isis/applib/services/wrapper/HiddenException.java | 2 +-
 .../org/apache/isis/applib/services/wrapper/InvalidException.java     | 2 +-
 .../java/org/apache/isis/applib/services/wrapper/WrapperFactory.java  | 2 +-
 .../apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java    | 2 +-
 .../org/apache/isis/core/metamodel/commons/ThrowableExtensions.java   | 4 ++--
 .../main/java/org/apache/isis/core/metamodel/facets/Annotations.java  | 2 +-
 .../validate/method/ActionValidationFacetViaMethodFactory.java        | 2 +-
 .../isis/core/metamodel/facets/object/callbacks/CallbackFacet.java    | 2 +-
 .../facets/object/choices/enums/EnumValueSemanticsProvider.java       | 2 +-
 .../facets/object/parseable/parser/ParseableFacetUsingParser.java     | 2 +-
 .../object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java      | 4 ++--
 .../method/ActionParameterAutoCompleteFacetViaMethodFactory.java      | 2 +-
 .../facets/param/choices/method/ActionChoicesFacetViaMethod.java      | 2 +-
 .../methodnum/ActionParameterChoicesFacetViaMethodFactory.java        | 2 +-
 .../methodnum/ActionParameterDefaultsFacetViaMethodFactory.java       | 2 +-
 .../disable/method/ActionParameterDisabledFacetViaMethodFactory.java  | 2 +-
 .../param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java | 2 +-
 .../method/ActionParameterValidationFacetViaMethodFactory.java        | 2 +-
 .../properties/defaults/method/PropertyDefaultFacetViaMethod.java     | 2 +-
 .../facets/value/ValueSemanticsProviderAbstractTemporal.java          | 2 +-
 .../facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java     | 2 +-
 .../facets/value/biginteger/BigIntegerValueSemanticsProvider.java     | 2 +-
 .../facets/value/booleans/BooleanValueSemanticsProviderAbstract.java  | 2 +-
 .../facets/value/bytes/ByteValueSemanticsProviderAbstract.java        | 2 +-
 .../facets/value/chars/CharValueSemanticsProviderAbstract.java        | 2 +-
 .../core/metamodel/facets/value/datejodalocal/JodaLocalDateUtil.java  | 2 +-
 .../facets/value/datetimejodalocal/JodaLocalDateTimeUtil.java         | 2 +-
 .../facets/value/doubles/DoubleValueSemanticsProviderAbstract.java    | 2 +-
 .../facets/value/floats/FloatValueSemanticsProviderAbstract.java      | 2 +-
 .../facets/value/image/ImageValueSemanticsProviderAbstract.java       | 2 +-
 .../facets/value/integer/IntValueSemanticsProviderAbstract.java       | 2 +-
 .../facets/value/longs/LongValueSemanticsProviderAbstract.java        | 2 +-
 .../facets/value/shortint/ShortValueSemanticsProviderAbstract.java    | 2 +-
 .../facets/value/temporal/TemporalValueSemanticsProviderAbstract.java | 2 +-
 .../value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java    | 2 +-
 .../core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java     | 2 +-
 .../isis/core/metamodel/specloader/specimpl/MemberSortingUtils.java   | 2 +-
 .../isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java  | 2 +-
 .../metamodel/specloader/specimpl/ObjectActionParameterAbstract.java  | 2 +-
 .../core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java  | 2 +-
 .../facets/object/parseable/ParseableFacetUsingParserTest.java        | 2 +-
 .../metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java  | 2 +-
 .../core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java | 2 +-
 .../metamodel/facets/value/BooleanValueSemanticsProviderTest.java     | 2 +-
 .../core/metamodel/facets/value/ByteValueSemanticsProviderTest.java   | 2 +-
 .../metamodel/facets/value/CharacterValueSemanticsProviderTest.java   | 2 +-
 .../core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java | 2 +-
 .../core/metamodel/facets/value/FloatValueSemanticsProviderTest.java  | 2 +-
 .../core/metamodel/facets/value/IntValueSemanticsProviderTest.java    | 2 +-
 .../metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java | 2 +-
 .../facets/value/JavaUtilDateValueSemanticsProviderTest.java          | 2 +-
 .../core/metamodel/facets/value/LongValueSemanticsProviderTest.java   | 2 +-
 .../core/metamodel/facets/value/ShortValueSemanticsProviderTest.java  | 2 +-
 .../isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java   | 2 +-
 .../core/runtimeservices/repository/RepositoryServiceDefault.java     | 4 ++--
 .../wrapper/handlers/DomainObjectInvocationHandler.java               | 2 +-
 .../core/security/authentication/manager/AuthenticationManager.java   | 2 +-
 .../standard/AuthenticationManager_authenticators_Test.java           | 2 +-
 .../metamodel/facets/value/color/ColorValueSemanticsProvider.java     | 2 +-
 .../metamodel/facets/value/money/MoneyValueSemanticsProvider.java     | 2 +-
 .../facets/value/percentage/PercentageValueSemanticsProvider.java     | 2 +-
 .../metamodel/facets/value/ColorValueSemanticsProviderTest.java       | 2 +-
 .../metamodel/facets/value/MoneyValueSemanticsProviderTest.java       | 2 +-
 .../metamodel/facets/value/PolishMoneyValueSemanticsProviderTest.java | 2 +-
 .../jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java          | 2 +-
 .../jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java       | 2 +-
 .../isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java   | 2 +-
 .../domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java  | 2 +-
 .../integtestsupport/applib/validate/DomainModelValidator.java        | 2 +-
 .../restfulobjects/rendering/domainobjects/JsonValueEncoder.java      | 2 +-
 .../rendering/domainobjects/JsonValueEncoderTest_asAdapter.java       | 2 +-
 .../viewer/mappers/ExceptionMapperForObjectNotFound.java              | 2 +-
 .../wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java    | 2 +-
 87 files changed, 90 insertions(+), 91 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/InteractionException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InteractionException.java
similarity index 97%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/InteractionException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InteractionException.java
index d2d3b96..4b9dcfe 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/InteractionException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InteractionException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.recoverable;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.RecoverableException;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/InvalidEntryException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InvalidEntryException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/InvalidEntryException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InvalidEntryException.java
index ff23a1f..c17e1e7 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/InvalidEntryException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/InvalidEntryException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.recoverable;
 
 import org.apache.isis.applib.RecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/TextEntryParseException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/TextEntryParseException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/TextEntryParseException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/TextEntryParseException.java
index 9e4fb14..c26e663 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/TextEntryParseException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/recoverable/TextEntryParseException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.recoverable;
 
 import org.apache.isis.applib.RecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/DomainModelException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/DomainModelException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/DomainModelException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/DomainModelException.java
index b6a535a..0a87ef5 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/DomainModelException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/DomainModelException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/MetaModelException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/MetaModelException.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/MetaModelException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/MetaModelException.java
index cb0d723..f416f23 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/MetaModelException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/MetaModelException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/NoAuthenticatorException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/NoAuthenticatorException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/NoAuthenticatorException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/NoAuthenticatorException.java
index 4d5a4fa..999bbf7 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/NoAuthenticatorException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/NoAuthenticatorException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectNotFoundException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectNotFoundException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectNotFoundException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectNotFoundException.java
index bf36227..b4b22f9 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectNotFoundException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectNotFoundException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectPersistenceException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectPersistenceException.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectPersistenceException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectPersistenceException.java
index 3de3d0b..52caec0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ObjectPersistenceException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ObjectPersistenceException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/PersistFailedException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/PersistFailedException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/PersistFailedException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/PersistFailedException.java
index 5068aed..443c722 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/PersistFailedException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/PersistFailedException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.UnrecoverableException;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ReflectiveActionException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ReflectiveActionException.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/ReflectiveActionException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ReflectiveActionException.java
index ae915df..4deb582 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/ReflectiveActionException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/ReflectiveActionException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/RepositoryException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/RepositoryException.java
similarity index 96%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/RepositoryException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/RepositoryException.java
index 158424e..d873279 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/RepositoryException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/RepositoryException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.UnrecoverableException;
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/UnexpectedCallException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnexpectedCallException.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/UnexpectedCallException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnexpectedCallException.java
index 11f798d..d0c34e3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/UnexpectedCallException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnexpectedCallException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/exceptions/UnknownTypeException.java b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnknownTypeException.java
similarity index 95%
rename from api/applib/src/main/java/org/apache/isis/applib/exceptions/UnknownTypeException.java
rename to api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnknownTypeException.java
index 03d4ad9..0f3c30a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/exceptions/UnknownTypeException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/exceptions/unrecoverable/UnknownTypeException.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.exceptions;
+package org.apache.isis.applib.exceptions.unrecoverable;
 
 import org.apache.isis.applib.UnrecoverableException;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/DisabledException.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/DisabledException.java
index ccb3d75..b4a3975 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/DisabledException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/DisabledException.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.applib.services.wrapper;
 
-import org.apache.isis.applib.exceptions.InteractionException;
+import org.apache.isis.applib.exceptions.recoverable.InteractionException;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
 
@@ -27,7 +27,6 @@ import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
  * Superclass of exceptions which indicate an attempt to interact with a class
  * member that is disabled.
  * 
- * 
  * @since 1.x {@index}
  */
 public class DisabledException extends InteractionException {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/HiddenException.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/HiddenException.java
index aff0988..a83ef71 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/HiddenException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/HiddenException.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.applib.services.wrapper;
 
-import org.apache.isis.applib.exceptions.InteractionException;
+import org.apache.isis.applib.exceptions.recoverable.InteractionException;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InvalidException.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InvalidException.java
index d78b435..b0453d0 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InvalidException.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/InvalidException.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.applib.services.wrapper;
 
-import org.apache.isis.applib.exceptions.InteractionException;
+import org.apache.isis.applib.exceptions.recoverable.InteractionException;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
 
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 874ba5b..88f9b1f 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.applib.services.wrapper;
 
 import java.util.List;
 
-import org.apache.isis.applib.exceptions.InteractionException;
+import org.apache.isis.applib.exceptions.recoverable.InteractionException;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.wrapper.control.AsyncControl;
 import org.apache.isis.applib.services.wrapper.control.SyncControl;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
index 3028aa1..418fada 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/_testing/ServiceInjectorLegacy.java
@@ -33,7 +33,7 @@ import javax.inject.Inject;
 import org.springframework.beans.factory.InjectionPoint;
 import org.springframework.core.MethodParameter;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal._Constants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ThrowableExtensions.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ThrowableExtensions.java
index 7490470..6110e70 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ThrowableExtensions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/commons/ThrowableExtensions.java
@@ -24,8 +24,8 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.function.Consumer;
 
 import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.exceptions.MetaModelException;
-import org.apache.isis.applib.exceptions.ReflectiveActionException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.ReflectiveActionException;
 
 public final class ThrowableExtensions {
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
index 9384d26..dbffbc2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
@@ -32,7 +32,7 @@ import java.util.function.Consumer;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.reflection._Annotations;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
index d666e6d..3695a81 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.actions.validate.method;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.ActionSupport;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
index 40fc9ab..fb72ac0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.metamodel.facets.object.callbacks;
 
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacetMulti;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
index 2620d35..5cdb5e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/EnumValueSemanticsProvider.java
@@ -24,7 +24,7 @@ import java.util.Map;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.util.Enums;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
index 20bf8de..716c9e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/parser/ParseableFacetUsingParser.java
@@ -24,7 +24,7 @@ import java.util.IllegalFormatException;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.adapters.ParsingException;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 806893d..e337b61 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -27,8 +27,8 @@ import org.apache.isis.applib.adapters.DefaultsProvider;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
-import org.apache.isis.applib.exceptions.InvalidEntryException;
-import org.apache.isis.applib.exceptions.UnknownTypeException;
+import org.apache.isis.applib.exceptions.recoverable.InvalidEntryException;
+import org.apache.isis.applib.exceptions.unrecoverable.UnknownTypeException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index a0e16f6..730f3fd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.autocomplete.method;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
index 23bb1c0..80ffeaa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/method/ActionChoicesFacetViaMethod.java
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.collections.CanVector;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
index 20c59b6..33521ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.choices.methodnum;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
index 6392df9..45b6cb9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.defaults.methodnum;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
index e18f82b..7712460 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.disable.method;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
index 52027a9..a19a6f8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.hide.method;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
index baa639a..20807c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethodFactory.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.param.validate.method;
 
 import java.util.EnumSet;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.MethodLiteralConstants;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
index 33c19b1..fac2b1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
@@ -24,7 +24,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.UnknownTypeException;
+import org.apache.isis.applib.exceptions.unrecoverable.UnknownTypeException;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
index d0805fc..78332b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTemporal.java
@@ -31,7 +31,7 @@ import java.util.StringTokenizer;
 import java.util.TimeZone;
 
 import org.apache.isis.applib.adapters.EncodingException;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
index 1b2cab8..e46dd9f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
@@ -28,7 +28,7 @@ import java.util.Map;
 import org.apache.isis.applib.UnrecoverableException;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
index ff67d50..a5e4039 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanValueSemanticsProviderAbstract.java
index 866015e..3fce3a2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/booleans/BooleanValueSemanticsProviderAbstract.java
@@ -20,7 +20,7 @@
 package org.apache.isis.core.metamodel.facets.value.booleans;
 
 import org.apache.isis.applib.UnrecoverableException;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
index 7d83be7..d38b2f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharValueSemanticsProviderAbstract.java
index 10dc419..e87d8ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/chars/CharValueSemanticsProviderAbstract.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.metamodel.facets.value.chars;
 
 import java.text.DecimalFormat;
 
-import org.apache.isis.applib.exceptions.InvalidEntryException;
+import org.apache.isis.applib.exceptions.recoverable.InvalidEntryException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateUtil.java
index 08bbabd..5aefc16 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateUtil.java
@@ -26,7 +26,7 @@ import java.util.StringTokenizer;
 import org.joda.time.LocalDate;
 import org.joda.time.format.DateTimeFormatter;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.facets.value.JodaFunctions;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeUtil.java
index fffa003..6f6a5b3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeUtil.java
@@ -26,7 +26,7 @@ import java.util.StringTokenizer;
 import org.joda.time.LocalDateTime;
 import org.joda.time.format.DateTimeFormatter;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.facets.value.JodaFunctions;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
index de7627c..75c9277 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/doubles/DoubleValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
index d8e7572..5bac58a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/floats/FloatValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
index b1b2ffc..b02aaaa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/image/ImageValueSemanticsProviderAbstract.java
@@ -20,7 +20,7 @@
 package org.apache.isis.core.metamodel.facets.value.image;
 
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.UnexpectedCallException;
+import org.apache.isis.applib.exceptions.unrecoverable.UnexpectedCallException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderAndFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
index 0963b72..b10e83f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
index 6ed504f..b469996 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/longs/LongValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
index 3cb9977..a79408a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/shortint/ShortValueSemanticsProviderAbstract.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
index f6030e6..79b0553 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/temporal/TemporalValueSemanticsProviderAbstract.java
@@ -33,7 +33,7 @@ import java.util.stream.Stream;
 import javax.annotation.Nullable;
 
 import org.apache.isis.applib.adapters.EncodingException;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Maps;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
index e14252a..7753cf4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timestampsql/JavaSqlTimeStampValueSemanticsProvider.java
@@ -30,7 +30,7 @@ import java.util.TimeZone;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.InvalidEntryException;
+import org.apache.isis.applib.exceptions.recoverable.InvalidEntryException;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 58fee7a..36749bc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -34,7 +34,7 @@ import org.apache.isis.applib.UnrecoverableException;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.reflection._Annotations;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MemberSortingUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MemberSortingUtils.java
index ef84acf..c12e734 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MemberSortingUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/MemberSortingUtils.java
@@ -20,7 +20,7 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
 
-import org.apache.isis.applib.exceptions.UnknownTypeException;
+import org.apache.isis.applib.exceptions.unrecoverable.UnknownTypeException;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.layout.DeweyOrderSet;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
index 6b60d7e..34f9105 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionDefault.java
@@ -28,7 +28,7 @@ import java.util.function.Predicate;
 import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.collections.CanVector;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index f0d75bb..3e14d1a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 import java.util.ArrayList;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index 462b53f..096f9a2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -28,7 +28,7 @@ import java.util.Set;
 
 import org.jmock.Expectations;
 
-import org.apache.isis.applib.exceptions.MetaModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
index 34fa424..cb1c109 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.adapters.ParsingException;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
index eaf9b8c..adf3035 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
@@ -27,7 +27,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
index 3bd31a6..f458a8a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
@@ -27,7 +27,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BooleanValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BooleanValueSemanticsProviderTest.java
index 1f8f973..74c3aad 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BooleanValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BooleanValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facets.value.booleans.BooleanValueSemanticsProviderAbstract;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ByteValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ByteValueSemanticsProviderTest.java
index 697bc58..aa2edff 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ByteValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ByteValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
index 0184d57..3c6b6bd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/CharacterValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.InvalidEntryException;
+import org.apache.isis.applib.exceptions.recoverable.InvalidEntryException;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facets.value.chars.CharValueSemanticsProviderAbstract;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
index c5f56df..a932e22 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
index da46e7a..08d4d16 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/FloatValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/IntValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/IntValueSemanticsProviderTest.java
index 78109b5..0b02214 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/IntValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/IntValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
index 76f8b60..722c9cc 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
@@ -31,7 +31,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
index 2a0fb32..7c5d57a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
@@ -31,7 +31,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/LongValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/LongValueSemanticsProviderTest.java
index fda84e8..9b94271 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/LongValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/LongValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ShortValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ShortValueSemanticsProviderTest.java
index 1333928..881ec0b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ShortValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ShortValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
index 8ea4d47..215c23e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/bookmarks/BookmarkServiceDefault.java
@@ -31,7 +31,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.ObjectNotFoundException;
+import org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
 import org.apache.isis.applib.graph.tree.TreeState;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.bookmark.BookmarkHolder;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
index 55640c8..06dc21a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
@@ -36,8 +36,8 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Repository;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.PersistFailedException;
-import org.apache.isis.applib.exceptions.RepositoryException;
+import org.apache.isis.applib.exceptions.unrecoverable.PersistFailedException;
+import org.apache.isis.applib.exceptions.unrecoverable.RepositoryException;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.query.QueryRange;
 import org.apache.isis.applib.services.factory.FactoryService;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index 820a867..ca4c6a1 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -26,7 +26,7 @@ import java.util.function.Supplier;
 import java.util.stream.Stream;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.exceptions.InteractionException;
+import org.apache.isis.applib.exceptions.recoverable.InteractionException;
 import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.HiddenException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AuthenticationManager.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AuthenticationManager.java
index 3488e76..12d7897 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AuthenticationManager.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/manager/AuthenticationManager.java
@@ -32,7 +32,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.NoAuthenticatorException;
+import org.apache.isis.applib.exceptions.unrecoverable.NoAuthenticatorException;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Timing;
diff --git a/core/security/src/test/java/org/apache/isis/security/authentication/standard/AuthenticationManager_authenticators_Test.java b/core/security/src/test/java/org/apache/isis/security/authentication/standard/AuthenticationManager_authenticators_Test.java
index 19fb85f..bbdedac 100644
--- a/core/security/src/test/java/org/apache/isis/security/authentication/standard/AuthenticationManager_authenticators_Test.java
+++ b/core/security/src/test/java/org/apache/isis/security/authentication/standard/AuthenticationManager_authenticators_Test.java
@@ -27,7 +27,7 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.sameInstance;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-import org.apache.isis.applib.exceptions.NoAuthenticatorException;
+import org.apache.isis.applib.exceptions.unrecoverable.NoAuthenticatorException;
 import org.apache.isis.core.security.authentication.AuthenticationRequestPassword;
 import org.apache.isis.core.security.authentication.manager.AuthenticationManager;
 import org.apache.isis.core.security.authentication.standard.RandomCodeGeneratorDefault;
diff --git a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/color/ColorValueSemanticsProvider.java b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/color/ColorValueSemanticsProvider.java
index ab99737..f860962 100644
--- a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/color/ColorValueSemanticsProvider.java
+++ b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/color/ColorValueSemanticsProvider.java
@@ -23,7 +23,7 @@ import java.text.DecimalFormat;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.legacy.applib.value.Color;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
index 4d99b7c..ce8a999 100644
--- a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
+++ b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.legacy.applib.value.Money;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
index ad54acd..6179457 100644
--- a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
+++ b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/percentage/PercentageValueSemanticsProvider.java
@@ -25,7 +25,7 @@ import java.text.ParseException;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.legacy.applib.value.Percentage;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
diff --git a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/ColorValueSemanticsProviderTest.java b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/ColorValueSemanticsProviderTest.java
index d2fb075..9fb9b61 100644
--- a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/ColorValueSemanticsProviderTest.java
+++ b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/ColorValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.legacy.applib.value.Color;
diff --git a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/MoneyValueSemanticsProviderTest.java b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
index 4ed6433..833d103 100644
--- a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
+++ b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
@@ -27,7 +27,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/PolishMoneyValueSemanticsProviderTest.java b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/PolishMoneyValueSemanticsProviderTest.java
index a88cc0a..ff935f3 100644
--- a/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/PolishMoneyValueSemanticsProviderTest.java
+++ b/legacy/extensions/core/metamodel/src/test/java/org/apache/isis/legacy/metamodel/facets/value/PolishMoneyValueSemanticsProviderTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.metamodel.context.MetaModelContextAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
index 90cc87e..acd3c2a 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/jdosupport/JdoSupportServiceDefault.java
@@ -45,7 +45,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.UnrecoverableException;
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.ObjectPersistenceException;
+import org.apache.isis.applib.exceptions.unrecoverable.ObjectPersistenceException;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 299fcb0..6a38835 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -29,7 +29,7 @@ import javax.jdo.PersistenceManager;
 import org.datanucleus.enhancement.Persistable;
 import org.datanucleus.store.rdbms.RDBMSPropertyNames;
 
-import org.apache.isis.applib.exceptions.ObjectNotFoundException;
+import org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
 import org.apache.isis.applib.query.AllInstancesQuery;
 import org.apache.isis.applib.query.NamedQuery;
 import org.apache.isis.applib.query.Query;
diff --git a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
index c5a443b..7c5cec6 100644
--- a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
+++ b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain.java
@@ -28,7 +28,7 @@ import org.springframework.test.context.TestPropertySource;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.environment.IsisSystemEnvironment;
 import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
diff --git a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java
index f5508d9..fe170c7 100644
--- a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java
+++ b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingBadDomain_noActionEnforced.java
@@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.config.environment.IsisSystemEnvironment;
 import org.apache.isis.core.config.metamodel.specloader.IntrospectionMode;
diff --git a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/validate/DomainModelValidator.java b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/validate/DomainModelValidator.java
index a42afbe..c5f2757 100644
--- a/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/validate/DomainModelValidator.java
+++ b/testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/validate/DomainModelValidator.java
@@ -31,7 +31,7 @@ import javax.inject.Inject;
 import org.junit.jupiter.api.Assertions;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.exceptions.DomainModelException;
+import org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.core.config.environment.IsisSystemEnvironment;
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
index 5e7ab61..a920b1c 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
@@ -37,7 +37,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
diff --git a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
index 68e2083..219fc56 100644
--- a/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
+++ b/viewers/restfulobjects/rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoderTest_asAdapter.java
@@ -48,7 +48,7 @@ import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.applib.exceptions.TextEntryParseException;
+import org.apache.isis.applib.exceptions.recoverable.TextEntryParseException;
 import org.apache.isis.core.internaltestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/mappers/ExceptionMapperForObjectNotFound.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/mappers/ExceptionMapperForObjectNotFound.java
index e879a17..0624cfe 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/mappers/ExceptionMapperForObjectNotFound.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/mappers/ExceptionMapperForObjectNotFound.java
@@ -26,7 +26,7 @@ import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.exceptions.ObjectNotFoundException;
+import org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
 import org.apache.isis.viewer.restfulobjects.applib.RestfulResponse;
 
 @Component
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
index c36f40a..709a779 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
@@ -42,7 +42,7 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.isis.applib.exceptions.ObjectNotFoundException;
+import org.apache.isis.applib.exceptions.unrecoverable.ObjectNotFoundException;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;