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 2018/09/17 12:53:15 UTC

[isis] 03/03: ISIS-1976: further remove guava

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

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

commit 796c9e122829abdf04213c15a6ed8bcc917ab22f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 17 13:42:56 2018 +0200

    ISIS-1976: further remove guava
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/commons/internal/base/_Strings.java       | 25 +++++++++
 .../isis/commons/internal/collections/_Lists.java  | 20 +++++--
 .../apache/isis/tool/mavenplugin/IsisMojoXsd.java  |  4 +-
 .../isis/tool/mavenplugin/util/Xpp3Doms.java       |  2 +-
 core/metamodel/pom.xml                             | 13 +++++
 .../apache/isis/core/commons/lang/ClassUtil.java   |  1 -
 .../isis/core/commons/lang/ListExtensions.java     | 10 ++--
 .../isis/core/commons/lang/StringExtensions.java   | 10 ++--
 .../core/metamodel/adapter/oid/OidMarshaller.java  |  8 +--
 .../core/metamodel/facets/CollectionUtils.java     |  2 -
 .../action/ActionAnnotationFacetFactory.java       |  7 +--
 ...ctionInvocationFacetForDomainEventAbstract.java |  5 +-
 .../CssClassFaFacetForActionLayoutAnnotation.java  |  5 +-
 .../layout/CssClassFaFacetForActionXml.java        |  5 +-
 .../CssClassFacetForActionLayoutAnnotation.java    |  7 +--
 .../actions/layout/CssClassFacetForActionXml.java  |  5 +-
 .../DescribedAsFacetForActionLayoutAnnotation.java |  7 +--
 .../layout/DescribedAsFacetForActionXml.java       |  5 +-
 .../NamedFacetForActionLayoutAnnotation.java       |  7 +--
 .../actions/layout/NamedFacetForActionXml.java     |  5 +-
 .../facets/all/i18n/TranslationFacetFactory.java   |  5 +-
 .../CollectionAccessorFacetViaAccessor.java        |  2 +-
 .../javautilcollection/JavaCollectionFacet.java    |  7 +--
 ...CssClassFacetForCollectionLayoutAnnotation.java |  7 +--
 .../layout/CssClassFacetForCollectionXml.java      |  5 +-
 ...aultViewFacetForCollectionLayoutAnnotation.java |  7 +--
 .../layout/DefaultViewFacetForCollectionXml.java   |  5 +-
 ...cribedAsFacetForCollectionLayoutAnnotation.java |  7 +--
 .../layout/DescribedAsFacetForCollectionXml.java   |  5 +-
 .../NamedFacetForCollectionLayoutAnnotation.java   |  5 +-
 .../layout/NamedFacetForCollectionXml.java         |  5 +-
 ...assFacetOnActionFromConfiguredRegexFactory.java |  5 +-
 .../cssclassfa/CssClassFaFacetAbstract.java        |  2 +-
 .../annotprop/CssClassFaFacetOnMemberFactory.java  |  5 +-
 .../disabled/DisabledFacetAbstractImpl.java        |  5 +-
 .../HiddenFacetFromLayoutPropertiesAbstract.java   |  5 +-
 .../members/order/MemberOrderFacetAbstract.java    |  7 +--
 ...ssClassFaFacetForDomainObjectLayoutFactory.java |  5 +-
 .../CssClassFaFacetForViewModelLayoutFactory.java  |  5 +-
 .../object/defaults/DefaultsProviderUtil.java      |  5 +-
 .../annotcfg/DefaultedFacetAnnotation.java         |  5 +-
 ...tedFacetAnnotationElseConfigurationFactory.java |  5 +-
 .../DomainObjectAnnotationFacetFactory.java        |  3 +-
 .../ImmutableFacetForDomainObjectAnnotation.java   |  5 +-
 .../editing/ImmutableFacetFromConfiguration.java   |  5 +-
 ...ObjectSpecIdFacetForDomainObjectAnnotation.java |  7 +--
 ...cIdFacetForJdoPersistenceCapableAnnotation.java |  5 +-
 ...lassFaFacetForDomainObjectLayoutAnnotation.java |  5 +-
 .../CssClassFaFacetForDomainObjectXml.java         |  5 +-
 ...ssClassFaFacetForViewModelLayoutAnnotation.java |  5 +-
 ...sClassFacetForDomainObjectLayoutAnnotation.java |  7 +--
 .../CssClassFacetForDomainObjectXml.java           |  5 +-
 .../CssClassFacetForViewModelLayoutAnnotation.java |  7 +--
 ...ibedAsFacetForDomainObjectLayoutAnnotation.java |  7 +--
 .../DescribedAsFacetForDomainObjectXml.java        |  5 +-
 ...scribedAsFacetForViewModelLayoutAnnotation.java |  7 +--
 .../NamedFacetForDomainObjectLayoutAnnotation.java |  7 +--
 .../NamedFacetForDomainObjectXml.java              |  5 +-
 .../NamedFacetForViewModelLayoutAnnotation.java    |  7 +--
 .../PluralFacetForDomainObjectXml.java             |  5 +-
 .../PluralFacetForViewModelLayoutAnnotation.java   |  7 +--
 ...NamedFacetForDomainServiceLayoutAnnotation.java |  7 +--
 .../object/encodeable/EncoderDecoderUtil.java      |  5 +-
 .../facets/object/parseable/ParserUtil.java        |  5 +-
 .../recreatable/RecreatableObjectFacetFactory.java |  3 +-
 .../annotation/TitleAnnotationFacetFactory.java    |  2 +-
 .../annotation/TitleFacetViaTitleAnnotation.java   | 11 ++--
 .../value/annotcfg/ValueFacetAnnotation.java       |  5 +-
 ...ValueFacetAnnotationOrConfigurationFactory.java |  5 +-
 .../value/vsp/ValueSemanticsProviderUtil.java      |  5 +-
 .../ActionParameterAutoCompleteFacetViaMethod.java |  2 +-
 .../method/ActionChoicesFacetViaMethod.java        |  2 +-
 .../ActionParameterChoicesFacetViaMethod.java      |  2 +-
 .../CssClassFacetForParameterLayoutAnnotation.java |  7 +--
 ...scribedAsFacetForParameterLayoutAnnotation.java |  7 +--
 .../NamedFacetForParameterLayoutAnnotation.java    |  5 +-
 .../FileAcceptFacetForParameterAnnotation.java     |  7 +--
 .../regex/RegExFacetForParameterAnnotation.java    |  5 +-
 .../RegExFacetForPatternAnnotationOnParameter.java |  5 +-
 .../method/PropertyAutoCompleteFacetMethod.java    |  2 +-
 .../FileAcceptFacetForPropertyAnnotation.java      |  7 +--
 ...tySetterOrClearFacetForDomainEventAbstract.java |  5 +-
 .../RegExFacetForPatternAnnotationOnProperty.java  |  5 +-
 .../regex/RegExFacetForPropertyAnnotation.java     |  5 +-
 .../CssClassFacetForPropertyLayoutAnnotation.java  |  7 +--
 .../CssClassFacetForPropertyXml.java               |  5 +-
 ...escribedAsFacetForPropertyLayoutAnnotation.java |  7 +--
 .../DescribedAsFacetForPropertyXml.java            |  5 +-
 .../NamedFacetForPropertyLayoutAnnotation.java     |  5 +-
 .../propertylayout/NamedFacetForPropertyXml.java   |  5 +-
 .../DateAndTimeValueSemanticsProviderAbstract.java |  1 -
 .../ValueSemanticsProviderAbstractTemporal.java    |  3 +-
 .../date/DateValueSemanticsProviderAbstract.java   |  1 -
 .../Jdk8LocalDateValueSemanticsProvider.java       |  3 +-
 .../value/datejodalocal/JodaLocalDateUtil.java     |  2 +-
 .../JodaLocalDateValueSemanticsProvider.java       |  3 +-
 .../Jdk8LocalDateTimeValueSemanticsProvider.java   |  3 +-
 ...fsetDateTimeValueSemanticsProviderAbstract.java |  1 -
 ...JodaDateTimeValueSemanticsProviderAbstract.java |  1 -
 .../datetimejodalocal/JodaLocalDateTimeUtil.java   |  2 +-
 .../JodaLocalDateTimeValueSemanticsProvider.java   |  3 +-
 .../timesql/JavaSqlTimeValueSemanticsProvider.java |  3 +-
 .../isis/core/metamodel/layout/DeweyOrderSet.java  |  3 +-
 ...onParameterDefaultsAndChoicesPostProcessor.java | 14 ++---
 .../isis/core/metamodel/services/ServiceUtil.java  |  5 +-
 .../core/metamodel/services/ServicesInjector.java  |  2 +-
 .../services/appfeat/ApplicationFeatureId.java     |  4 +-
 .../ApplicationFeatureRepositoryDefault.java       |  3 +-
 .../bookmarks/BookmarkServiceInternalDefault.java  |  3 +-
 .../services/grid/GridLoaderServiceDefault.java    |  2 +-
 .../services/grid/GridSystemServiceAbstract.java   | 15 +++--
 .../grid/bootstrap3/GridSystemServiceBS3.java      | 48 ++++------------
 .../services/metamodel/DomainMemberDefault.java    |  6 +-
 .../services/swagger/internal/Generation.java      |  8 +--
 .../swagger/internal/ValuePropertyFactory.java     |  5 +-
 .../apache/isis/core/metamodel/spec/Instance.java  |  4 +-
 .../core/metamodel/spec/feature/ObjectAction.java  | 11 ++--
 .../specloader/InjectorMethodEvaluatorDefault.java |  3 +-
 .../metamodel/specloader/ServiceInitializer.java   |  3 +-
 .../specloader/SpecificationCacheDefault.java      |  1 -
 .../metamodel/specloader/SpecificationLoader.java  |  5 +-
 .../classsubstitutor/ClassSubstitutor.java         |  3 +-
 .../specloader/facetprocessor/FacetProcessor.java  |  3 +-
 .../specloader/specimpl/ObjectActionDefault.java   |  7 +--
 .../specloader/specimpl/ObjectActionMixedIn.java   |  5 +-
 .../specimpl/OneToManyAssociationMixedIn.java      |  5 +-
 .../specimpl/OneToOneAssociationMixedIn.java       |  5 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |  3 +-
 .../MetaModelValidatorToCheckModuleExtent.java     |  2 +-
 ...taModelValidatorToCheckObjectSpecIdsUnique.java |  2 +-
 .../standard/AuthenticationManagerStandard.java    |  2 +-
 .../isis/core/runtime/snapshot/XmlSnapshot.java    |  3 +-
 .../JdoDiscriminatorAnnotationFacetFactory.java    |  5 +-
 ...doPersistenceCapableAnnotationFacetFactory.java |  7 +--
 ...ndatoryFromJdoColumnAnnotationFacetFactory.java |  5 +-
 .../TitleFacetViaTitleAnnotationTest.java          |  4 +-
 .../reflections/ReflectManifest.java               |  4 +-
 .../services/jdosupport/IsisJdoSupportDN4.java     | 22 +++++---
 .../CreateSchemaObjectFromClassMetadata4.java      |  8 +--
 ...sistenceQueryFindUsingApplibQueryProcessor.java |  6 +-
 .../queries/PersistenceQueryProcessorAbstract.java |  4 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |  4 +-
 .../services/jdosupport/IsisJdoSupportDN5.java     | 11 ++--
 .../CreateSchemaObjectFromClassMetadata.java       |  8 +--
 ...sistenceQueryFindUsingApplibQueryProcessor.java |  6 +-
 .../queries/PersistenceQueryProcessorAbstract.java |  4 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |  4 +-
 .../apache/isis/security/shiro/IsisLdapRealm.java  | 24 ++++----
 .../shiro/ShiroAuthenticatorOrAuthorizor.java      |  4 +-
 .../ShiroAuthenticationManagerInstaller.java       |  5 +-
 .../shiro/authorization/IsisPermission.java        |  4 +-
 .../permrolemapper/PermissionToRoleMapper.java     |  4 +-
 .../PermissionToRoleMapperFromIni.java             | 30 +++++-----
 .../PermissionToRoleMapperFromString.java          |  9 ++-
 .../org/apache/isis/security/shiro/util/Util.java  | 50 +++++++++--------
 .../PermissionToRoleMapperFromIniTest.java         | 14 ++---
 .../PermissionToRoleMapperFromStringTest.java      | 13 +++--
 .../isis/security/shiro/util/UtilTest_parse.java   | 40 ++++++-------
 .../fixtures/FixturesInstallerDelegate.java        |  9 ++-
 .../HeadlessWithBootstrappingAbstract.java         | 17 +++---
 .../isis/core/runtime/headless/IsisSystem.java     |  9 +--
 .../runtime/headless/IsisSystemBootstrapper.java   | 14 +++--
 .../core/runtime/headless/logging/LogConfig.java   |  4 +-
 .../core/runtime/headless/logging/LogStream.java   |  6 +-
 .../runner/opts/OptionHandlerAppManifest.java      |  6 +-
 .../runner/opts/OptionHandlerConfiguration.java    |  2 +-
 .../runner/opts/OptionHandlerDeploymentType.java   |  6 +-
 .../runtime/runner/opts/OptionHandlerFixture.java  |  7 ++-
 .../runner/opts/OptionHandlerFixtureAbstract.java  |  1 +
 ...ptionHandlerFixtureFromEnvironmentVariable.java |  1 +
 .../runner/opts/OptionHandlerInitParameters.java   |  4 ++
 .../runner/opts/OptionHandlerSystemProperties.java |  3 +
 .../core/runtime/services/ServiceInstantiator.java | 11 ++--
 .../services/ServicesInstallerFromAnnotation.java  | 42 +++++++-------
 .../runtime/services/ServicesInstallerUtils.java   | 21 +++----
 .../background/BackgroundCommandExecution.java     | 10 ++--
 .../background/CommandExecutorServiceDefault.java  | 11 ++--
 .../changes/ChangedObjectsServiceInternal.java     |  8 +--
 .../runtime/services/changes/PreAndPostValues.java |  4 +-
 .../services/command/CommandServiceDefault.java    |  2 -
 .../services/email/EmailServiceDefault.java        |  7 +--
 .../eventbus/EventBusImplementationAbstract.java   |  1 +
 .../services/eventbus/EventBusServiceDefault.java  |  7 +--
 .../isis/core/runtime/services/i18n/po/Block.java  |  5 +-
 .../core/runtime/services/i18n/po/PoReader.java    | 16 +++---
 .../core/runtime/services/i18n/po/PoWriter.java    |  5 +-
 .../menubars/bootstrap3/MenuBarsServiceBS3.java    | 65 ++++++++++------------
 .../services/publish/PublishedObjectsDefault.java  | 15 ++---
 .../userreg/EmailNotificationServiceDefault.java   |  6 +-
 .../AbstractIsisSessionTemplate.java               |  2 +-
 .../core/runtime/snapshot/XmlSnapshotBuilder.java  |  5 +-
 .../isis/core/runtime/system/DeploymentType.java   |  7 +--
 .../isis/core/runtime/system/SystemConstants.java  |  1 -
 .../ObjectAdapterContext_DependencyInjection.java  |  5 --
 ...ObjectAdapterContext_LifecycleEventSupport.java | 13 -----
 .../ObjectAdapterContext_NewIdentifier.java        |  2 -
 ...ObjectAdapterContext_ObjectAdapterProvider.java |  4 +-
 .../ObjectAdapterContext_ObjectCreation.java       |  5 --
 .../ObjectAdapterContext_ServiceLookup.java        |  1 -
 .../adaptermanager/ObjectAdapterLegacy.java        |  5 +-
 .../runtime/system/session/IsisSessionFactory.java | 10 ++--
 .../system/transaction/IsisTransaction.java        |  9 ++-
 .../IsisComponentProvider.java                     | 34 +++++------
 .../IsisComponentProviderUsingInstallers.java      |  9 ++-
 .../apache/isis/core/webapp/IsisSessionFilter.java | 29 +++++-----
 .../webapp/jee/IsisCDIBeanScanInterceptor.java     |  5 +-
 .../isis/core/webapp/modules/WebModule_Wicket.java |  5 +-
 .../objectstore/jdo/service/RegisterEntities.java  |  4 +-
 .../runtime/services/DeweyOrderComparatorTest.java |  4 +-
 .../isis/core/runtime/services/DeweyOrderUtil.java |  0
 .../core/runtime/services/DeweyOrderUtilTest.java  |  4 +-
 .../runtime/services/ServiceInstantiatorTest.java  | 18 +++---
 .../email/EmailServiceDefaultTest_actually.java    |  6 +-
 .../runtime/services/i18n/po/PoReaderTest.java     | 12 ++--
 .../system/ObjectActionLayoutXmlDefaultTest.java   |  5 +-
 .../system/OneToManyAssociationDefaultTest.java    | 11 ++--
 .../jaxbadapters/JodaDateTimeStringAdapter.java    |  4 +-
 .../jaxbadapters/JodaLocalDateStringAdapter.java   |  4 +-
 .../JodaLocalDateTimeStringAdapter.java            |  4 +-
 .../jaxbadapters/JodaLocalTimeStringAdapter.java   |  4 +-
 .../BypassAuthenticationManagerInstaller.java      |  5 +-
 .../core/specsupport/scenarios/InMemoryDB.java     |  4 +-
 .../core/specsupport/specs/CukeGlueAbstract.java   |  8 +--
 .../viewer/restfulobjects/applib/util/Parser.java  | 24 +++-----
 .../applib/util/UrlEncodingUtils.java              |  2 +-
 .../restfulobjects/rendering/LinkFollowSpecs.java  |  6 +-
 .../rendering/ReprRendererAbstract.java            |  6 +-
 .../rendering/domainobjects/JsonValueEncoder.java  | 17 +++---
 .../domainobjects/ObjectActionReprRenderer.java    |  6 +-
 .../ObjectCollectionReprRenderer.java              |  4 +-
 .../domainobjects/ObjectPropertyReprRenderer.java  |  4 +-
 .../AbstractTypeFeatureReprRenderer.java           |  4 +-
 .../domaintypes/DomainTypeReprRenderer.java        |  4 +-
 .../RepresentationServiceContentNegotiator.java    |  2 +-
 .../acceptheader/AcceptHeaderServiceForRest.java   | 12 ++--
 .../rendering/util/FollowSpecUtil.java             | 25 +++------
 .../restfulobjects/server/ResourceContext.java     |  4 +-
 .../AuthenticationSessionStrategyHeader.java       |  8 +--
 .../server/mappers/entity/ExceptionDetail.java     |  4 +-
 .../resources/DomainObjectResourceServerside.java  |  4 +-
 .../resources/DomainServiceResourceServerside.java |  4 +-
 .../resources/DomainTypeResourceServerside.java    |  4 +-
 .../server/resources/ObjectActionArgHelper.java    |  6 +-
 .../viewer/imagecache/ImageResourceCacheKey.java   |  4 +-
 .../wicket/ConverterForObjectAdapterMemento.java   |  4 +-
 .../integration/wicket/LocalizerForIsis.java       |  4 +-
 .../integration/wicket/WebRequestCycleForIsis.java |  4 +-
 .../ComponentFactoryRegistryDefault.java           |  6 +-
 .../services/TranslationsResolverWicket.java       |  4 +-
 .../viewer/wicket/model/links/LinkAndLabel.java    |  4 +-
 .../wicket/model/links/ListOfLinksModel.java       |  4 +-
 .../model/mementos/ObjectAdapterMemento.java       |  6 +-
 .../wicket/model/mementos/PageParameterNames.java  | 11 +---
 .../viewer/wicket/model/models/ActionModel.java    | 29 +++++-----
 .../wicket/model/models/BookmarkTreeNode.java      | 14 ++---
 .../wicket/model/models/BookmarkedPagesModel.java  | 12 ++--
 .../wicket/model/models/EntityCollectionModel.java |  2 +-
 .../model/models/HintPageParameterSerializer.java  |  4 +-
 .../viewer/wicket/model/models/ScalarModel.java    |  4 +-
 .../wicket/model/models/ServiceActionsModel.java   | 14 ++---
 .../actionresponse/ActionResultResponseType.java   |  5 +-
 .../ui/app/registry/ComponentFactoryRegistrar.java |  4 +-
 .../ui/components/about/JarManifestModel.java      | 10 ++--
 .../entityactions/AdditionalLinksPanel.java        |  4 +-
 .../actionmenu/entityactions/LinkAndLabelUtil.java | 17 ++----
 .../actionmenu/serviceactions/CssMenuItem.java     |  8 +--
 .../serviceactions/ServiceActionUtil.java          | 23 +++-----
 .../serviceactions/ServiceActionsPanel.java        | 24 ++++----
 .../serviceactions/TertiaryActionsPanel.java       |  4 +-
 .../ui/components/collection/CollectionPanel.java  |  4 +-
 .../collection/bulk/BulkActionsHelper.java         |  4 +-
 .../collection/bulk/BulkActionsLinkFactory.java    |  8 +--
 .../selector/CollectionSelectorHelper.java         |  6 +-
 .../CollectionContentsSortableDataProvider.java    |  4 +-
 .../columns/ObjectAdapterPropertyColumn.java       |  4 +-
 .../columns/ObjectAdapterToggleboxColumn.java      |  4 +-
 .../summary/CollectionContentsAsSummary.java       |  8 +--
 .../components/entity/fieldset/PropertyGroup.java  | 26 +++------
 .../selector/links/EntityLinksSelectorPanel.java   |  6 +-
 .../wicket/ui/components/layout/bs3/Util.java      |  4 +-
 .../wicket/ui/components/layout/bs3/col/Col.java   | 22 +++-----
 .../ui/components/scalars/ScalarPanelAbstract.java |  4 +-
 .../components/scalars/ScalarPanelAbstract2.java   | 12 ++--
 .../scalars/reference/ReferencePanel.java          |  6 +-
 .../ui/components/scalars/uuid/UuidConverter.java  |  4 +-
 .../valuechoices/ValueChoicesSelect2Panel.java     |  2 +-
 .../StandaloneCollectionPanel.java                 | 12 +---
 .../widgets/breadcrumbs/BreadcrumbModel.java       |  6 +-
 .../widgets/breadcrumbs/BreadcrumbPanel.java       |  6 +-
 .../widgets/buttons/ContainedButtonPanel.java      |  4 +-
 .../widgets/checkbox/ContainedToggleboxPanel.java  |  2 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    | 18 ++----
 .../select2/Select2BootstrapCssReference.java      |  5 +-
 .../widgets/select2/Select2JsReference.java        | 11 ++--
 .../ObjectAdapterMementoProviderAbstract.java      |  6 +-
 ...tAdapterMementoProviderForReferenceChoices.java | 16 +++---
 ...entoProviderForReferenceObjectAutoComplete.java | 19 +++----
 ...derForReferenceParamOrPropertyAutoComplete.java | 19 +++----
 ...bjectAdapterMementoProviderForValueChoices.java |  4 +-
 .../widgets/themepicker/ThemeChooser.java          |  4 +-
 .../viewer/wicket/ui/errors/ExceptionModel.java    |  8 +--
 .../viewer/wicket/ui/errors/JGrowlBehaviour.java   |  6 +-
 .../viewer/wicket/ui/pages/error/ErrorPage.java    | 14 +----
 .../wicket/ui/pages/mmverror/MmvErrorPage.java     |  4 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  6 +-
 .../isis/viewer/wicket/ui/panels/PanelUtil.java    |  4 +-
 .../wicket/ui/panels/PromptFormAbstract.java       |  4 +-
 .../viewer/wicket/ui/util/CssClassAppender.java    |  6 +-
 .../isis/viewer/wicket/ui/util/CssIdAppender.java  |  6 +-
 ...tAdapterMementoProviderForValueChoicesTest.java |  4 +-
 .../org/apache/isis/core/webserver/WebServer.java  |  6 +-
 .../AbstractCollectionInvocationHandler.java       |  6 +-
 .../handlers/DomainObjectInvocationHandler.java    |  6 +-
 .../simple/dom/impl/SimpleObjects_Test.java        |  4 +-
 .../simple/dom/impl/SimpleObjects_Test.java        |  4 +-
 315 files changed, 1043 insertions(+), 1291 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
index ea764f7..0e97a3e 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
@@ -103,6 +103,29 @@ public final class _Strings {
     // -- BASIC UNARY OPERATORS
 
     /**
+     * @param input
+     * @return null if the {@code input} is null or empty, the {@code input} otherwise 
+     */
+    public static @Nullable String emptyToNull(@Nullable String input) {
+        if(isEmpty(input)) {
+            return null;
+        }
+        return input;
+    }
+    
+    /**
+     * @param input
+     * @return the empty string if the {@code input} is null, the {@code input} otherwise 
+     */
+    public static String nullToEmpty(@Nullable String input) {
+        if(input==null) {
+            return "";
+        }
+        return input;
+    }
+    
+    
+    /**
      * Trims the input.
      * @param input
      * @return null if the {@code input} is null
@@ -401,4 +424,6 @@ public final class _Strings {
 
 
 
+
+
 }
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
index ebb5df0..de5fdea 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
@@ -29,7 +29,9 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 
@@ -165,17 +167,23 @@ public final class _Lists {
     }
 
     
-    // -- TRANSFORMATION
-
-    public static <T, R> List<R> transform(@Nullable List<T> input, Function<T, R> mapper) {
+    // -- TRANSFORMATIONS
+    
+    public static <T, R> List<R> transform(@Nullable Collection<T> input, Function<Stream<T>, Stream<R>> transformation) {
         if(input==null) {
             return Collections.emptyList();
         }
-        requires(mapper, "mapper");
-        return input.stream()
-                .map(mapper)
+        requires(transformation, "transformation");
+        return transformation.apply(_NullSafe.stream(input))
                 .collect(Collectors.toList());
     }
 
+    public static <T, R> List<R> map(@Nullable Collection<T> input, Function<T, R> mapper) {
+        return transform(input, stream->stream.map(mapper));
+    }
+
+    public static <T> List<T> filter(@Nullable Collection<T> input, Predicate<T> filter) {
+        return transform(input, stream->stream.filter(filter));
+    }
 
 }
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoXsd.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoXsd.java
index b59a619..1f72339 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoXsd.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoXsd.java
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.google.common.base.Charsets;
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import com.google.common.io.Files;
 
 import org.apache.maven.plugin.MojoFailureException;
@@ -144,7 +144,7 @@ public class IsisMojoXsd extends IsisMojoAbstract {
 
     String xsdDirNameFor(final String namespaceUri) {
         final String sanitized = sanitize(namespaceUri);
-        final String sanitizedElseUnnamed = Strings.isNullOrEmpty(sanitized) ? ("unnamed-" + (unnamed++)) : sanitized;
+        final String sanitizedElseUnnamed = _Strings.isNullOrEmpty(sanitized) ? ("unnamed-" + (unnamed++)) : sanitized;
         return sanitizedElseUnnamed;
     }
 
diff --git a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
index 13de11f..b1785fd 100644
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/util/Xpp3Doms.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.tool.mavenplugin.util;
 
-import com.google.common.base.Function;
+import java.util.function.Function;
 
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 2d4e5b1..be03a2e 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -94,6 +94,13 @@
         <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
+            <exclusions>
+<!--             	work in progress, ultimately we want to remove guava dependency -->            
+<!--             	<exclusion> -->
+<!--             		<groupId>com.google.guava</groupId> -->
+<!--             		<artifactId>guava</artifactId> -->
+<!--             	</exclusion> -->
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -104,6 +111,12 @@
         <dependency>
             <groupId>io.swagger</groupId>
             <artifactId>swagger-core</artifactId>
+            <exclusions>
+            	<exclusion>
+            		<groupId>com.google.guava</groupId>
+            		<artifactId>guava</artifactId>
+            	</exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
index 2f773b7..0470ccb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
@@ -25,7 +25,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.commons.internal.context._Context;
 
 public final class ClassUtil {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ListExtensions.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ListExtensions.java
index c1fa591..6739c62 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ListExtensions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ListExtensions.java
@@ -26,8 +26,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import com.google.common.collect.Collections2;
-
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 
 public final class ListExtensions {
@@ -104,9 +103,10 @@ public final class ListExtensions {
     }
 
     public static <T> Collection<T> filtered(final List<Object> extendee, final Class<T> type) {
-        return Collections2.transform(
-                Collections2.filter(extendee, ClassPredicates.isOfType(type)::test),
-                ClassFunctions.castTo(type)::apply);
+        return _NullSafe.stream(extendee)
+                .filter(ClassPredicates.isOfType(type))
+                .map(ClassFunctions.castTo(type))
+                .collect(Collectors.toList());
     }
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
index a6354f2..f4530c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringExtensions.java
@@ -24,8 +24,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.util.Enums;
 import org.apache.isis.commons.internal.base._Strings;
 
@@ -138,7 +136,7 @@ public final class StringExtensions {
      * Simply forces first char to be lower case.
      */
     public static String asLowerFirst(final String extendee) {
-        if (Strings.isNullOrEmpty(extendee)) {
+        if (_Strings.isNullOrEmpty(extendee)) {
             return extendee;
         }
         if (extendee.length() == 1) {
@@ -292,13 +290,13 @@ public final class StringExtensions {
     }
 
     public static String combinePath(final String extendee, final String suffix) {
-        if (Strings.isNullOrEmpty(extendee) && Strings.isNullOrEmpty(suffix)) {
+        if (_Strings.isNullOrEmpty(extendee) && _Strings.isNullOrEmpty(suffix)) {
             return "";
         }
-        if (Strings.isNullOrEmpty(extendee)) {
+        if (_Strings.isNullOrEmpty(extendee)) {
             return suffix;
         }
-        if (Strings.isNullOrEmpty(suffix)) {
+        if (_Strings.isNullOrEmpty(suffix)) {
             return extendee;
         }
         if (extendee.endsWith("/") || suffix.startsWith("/")) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
index 161a7d2..6929993 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshaller.java
@@ -24,10 +24,10 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.oid.Oid.State;
 import org.apache.isis.core.metamodel.adapter.version.Version;
@@ -173,7 +173,7 @@ public final class OidMarshaller {
         if(aggregateOidPart != null) {
             final Iterable<String> tildaSplitIter = nestingSplitter.split(aggregateOidPart);
             for(String str: tildaSplitIter) {
-                if(Strings.isNullOrEmpty(str)) {
+                if(_Strings.isNullOrEmpty(str)) {
                     continue; // leading "~"
                 }
                 final Iterator<String> colonSplitIter = partsSplitter.split(str).iterator();
@@ -237,7 +237,7 @@ public final class OidMarshaller {
             return null;
         }
         final String val = matcher.group(group);
-        return Strings.emptyToNull(val);
+        return _Strings.emptyToNull(val);
     }
 
 
@@ -272,7 +272,7 @@ public final class OidMarshaller {
             return "";
         }
         final String versionUser = version.getUser();
-        return SEPARATOR_VERSION + version.getSequence() + SEPARATOR + Strings.nullToEmpty(versionUser) + SEPARATOR + nullToEmpty(version.getUtcTimestamp());
+        return SEPARATOR_VERSION + version.getSequence() + SEPARATOR + _Strings.nullToEmpty(versionUser) + SEPARATOR + nullToEmpty(version.getUtcTimestamp());
     }
 
     private static String nullToEmpty(Object obj) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
index 9d7e8e0..13f89c1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/CollectionUtils.java
@@ -35,8 +35,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.function.Function;
 
-import org.apache.isis.commons.internal.collections._Sets;
-
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.base._With;
 import org.apache.isis.commons.internal.collections._Arrays;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 00d6227..7dc8929 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -22,11 +22,10 @@ package org.apache.isis.core.metamodel.facets.actions.action;
 import java.lang.reflect.Method;
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.services.HasTransactionId;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Collections;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -205,7 +204,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract {
 
     void processCommand(final ProcessMethodContext processMethodContext) {
 
-        final Class<?> cls = processMethodContext.getCls();
+        //final Class<?> cls = processMethodContext.getCls();
         final Method method = processMethodContext.getMethod();
         final List<Action> actions = Annotations.getAnnotations(method, Action.class);
         final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
@@ -295,7 +294,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract {
         final Action action = actions.isEmpty() ? null : actions.get(0);
         if (action != null) {
             final String associateWith = action.associateWith();
-            if(!Strings.isNullOrEmpty(associateWith)) {
+            if(!_Strings.isNullOrEmpty(associateWith)) {
                 final String associateWithSequence = action.associateWithSequence();
                 FacetUtil.addFacet(
                         new MemberOrderFacetForActionAnnotation(associateWith, associateWithSequence, holder));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 4d37b72..3d90f48 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -33,8 +33,6 @@ import java.util.function.Consumer;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import com.google.common.base.Strings;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,6 +54,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.applib.services.xactn.TransactionState;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -365,7 +364,7 @@ implements ImperativeFacet {
     }
 
     private static String trim(String message, final int maxLen) {
-        if(!Strings.isNullOrEmpty(message)) {
+        if(!_Strings.isNullOrEmpty(message)) {
             message = message.substring(0, Math.min(message.length(), maxLen));
             if(message.length() == maxLen) {
                 message += " ...";
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
index cb9b3c5..2c3a8ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionLayoutAnnotation.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -35,7 +34,7 @@ public class CssClassFaFacetForActionLayoutAnnotation extends CssClassFaFacetAbs
 
         class Annot {
             private Annot(final ActionLayout actionLayout) {
-                this.cssClassFa = Strings.emptyToNull(actionLayout.cssClassFa());
+                this.cssClassFa = _Strings.emptyToNull(actionLayout.cssClassFa());
                 this.cssClassFaPosition = CssClassFaPosition.from(actionLayout.cssClassFaPosition());
             }
             String cssClassFa;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
index acef43b..aa26f01 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFaFacetForActionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -33,7 +32,7 @@ public class CssClassFaFacetForActionXml extends CssClassFaFacetAbstract {
         if(actionLayout == null) {
             return null;
         }
-        final String cssClassFa = Strings.emptyToNull(actionLayout.getCssClassFa());
+        final String cssClassFa = _Strings.emptyToNull(actionLayout.getCssClassFa());
         CssClassFaPosition cssClassFaPosition = CssClassFaPosition.from(actionLayout.getCssClassFaPosition());
         return cssClassFa != null ? new CssClassFaFacetForActionXml(cssClassFa, cssClassFaPosition, holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
index becba24..5564e29 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -37,8 +35,7 @@ public class CssClassFacetForActionLayoutAnnotation extends CssClassFacetAbstrac
 
         return actionLayouts.stream()
                 .map(ActionLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(cssClass -> new CssClassFacetForActionLayoutAnnotation(cssClass, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
index d6131b6..a4a75e5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/CssClassFacetForActionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFacetForActionXml extends CssClassFacetAbstract {
         if(actionLayout == null) {
             return null;
         }
-        final String cssClass = Strings.emptyToNull(actionLayout.getCssClass());
+        final String cssClass = _Strings.emptyToNull(actionLayout.getCssClass());
         return cssClass != null ? new CssClassFacetForActionXml(cssClass, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
index d45f371..380d65c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -35,8 +33,7 @@ public class DescribedAsFacetForActionLayoutAnnotation extends DescribedAsFacetA
 
         return actionLayouts.stream()
                 .map(ActionLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForActionLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
index 39409ac..f751e0b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/DescribedAsFacetForActionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -32,7 +31,7 @@ public class DescribedAsFacetForActionXml extends DescribedAsFacetAbstract {
         if(actionLayout == null) {
             return null;
         }
-        final String describedAs = Strings.emptyToNull(actionLayout.getDescribedAs());
+        final String describedAs = _Strings.emptyToNull(actionLayout.getDescribedAs());
         return describedAs != null ? new DescribedAsFacetForActionXml(describedAs, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
index 4394a9d..0d604e5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -37,8 +35,7 @@ public class NamedFacetForActionLayoutAnnotation extends NamedFacetAbstract {
 
         return actionLayouts.stream()
                 .map(ActionLayout::named)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(named -> new NamedFacetForActionLayoutAnnotation(named, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
index ff785dc..cf39812 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/NamedFacetForActionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.actions.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -32,7 +31,7 @@ public class NamedFacetForActionXml extends NamedFacetAbstract {
         if(actionLayout == null) {
             return null;
         }
-        final String named = Strings.emptyToNull(actionLayout.getNamed());
+        final String named = _Strings.emptyToNull(actionLayout.getNamed());
         Boolean escaped = actionLayout.getNamedEscaped();
         return named != null ? new NamedFacetForActionXml(named, (escaped == null || escaped), holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
index 4d641f1..9d83150 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/TranslationFacetFactory.java
@@ -19,9 +19,8 @@
 package org.apache.isis.core.metamodel.facets.all.i18n;
 
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -116,7 +115,7 @@ public class TranslationFacetFactory extends FacetFactoryAbstract implements Con
     }
 
     private boolean isNullOrEmptyWhenTrimmed(final String originalText) {
-        return originalText == null || Strings.isNullOrEmpty(originalText.trim());
+        return originalText == null || _Strings.isNullOrEmpty(originalText.trim());
     }
 
     // //////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
index 957c44b..b3404e2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
@@ -86,7 +86,7 @@ implements ImperativeFacet {
                             interactionInitiatedBy);
             final Object visibleObjects =
                     CollectionUtils.copyOf(
-                            _Lists.transform(visibleAdapters, ObjectAdapter.Functions.getObject()),
+                            _Lists.map(visibleAdapters, ObjectAdapter.Functions.getObject()),
                             method.getReturnType());
             if (visibleObjects != null) {
                 return visibleObjects;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
index 63a5f55..d52e94d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/javautilcollection/JavaCollectionFacet.java
@@ -22,8 +22,7 @@ package org.apache.isis.core.metamodel.facets.collections.javautilcollection;
 import java.util.Collection;
 import java.util.Iterator;
 
-import com.google.common.collect.Collections2;
-
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -53,9 +52,7 @@ public class JavaCollectionFacet extends CollectionFacetAbstract {
     public Collection<ObjectAdapter> collection(final ObjectAdapter collectionAdapter) {
         final Collection<?> pojoCollection = pojoCollection(collectionAdapter);
         
-        //TODO [ahuber] java doc states, this is a live view, don't know if this is needed, 
-        // or if a copy is sufficient
-        return Collections2.transform(pojoCollection, adapterProvider::adapterFor);
+        return _Lists.map(pojoCollection, adapterProvider::adapterFor);
                 
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionLayoutAnnotation.java
index f6a4079..4367047 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -35,8 +33,7 @@ public class CssClassFacetForCollectionLayoutAnnotation extends CssClassFacetAbs
 
         return collectionLayouts.stream()
                 .map(CollectionLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(cssClass -> new CssClassFacetForCollectionLayoutAnnotation(cssClass, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionXml.java
index 2840cc0..0a9adc9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/CssClassFacetForCollectionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFacetForCollectionXml extends CssClassFacetAbstract {
         if(collectionLayout == null) {
             return null;
         }
-        final String cssClass = Strings.emptyToNull(collectionLayout.getCssClass());
+        final String cssClass = _Strings.emptyToNull(collectionLayout.getCssClass());
         return cssClass != null ? new CssClassFacetForCollectionXml(cssClass, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionLayoutAnnotation.java
index 88109da..0285d01 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
@@ -44,8 +42,7 @@ public class DefaultViewFacetForCollectionLayoutAnnotation extends DefaultViewFa
 
         final String defaultView = collectionLayouts.stream()
                 .map(CollectionLayout::defaultView)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .orElseGet(() -> DefaultViewConfiguration.parse(configuration).getDefaultView());
         return new DefaultViewFacetForCollectionLayoutAnnotation(defaultView, holder);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionXml.java
index 3141f64..85b6bde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DefaultViewFacetForCollectionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
 import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacetAbstract;
@@ -37,7 +36,7 @@ public class DefaultViewFacetForCollectionXml extends DefaultViewFacetAbstract {
             return null;
         }
 
-        final String defaultView = Strings.emptyToNull(collectionLayout.getDefaultView());
+        final String defaultView = _Strings.emptyToNull(collectionLayout.getDefaultView());
         return defaultView != null ? new DefaultViewFacetForCollectionXml(defaultView, holder) : null;
     }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
index 73e0359..de4da3a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -35,8 +33,7 @@ public class DescribedAsFacetForCollectionLayoutAnnotation extends DescribedAsFa
 
         return collectionLayouts.stream()
                 .map(CollectionLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForCollectionLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
index fcaa63f..b22caf1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/DescribedAsFacetForCollectionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -32,7 +31,7 @@ public class DescribedAsFacetForCollectionXml extends DescribedAsFacetAbstract {
         if(collectionLayout == null) {
             return null;
         }
-        final String describedAs = Strings.emptyToNull(collectionLayout.getDescribedAs());
+        final String describedAs = _Strings.emptyToNull(collectionLayout.getDescribedAs());
         return describedAs != null ? new DescribedAsFacetForCollectionXml(describedAs, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
index a393e4d..59cd63e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionLayoutAnnotation.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.facets.collections.layout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -33,7 +32,7 @@ public class NamedFacetForCollectionLayoutAnnotation extends NamedFacetAbstract
     public static NamedFacet create(List<CollectionLayout> collectionLayouts, FacetHolder holder) {
 
         return collectionLayouts.stream()
-                .filter(collectionLayout -> Strings.emptyToNull(collectionLayout.named()) != null)
+                .filter(collectionLayout -> _Strings.emptyToNull(collectionLayout.named()) != null)
                 .findFirst()
                 .map(collectionLayout ->
                 new NamedFacetForCollectionLayoutAnnotation(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
index c4dc650..de194a5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/layout/NamedFacetForCollectionXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.collections.layout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -32,7 +31,7 @@ public class NamedFacetForCollectionXml extends NamedFacetAbstract {
         if(collectionLayout == null) {
             return null;
         }
-        final String named = Strings.emptyToNull(collectionLayout.getNamed());
+        final String named = _Strings.emptyToNull(collectionLayout.getNamed());
         final Boolean escaped = collectionLayout.getNamedEscaped();
         return named != null ? new NamedFacetForCollectionXml(named, escaped == null || escaped, holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
index f9c6804..af9447f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
@@ -25,9 +25,8 @@ import java.util.StringTokenizer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -133,7 +132,7 @@ public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactor
             final Map<String,String> cssClassByRegex = _Maps.newLinkedHashMap();
             while (regexToCssClasses.hasMoreTokens()) {
                 String regexToCssClass = regexToCssClasses.nextToken().trim();
-                if (Strings.isNullOrEmpty(regexToCssClass)) {
+                if (_Strings.isNullOrEmpty(regexToCssClass)) {
                     continue;
                 }
                 final Matcher matcher = CSS_CLASS_REGEX_PATTERN.matcher(regexToCssClass);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
index bddbdc9..d89ab56 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaFacetAbstract.java
@@ -22,8 +22,8 @@ import java.util.regex.Pattern;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
-import org.apache.isis.commons.internal.collections._Sets;
 
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleStringValueFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index 615219e..2a2815a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -25,9 +25,8 @@ import java.util.StringTokenizer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -115,7 +114,7 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
             final Map<String, String> faIconByRegex = _Maps.newLinkedHashMap();
             while (regexToFaIcons.hasMoreTokens()) {
                 String regexToFaIcon = regexToFaIcons.nextToken().trim();
-                if (Strings.isNullOrEmpty(regexToFaIcon)) {
+                if (_Strings.isNullOrEmpty(regexToFaIcon)) {
                     continue;
                 }
                 final Matcher matcher = FA_ICON_REGEX_PATTERN.matcher(regexToFaIcon);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledFacetAbstractImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledFacetAbstractImpl.java
index 4a67b46..ab48c28 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledFacetAbstractImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/disabled/DisabledFacetAbstractImpl.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.members.disabled;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
@@ -65,7 +64,7 @@ public abstract class DisabledFacetAbstractImpl extends DisabledFacetAbstract {
 
     private String disabledReasonElse(
             final String defaultReason) {
-        return !Strings.isNullOrEmpty(reason) ? reason : defaultReason;
+        return !_Strings.isNullOrEmpty(reason) ? reason : defaultReason;
     }
 
     /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetFromLayoutPropertiesAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetFromLayoutPropertiesAbstract.java
index da84e83..ebf04c4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetFromLayoutPropertiesAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/hidden/HiddenFacetFromLayoutPropertiesAbstract.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.facets.members.hidden;
 
 import java.util.Properties;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
@@ -33,7 +32,7 @@ public abstract class HiddenFacetFromLayoutPropertiesAbstract extends HiddenFace
         if(properties == null) {
             return null;
         }
-        final String hidden = Strings.emptyToNull(properties.getProperty("hidden"));
+        final String hidden = _Strings.emptyToNull(properties.getProperty("hidden"));
         if(hidden == null) {
             return null;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
index 01cebfc..70813ba 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/order/MemberOrderFacetAbstract.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.members.order;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
@@ -63,7 +62,7 @@ public abstract class MemberOrderFacetAbstract extends MultipleValueFacetAbstrac
             final String defaultValue,
             final TranslationService translationService,
             final FacetHolder holder) {
-        final boolean nullOrEmpty = Strings.isNullOrEmpty(name);
+        final boolean nullOrEmpty = _Strings.isNullOrEmpty(name);
         if (nullOrEmpty) {
             return defaultValue;
         } else {
@@ -74,7 +73,7 @@ public abstract class MemberOrderFacetAbstract extends MultipleValueFacetAbstrac
     }
 
     private static String valueElse(final String name, final String defaultValue) {
-        final boolean nullOrEmpty = Strings.isNullOrEmpty(name);
+        final boolean nullOrEmpty = _Strings.isNullOrEmpty(name);
         if (nullOrEmpty) {
             return defaultValue;
         } else {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
index 0200730..66a74e8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForDomainObjectLayoutFactory.java
@@ -17,9 +17,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFaFacetForDomainObjectLayoutFactory extends CssClassFaFacet
         if (domainObjectLayout == null) {
             return null;
         }
-        final String cssClassFa = Strings.emptyToNull(domainObjectLayout.cssClassFa());
+        final String cssClassFa = _Strings.emptyToNull(domainObjectLayout.cssClassFa());
         final CssClassFaPosition position = CssClassFaPosition.from(domainObjectLayout.cssClassFaPosition());
         return cssClassFa != null ? new CssClassFaFacetForDomainObjectLayoutAnnotation(cssClassFa, position, holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
index 958241e..321baac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetForViewModelLayoutFactory.java
@@ -17,9 +17,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFaFacetForViewModelLayoutFactory extends CssClassFaFacetAbs
         if (viewModelLayout == null) {
             return null;
         }
-        final String cssClassFa = Strings.emptyToNull(viewModelLayout.cssClassFa());
+        final String cssClassFa = _Strings.emptyToNull(viewModelLayout.cssClassFa());
         final CssClassFaPosition position = CssClassFaPosition.from(viewModelLayout.cssClassFaPosition());
         return cssClassFa != null ? new CssClassFaFacetForViewModelLayoutAnnotation(cssClassFa,
                 position,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultsProviderUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultsProviderUtil.java
index f08871f..2d0b714 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultsProviderUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/DefaultsProviderUtil.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.defaults;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.adapters.DefaultsProvider;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -37,7 +36,7 @@ public final class DefaultsProviderUtil {
     public static String defaultsProviderNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
         final String key = DEFAULTS_PROVIDER_NAME_KEY_PREFIX + type.getCanonicalName() + DEFAULTS_PROVIDER_NAME_KEY_SUFFIX;
         final String defaultsProviderName = configuration.getString(key);
-        return !Strings.isNullOrEmpty(defaultsProviderName) ? defaultsProviderName : null;
+        return !_Strings.isNullOrEmpty(defaultsProviderName) ? defaultsProviderName : null;
     }
 
     public static Class<?> defaultsProviderOrNull(final Class<?> candidateClass, final String classCandidateName) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotation.java
index 2ec46b0..83226ea 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotation.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.defaults.annotcfg;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Defaulted;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetAbstract;
@@ -33,7 +32,7 @@ public class DefaultedFacetAnnotation extends DefaultedFacetAbstract {
     private static String providerName(final Class<?> annotatedClass, final IsisConfiguration configuration) {
         final Defaulted annotation = annotatedClass.getAnnotation(Defaulted.class);
         final String providerName = annotation.defaultsProviderName();
-        if (!Strings.isNullOrEmpty(providerName)) {
+        if (!_Strings.isNullOrEmpty(providerName)) {
             return providerName;
         }
         return DefaultsProviderUtil.defaultsProviderNameFromConfiguration(annotatedClass, configuration);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
index ac79324..206da57 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.defaults.annotcfg;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Defaulted;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -55,7 +54,7 @@ public class DefaultedFacetAnnotationElseConfigurationFactory extends FacetFacto
 
         // otherwise, try to create from configuration, if present
         final String providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(cls, getConfiguration());
-        if (!Strings.isNullOrEmpty(providerName)) {
+        if (!_Strings.isNullOrEmpty(providerName)) {
             final DefaultedFacetFromConfiguration facet = new DefaultedFacetFromConfiguration(providerName, holder, servicesInjector);
             if (facet.isValid()) {
                 return facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 31918c3..fca560f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -26,8 +26,6 @@ import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.events.lifecycle.ObjectCreatedEvent;
@@ -38,6 +36,7 @@ import org.apache.isis.applib.events.lifecycle.ObjectRemovingEvent;
 import org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent;
 import org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent;
 import org.apache.isis.applib.services.HasTransactionId;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 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/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
index a22a3a2..c329556 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetForDomainObjectAnnotation.java
@@ -21,10 +21,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobject.editing;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -80,7 +79,7 @@ public class ImmutableFacetForDomainObjectAnnotation extends ImmutableFacetAbstr
 
     @Override
     public String disabledReason(final ObjectAdapter targetAdapter) {
-        return !Strings.isNullOrEmpty(reason)
+        return !_Strings.isNullOrEmpty(reason)
                 ? reason
                         : super.disabledReason(targetAdapter);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetFromConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetFromConfiguration.java
index ed0590b..c589b5d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetFromConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/editing/ImmutableFacetFromConfiguration.java
@@ -19,8 +19,7 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobject.editing;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -38,7 +37,7 @@ public class ImmutableFacetFromConfiguration extends ImmutableFacetAbstract {
 
     @Override
     public String disabledReason(final ObjectAdapter targetAdapter) {
-        return !Strings.isNullOrEmpty(reason)
+        return !_Strings.isNullOrEmpty(reason)
                 ? reason
                         : super.disabledReason(targetAdapter);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
index 203b6335..9ee675c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForDomainObjectAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacetAbstract;
@@ -37,8 +35,7 @@ public class ObjectSpecIdFacetForDomainObjectAnnotation extends ObjectSpecIdFace
 
         return domainObjects.stream()
                 .map(DomainObject::objectType)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(objectType -> new ObjectSpecIdFacetForDomainObjectAnnotation(objectType, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForJdoPersistenceCapableAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForJdoPersistenceCapableAnnotation.java
index fd3cfc5..b2cf768 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForJdoPersistenceCapableAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/objectspecid/ObjectSpecIdFacetForJdoPersistenceCapableAnnotation.java
@@ -21,8 +21,7 @@ package org.apache.isis.core.metamodel.facets.object.domainobject.objectspecid;
 
 import java.util.Locale;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacetAbstract;
@@ -38,7 +37,7 @@ public class ObjectSpecIdFacetForJdoPersistenceCapableAnnotation extends ObjectS
             return null;
         }
         final String schema = persistenceCapableFacet.getSchema();
-        if(Strings.isNullOrEmpty(schema)) {
+        if(_Strings.isNullOrEmpty(schema)) {
             return null;
         }
         final String objectType = schema.toLowerCase(Locale.ROOT) + "." + persistenceCapableFacet.getTable();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
index 8943d77..fe77164 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectLayoutAnnotation.java
@@ -19,9 +19,8 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -33,7 +32,7 @@ public class CssClassFaFacetForDomainObjectLayoutAnnotation extends CssClassFaFa
 
         class Annot {
             private Annot(final DomainObjectLayout domainObjectLayout) {
-                this.cssClassFa = Strings.emptyToNull(domainObjectLayout.cssClassFa());
+                this.cssClassFa = _Strings.emptyToNull(domainObjectLayout.cssClassFa());
                 this.cssClassFaPosition = CssClassFaPosition.from(domainObjectLayout.cssClassFaPosition());
             }
             String cssClassFa;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
index 3b0d471..5a65602 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForDomainObjectXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -33,7 +32,7 @@ public class CssClassFaFacetForDomainObjectXml extends CssClassFaFacetAbstract {
         if(domainObjectLayout == null) {
             return null;
         }
-        final String cssClassFa = Strings.emptyToNull(domainObjectLayout.getCssClassFa());
+        final String cssClassFa = _Strings.emptyToNull(domainObjectLayout.getCssClassFa());
         CssClassFaPosition cssClassFaPosition = CssClassFaPosition.from(domainObjectLayout.getCssClassFaPosition());
         return cssClassFa != null ? new CssClassFaFacetForDomainObjectXml(cssClassFa, cssClassFaPosition, holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
index e7dceb9..be179a3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFaFacetForViewModelLayoutAnnotation.java
@@ -18,9 +18,8 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFaFacetForViewModelLayoutAnnotation extends CssClassFaFacet
 
         class Annot {
             private Annot(final ViewModelLayout viewModelLayout) {
-                this.cssClassFa = Strings.emptyToNull(viewModelLayout.cssClassFa());
+                this.cssClassFa = _Strings.emptyToNull(viewModelLayout.cssClassFa());
                 this.cssClassFaPosition = CssClassFaPosition.from(viewModelLayout.cssClassFaPosition());
             }
             String cssClassFa;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
index c1dccd6..272fedb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectLayoutAnnotation.java
@@ -17,11 +17,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -43,8 +41,7 @@ public class CssClassFacetForDomainObjectLayoutAnnotation extends CssClassFacetA
         }
         return domainObjectLayouts.stream()
                 .map(DomainObjectLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .map(cssClass -> new CssClassFacetForDomainObjectLayoutAnnotation(cssClass, holder))
                 .findFirst()
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
index d931134..ae1376c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForDomainObjectXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFacetForDomainObjectXml extends CssClassFacetAbstract {
         if(domainObjectLayout == null) {
             return null;
         }
-        final String cssClass = Strings.emptyToNull(domainObjectLayout.getCssClass());
+        final String cssClass = _Strings.emptyToNull(domainObjectLayout.getCssClass());
         return cssClass != null ? new CssClassFacetForDomainObjectXml(cssClass, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
index 3db3ebd..b6d8f76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/CssClassFacetForViewModelLayoutAnnotation.java
@@ -17,11 +17,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -32,8 +30,7 @@ public class CssClassFacetForViewModelLayoutAnnotation extends CssClassFacetAbst
 
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(cssClass -> new CssClassFacetForViewModelLayoutAnnotation(cssClass, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
index e040642..54c8759 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectLayoutAnnotation.java
@@ -19,11 +19,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -35,8 +33,7 @@ public class DescribedAsFacetForDomainObjectLayoutAnnotation extends DescribedAs
 
         return domainObjectLayouts.stream()
                 .map(DomainObjectLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForDomainObjectLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
index 3b8273a..fed2400 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForDomainObjectXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -32,7 +31,7 @@ public class DescribedAsFacetForDomainObjectXml extends DescribedAsFacetAbstract
         if(domainObjectLayout == null) {
             return null;
         }
-        final String describedAs = Strings.emptyToNull(domainObjectLayout.getDescribedAs());
+        final String describedAs = _Strings.emptyToNull(domainObjectLayout.getDescribedAs());
         return describedAs != null ? new DescribedAsFacetForDomainObjectXml(describedAs, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForViewModelLayoutAnnotation.java
index 3e0858a..e8be895 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DescribedAsFacetForViewModelLayoutAnnotation.java
@@ -20,11 +20,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -36,8 +34,7 @@ public class DescribedAsFacetForViewModelLayoutAnnotation extends DescribedAsFac
 
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForViewModelLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
index be81edb..22af7df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectLayoutAnnotation.java
@@ -20,11 +20,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -38,8 +36,7 @@ public class NamedFacetForDomainObjectLayoutAnnotation extends NamedFacetAbstrac
 
         return domainObjectLayouts.stream()
                 .map(DomainObjectLayout::named)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(named -> new NamedFacetForDomainObjectLayoutAnnotation(named, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
index 775a832..dc64e08 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForDomainObjectXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -32,7 +31,7 @@ public class NamedFacetForDomainObjectXml extends NamedFacetAbstract {
         if(domainObjectLayout == null) {
             return null;
         }
-        final String named = Strings.emptyToNull(domainObjectLayout.getNamed());
+        final String named = _Strings.emptyToNull(domainObjectLayout.getNamed());
         Boolean escaped = domainObjectLayout.getNamedEscaped();
         return named != null ? new NamedFacetForDomainObjectXml(named, (escaped == null || escaped), holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForViewModelLayoutAnnotation.java
index 346ccae..db06932 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/NamedFacetForViewModelLayoutAnnotation.java
@@ -19,11 +19,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -36,8 +34,7 @@ public class NamedFacetForViewModelLayoutAnnotation extends NamedFacetAbstract {
 
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::named)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(named -> new NamedFacetForViewModelLayoutAnnotation(named, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForDomainObjectXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForDomainObjectXml.java
index 170567e..0796fc0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForDomainObjectXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForDomainObjectXml.java
@@ -18,9 +18,8 @@
  */
 package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacetAbstract;
@@ -31,7 +30,7 @@ public class PluralFacetForDomainObjectXml extends PluralFacetAbstract {
         if(domainObjectLayout == null) {
             return null;
         }
-        final String plural = Strings.emptyToNull(domainObjectLayout.getPlural());
+        final String plural = _Strings.emptyToNull(domainObjectLayout.getPlural());
         return plural != null ? new PluralFacetForDomainObjectXml(plural, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForViewModelLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForViewModelLayoutAnnotation.java
index bd1b0f0..12e1cba 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForViewModelLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/PluralFacetForViewModelLayoutAnnotation.java
@@ -20,11 +20,9 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacetAbstract;
@@ -35,8 +33,7 @@ public class PluralFacetForViewModelLayoutAnnotation extends PluralFacetAbstract
     public static PluralFacet create(final List<ViewModelLayout> viewModelLayouts, final FacetHolder holder) {
         return viewModelLayouts.stream()
                 .map(ViewModelLayout::plural)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(plural -> new PluralFacetForViewModelLayoutAnnotation(plural, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
index 81f9c50..59ca7ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainservicelayout/NamedFacetForDomainServiceLayoutAnnotation.java
@@ -20,11 +20,9 @@ package org.apache.isis.core.metamodel.facets.object.domainservicelayout;
 
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -38,8 +36,7 @@ public class NamedFacetForDomainServiceLayoutAnnotation extends NamedFacetAbstra
 
         return domainServiceLayouts.stream()
                 .map(DomainServiceLayout::named)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(named -> new NamedFacetForDomainServiceLayoutAnnotation(named, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncoderDecoderUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncoderDecoderUtil.java
index c622e5f..0d39402 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncoderDecoderUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/EncoderDecoderUtil.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.encodeable;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.adapters.EncoderDecoder;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -37,7 +36,7 @@ public final class EncoderDecoderUtil {
     public static String encoderDecoderNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
         final String key = ENCODER_DECODER_NAME_KEY_PREFIX + type.getCanonicalName() + ENCODER_DECODER_NAME_KEY_SUFFIX;
         final String encoderDecoderName = configuration.getString(key);
-        return !Strings.isNullOrEmpty(encoderDecoderName) ? encoderDecoderName : null;
+        return !_Strings.isNullOrEmpty(encoderDecoderName) ? encoderDecoderName : null;
     }
 
     public static Class<?> encoderDecoderOrNull(final Class<?> candidateClass, final String classCandidateName) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
index 35e2937..50d0939 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/ParserUtil.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.parseable;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -37,7 +36,7 @@ public final class ParserUtil {
     public static String parserNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
         final String key = PARSER_NAME_KEY_PREFIX + type.getCanonicalName() + PARSER_NAME_KEY_SUFFIX;
         final String parserName = configuration.getString(key);
-        return !Strings.isNullOrEmpty(parserName) ? parserName : null;
+        return !_Strings.isNullOrEmpty(parserName) ? parserName : null;
     }
 
     @SuppressWarnings("unchecked")
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
index 5c7d426..2926176 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactory.java
@@ -26,10 +26,9 @@ import java.util.Optional;
 import javax.annotation.PostConstruct;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.RecreatableDomainObject;
 import org.apache.isis.applib.ViewModel;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
index 7e3e4e0..dc26564 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleAnnotationFacetFactory.java
@@ -70,7 +70,7 @@ public class TitleAnnotationFacetFactory extends FacetFactoryAbstract implements
 
         sort(evaluators);
         final List<TitleFacetViaTitleAnnotation.TitleComponent> titleComponents = 
-                _Lists.transform(evaluators, TitleFacetViaTitleAnnotation.TitleComponent.FROM_EVALUATORS);
+                _Lists.map(evaluators, TitleFacetViaTitleAnnotation.TitleComponent.FROM_EVALUATORS);
         FacetUtil.addFacet(new TitleFacetViaTitleAnnotation(titleComponents, facetHolder, adapterProvider));
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
index ae4e5d9..04e22b8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
@@ -20,15 +20,14 @@
 package org.apache.isis.core.metamodel.facets.object.title.annotation;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.function.Function;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Strings;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -118,16 +117,16 @@ public class TitleFacetViaTitleAnnotation extends TitleFacetAbstract {
                 }
                 // ignore context, if provided
                 final ObjectAdapter titlePartAdapter = adapterProvider.adapterFor(titlePart);
-                if(Objects.equal(contextAdapter, titlePartAdapter)) {
+                if(Objects.equals(contextAdapter, titlePartAdapter)) {
                     continue;
                 }
                 String title = titleOf(titlePartAdapter);
-                if (Strings.isNullOrEmpty(title)) {
+                if (_Strings.isNullOrEmpty(title)) {
                     // ... use the toString() otherwise
                     // (mostly for benefit of testing...)
                     title = titlePart.toString().trim();
                 }
-                if(Strings.isNullOrEmpty(title)) {
+                if(_Strings.isNullOrEmpty(title)) {
                     continue;
                 }
                 stringBuilder.append(component.getPrepend());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotation.java
index ca7f7bb..b301fc9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotation.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.value.annotcfg;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Value;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacetAbstract;
@@ -33,7 +32,7 @@ public class ValueFacetAnnotation extends ValueFacetAbstract {
     private static String semanticsProviderName(final Class<?> annotatedClass, final IsisConfiguration configuration) {
         final Value annotation = annotatedClass.getAnnotation(Value.class);
         final String semanticsProviderName = annotation.semanticsProviderName();
-        if (!Strings.isNullOrEmpty(semanticsProviderName)) {
+        if (!_Strings.isNullOrEmpty(semanticsProviderName)) {
             return semanticsProviderName;
         }
         return ValueSemanticsProviderUtil.semanticsProviderNameFromConfiguration(annotatedClass, configuration);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
index 84b109b..683fdd6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
@@ -19,11 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.object.value.annotcfg;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.annotation.Value;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -93,7 +92,7 @@ public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbst
 
         // otherwise, try to create from configuration, if present
         final String semanticsProviderName = ValueSemanticsProviderUtil.semanticsProviderNameFromConfiguration(cls, getConfiguration());
-        if (!Strings.isNullOrEmpty(semanticsProviderName)) {
+        if (!_Strings.isNullOrEmpty(semanticsProviderName)) {
             final ValueFacetFromConfiguration facet = new ValueFacetFromConfiguration(semanticsProviderName, holder, servicesInjector);
             if (facet.isValid()) {
                 return facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
index b34d5fe..154d886 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.value.vsp;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -37,7 +36,7 @@ public final class ValueSemanticsProviderUtil {
     public static String semanticsProviderNameFromConfiguration(final Class<?> type, final IsisConfiguration configuration) {
         final String key = SEMANTICS_PROVIDER_NAME_KEY_PREFIX + type.getCanonicalName() + SEMANTICS_PROVIDER_NAME_KEY_SUFFIX;
         final String semanticsProviderName = configuration.getString(key);
-        return !Strings.isNullOrEmpty(semanticsProviderName) ? semanticsProviderName : null;
+        return !_Strings.isNullOrEmpty(semanticsProviderName) ? semanticsProviderName : null;
     }
 
     @SuppressWarnings("unchecked")
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
index 2de9ac4..8376362 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
@@ -98,7 +98,7 @@ public class ActionParameterAutoCompleteFacetViaMethod extends ActionParameterAu
                         collectionAdapter,
                         interactionInitiatedBy);
         final List<Object> visibleObjects =
-                _Lists.transform(visibleAdapters, ObjectAdapter.Functions.getObject());
+                _Lists.map(visibleAdapters, ObjectAdapter.Functions.getObject());
 
         final ObjectSpecification parameterSpec = getSpecification(parameterType);
         return CollectionUtils.getCollectionAsObjectArray(visibleObjects, parameterSpec, getObjectAdapterProvider());
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 6e186c9..b3ae7fc 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
@@ -117,7 +117,7 @@ public class ActionChoicesFacetViaMethod extends ActionChoicesFacetAbstract impl
                         collectionAdapter,
                         interactionInitiatedBy);
         final List<Object> filteredObjects =
-                _Lists.transform(visibleAdapters, ObjectAdapter.Functions.getObject());
+                _Lists.map(visibleAdapters, ObjectAdapter.Functions.getObject());
 
         final ObjectSpecification parameterSpec = getSpecification(parameterType);
         return CollectionUtils.getCollectionAsObjectArray(filteredObjects, parameterSpec, getObjectAdapterProvider());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
index d97c3ba..b351cc9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
@@ -90,7 +90,7 @@ public class ActionParameterChoicesFacetViaMethod extends ActionParameterChoices
                         objectAdapter,
                         interactionInitiatedBy);
         final List<Object> visibleObjects =
-                _Lists.transform(visibleAdapters, ObjectAdapter.Functions.getObject());
+                _Lists.map(visibleAdapters, ObjectAdapter.Functions.getObject());
 
         final ObjectSpecification parameterSpec = getSpecification(parameterType);
         return CollectionUtils.getCollectionAsObjectArray(visibleObjects, parameterSpec, getObjectAdapterProvider());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
index 095d240..9f85db5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/CssClassFacetForParameterLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.param.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -37,8 +35,7 @@ public class CssClassFacetForParameterLayoutAnnotation extends CssClassFacetAbst
 
         return parameterLayouts.stream()
                 .map(ParameterLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(cssClass -> new CssClassFacetForParameterLayoutAnnotation(cssClass, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
index 081dd27..112f174 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/DescribedAsFacetForParameterLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.param.layout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -37,8 +35,7 @@ public class DescribedAsFacetForParameterLayoutAnnotation extends DescribedAsFac
 
         return parameterLayouts.stream()
                 .map(ParameterLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForParameterLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
index 3567b09..202a8d6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/layout/NamedFacetForParameterLayoutAnnotation.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.facets.param.layout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -35,7 +34,7 @@ public class NamedFacetForParameterLayoutAnnotation extends NamedFacetAbstract {
             final FacetHolder holder) {
 
         return parameterLayouts.stream()
-                .filter(parameterLayout -> Strings.emptyToNull(parameterLayout.named()) != null)
+                .filter(parameterLayout -> _Strings.emptyToNull(parameterLayout.named()) != null)
                 .findFirst()
                 .map(parameterLayout -> new NamedFacetForParameterLayoutAnnotation(
                         parameterLayout.named(), parameterLayout.namedEscaped(), holder))
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/fileaccept/FileAcceptFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/fileaccept/FileAcceptFacetForParameterAnnotation.java
index 572a0b3..e109f3f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/fileaccept/FileAcceptFacetForParameterAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/fileaccept/FileAcceptFacetForParameterAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.param.parameter.fileaccept;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacetAbstract;
@@ -37,8 +35,7 @@ public class FileAcceptFacetForParameterAnnotation extends FileAcceptFacetAbstra
 
         return parameters.stream()
                 .map(Parameter::fileAccept)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(fileAccept -> new FileAcceptFacetForParameterAnnotation(fileAccept, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
index 6e4f437..e963e55 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForParameterAnnotation.java
@@ -22,9 +22,8 @@ package org.apache.isis.core.metamodel.facets.param.parameter.regex;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Parameter;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacetAbstract;
@@ -39,7 +38,7 @@ public class RegExFacetForParameterAnnotation extends RegExFacetAbstract {
             final FacetHolder holder) {
 
         return parameters.stream()
-                .filter(parameter -> Strings.emptyToNull(parameter.regexPattern()) != null)
+                .filter(parameter -> _Strings.emptyToNull(parameter.regexPattern()) != null)
                 .findFirst()
                 .map(parameter -> {
                     final String pattern = parameter.regexPattern();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForPatternAnnotationOnParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForPatternAnnotationOnParameter.java
index db0aeaf..3a7454a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForPatternAnnotationOnParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/parameter/regex/RegExFacetForPatternAnnotationOnParameter.java
@@ -22,8 +22,7 @@ package org.apache.isis.core.metamodel.facets.param.parameter.regex;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacet;
@@ -43,7 +42,7 @@ public class RegExFacetForPatternAnnotationOnParameter extends RegExFacetAbstrac
         }
 
         return patterns.stream()
-                .filter(pattern -> Strings.emptyToNull(pattern.regexp()) != null)
+                .filter(pattern -> _Strings.emptyToNull(pattern.regexp()) != null)
                 .findFirst()
                 .map(pattern ->
                 new RegExFacetForPatternAnnotationOnParameter(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
index e296e19..88e65a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
@@ -111,7 +111,7 @@ public class PropertyAutoCompleteFacetMethod extends PropertyAutoCompleteFacetAb
                         collectionAdapter,
                         interactionInitiatedBy);
         final List<Object> filteredObjects =
-                _Lists.transform(visibleAdapters, ObjectAdapter.Functions.getObject());
+                _Lists.map(visibleAdapters, ObjectAdapter.Functions.getObject());
 
         final ObjectSpecification propertySpec = getSpecification(propertyType);
         return CollectionUtils.getCollectionAsObjectArray(filteredObjects, propertySpec, getObjectAdapterProvider());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/fileaccept/FileAcceptFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/fileaccept/FileAcceptFacetForPropertyAnnotation.java
index 9399c29..bfeea06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/fileaccept/FileAcceptFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/fileaccept/FileAcceptFacetForPropertyAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.properties.property.fileaccept;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacetAbstract;
@@ -37,8 +35,7 @@ public class FileAcceptFacetForPropertyAnnotation extends FileAcceptFacetAbstrac
 
         return properties.stream()
                 .map(Property::fileAccept)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(fileAccept -> new FileAcceptFacetForPropertyAnnotation(fileAccept, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index bb2df98..c6c3762 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -20,8 +20,7 @@
 package org.apache.isis.core.metamodel.facets.properties.property.modify;
 
 import java.sql.Timestamp;
-
-import com.google.common.base.Objects;
+import java.util.Objects;
 
 import org.apache.isis.applib.events.domain.AbstractDomainEvent;
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
@@ -256,7 +255,7 @@ extends SingleValueFacetAbstract<Class<? extends PropertyDomainEvent<?,?>>> {
 
                         // reading the actual value from the target object, playing it safe...
                         final Object actualNewValue = getterFacet.getProperty(targetAdapter, interactionInitiatedBy);
-                        if (!Objects.equal(oldValue, actualNewValue)) {
+                        if (!Objects.equals(oldValue, actualNewValue)) {
 
                             // ... post the executed event
                             domainEventHelper.postEventForProperty(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPatternAnnotationOnProperty.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPatternAnnotationOnProperty.java
index 832c973..1443380 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPatternAnnotationOnProperty.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPatternAnnotationOnProperty.java
@@ -22,8 +22,7 @@ package org.apache.isis.core.metamodel.facets.properties.property.regex;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacet;
@@ -42,7 +41,7 @@ public class RegExFacetForPatternAnnotationOnProperty extends RegExFacetAbstract
         }
 
         return patterns.stream()
-                .filter(pattern -> Strings.emptyToNull(pattern.regexp()) != null)
+                .filter(pattern -> _Strings.emptyToNull(pattern.regexp()) != null)
                 .findFirst()
                 .map(pattern ->
                 new RegExFacetForPatternAnnotationOnProperty(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
index d8d160f..d93ee45 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/regex/RegExFacetForPropertyAnnotation.java
@@ -22,9 +22,8 @@ package org.apache.isis.core.metamodel.facets.properties.property.regex;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.objectvalue.regex.RegExFacet;
@@ -44,7 +43,7 @@ public class RegExFacetForPropertyAnnotation extends RegExFacetAbstract {
         }
 
         return properties.stream()
-                .filter(property -> Strings.emptyToNull(property.regexPattern()) != null)
+                .filter(property -> _Strings.emptyToNull(property.regexPattern()) != null)
                 .findFirst()
                 .map(property -> new RegExFacetForPropertyAnnotation(
                         property.regexPattern(), property.regexPatternFlags(), holder,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyLayoutAnnotation.java
index 17818e6..8fe3a4f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -37,8 +35,7 @@ public class CssClassFacetForPropertyLayoutAnnotation extends CssClassFacetAbstr
 
         return propertyLayouts.stream()
                 .map(PropertyLayout::cssClass)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(cssClass -> new CssClassFacetForPropertyLayoutAnnotation(cssClass, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyXml.java
index d072f2a..1050efa 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/CssClassFacetForPropertyXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacetAbstract;
@@ -32,7 +31,7 @@ public class CssClassFacetForPropertyXml extends CssClassFacetAbstract {
         if(propertyLayout == null) {
             return null;
         }
-        final String cssClass = Strings.emptyToNull(propertyLayout.getCssClass());
+        final String cssClass = _Strings.emptyToNull(propertyLayout.getCssClass());
         return cssClass != null ? new CssClassFacetForPropertyXml(cssClass, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
index e1b3f58..8e88656 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyLayoutAnnotation.java
@@ -20,11 +20,9 @@
 package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
 import java.util.List;
-import java.util.Objects;
-
-import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -37,8 +35,7 @@ public class DescribedAsFacetForPropertyLayoutAnnotation extends DescribedAsFace
 
         return propertyLayouts.stream()
                 .map(PropertyLayout::describedAs)
-                .map(Strings::emptyToNull)
-                .filter(Objects::nonNull)
+                .filter(_Strings::isNotEmpty)
                 .findFirst()
                 .map(describedAs -> new DescribedAsFacetForPropertyLayoutAnnotation(describedAs, holder))
                 .orElse(null);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
index a99c98d..9526ec5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/DescribedAsFacetForPropertyXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -32,7 +31,7 @@ public class DescribedAsFacetForPropertyXml extends DescribedAsFacetAbstract {
         if(propertyLayout == null) {
             return null;
         }
-        final String describedAs = Strings.emptyToNull(propertyLayout.getDescribedAs());
+        final String describedAs = _Strings.emptyToNull(propertyLayout.getDescribedAs());
         return describedAs != null ? new DescribedAsFacetForPropertyXml(describedAs, holder) : null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
index a5e8c56..b9da5df 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotation.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -34,7 +33,7 @@ public class NamedFacetForPropertyLayoutAnnotation extends NamedFacetAbstract {
             final List<PropertyLayout> propertyLayouts,
             final FacetHolder holder) {
         return propertyLayouts.stream()
-                .filter(propertyLayout -> Strings.emptyToNull(propertyLayout.named()) != null)
+                .filter(propertyLayout -> _Strings.emptyToNull(propertyLayout.named()) != null)
                 .findFirst()
                 .map(propertyLayout -> new NamedFacetForPropertyLayoutAnnotation(
                         propertyLayout.named(), propertyLayout.namedEscaped(), holder))
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
index a0aef41..7cba433 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyXml.java
@@ -19,9 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.properties.propertylayout;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
@@ -32,7 +31,7 @@ public class NamedFacetForPropertyXml extends NamedFacetAbstract {
         if(propertyLayout == null) {
             return null;
         }
-        final String named = Strings.emptyToNull(propertyLayout.getNamed());
+        final String named = _Strings.emptyToNull(propertyLayout.getNamed());
         final Boolean escaped = propertyLayout.getNamedEscaped();
         return named != null ? new NamedFacetForPropertyXml(named, (escaped == null || escaped), holder) : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
index e2fbf11..a850191 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/DateAndTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.TimeZone;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
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 9b201ce..20dc35f 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
@@ -30,10 +30,9 @@ import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.TimeZone;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
index 5fca6ba..da3da52 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueSemanticsProviderAbstract.java
@@ -27,7 +27,6 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
index 0c84c40..60f1b64 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejdk8local/Jdk8LocalDateValueSemanticsProvider.java
@@ -29,11 +29,10 @@ import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
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 e8dad69..d25cfc4 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
@@ -39,7 +39,7 @@ public final class JodaLocalDateUtil  {
             List<DateTimeFormatter> parseFormatters) {
         final Locale locale = Locale.getDefault();
 
-        Iterable<DateTimeFormatter> elements = _Lists.transform(parseFormatters, JodaFunctions.withLocale(locale));
+        Iterable<DateTimeFormatter> elements = _Lists.map(parseFormatters, JodaFunctions.withLocale(locale));
         LocalDate parsedDate = parseDate(dateStr, elements);
         return parsedDate;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
index 5665840..59b694c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datejodalocal/JodaLocalDateValueSemanticsProvider.java
@@ -23,8 +23,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.joda.time.LocalDate;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
@@ -33,6 +31,7 @@ import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
index 6964c50..8eb73d7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8local/Jdk8LocalDateTimeValueSemanticsProvider.java
@@ -27,14 +27,13 @@ import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.ISODateTimeFormat;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
index 95c85cb..527857d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejdk8offset/Jdk8OffsetDateTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,6 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
index be910eb..3b32742 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejoda/JodaDateTimeValueSemanticsProviderAbstract.java
@@ -27,7 +27,6 @@ import java.util.Locale;
 import java.util.Map;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.ValueSemanticsProviderAbstractTemporal;
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 633807e..a649a97 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
@@ -39,7 +39,7 @@ public final class JodaLocalDateTimeUtil  {
             List<DateTimeFormatter> parseFormatters) {
         final Locale locale = Locale.getDefault();
 
-        Iterable<DateTimeFormatter> elements = _Lists.transform(parseFormatters, JodaFunctions.withLocale(locale));
+        Iterable<DateTimeFormatter> elements = _Lists.map(parseFormatters, JodaFunctions.withLocale(locale));
         return parseDateTime(dateStr, elements);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
index 1667e1c..ce9c732 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java
@@ -23,8 +23,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.joda.time.LocalDateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
@@ -34,6 +32,7 @@ import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.EncodingException;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
index 8e618fc..efe6c4f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/timesql/JavaSqlTimeValueSemanticsProvider.java
@@ -25,11 +25,10 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.clock.Clock;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.value.time.TimeValueSemanticsProviderAbstract;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/DeweyOrderSet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/DeweyOrderSet.java
index 3397dee..11568f9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/DeweyOrderSet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layout/DeweyOrderSet.java
@@ -29,10 +29,9 @@ import java.util.SortedSet;
 import java.util.StringTokenizer;
 import java.util.TreeSet;
 
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Sets;
-
-import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
index 3250e7e..7eac761 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
@@ -19,12 +19,10 @@
 
 package org.apache.isis.core.metamodel.postprocessors.param;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Stream;
 
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
@@ -86,11 +84,13 @@ ServicesInjectorAware {
 
                 final List<ObjectActionParameter> parameters = action.getParameters();
 
-                final ImmutableList<ObjectActionParameter> compatibleCollectionParams = FluentIterable.from(parameters)
-                        .filter(whetherCollectionParamOfType::test).toList();
+                final List<ObjectActionParameter> compatibleCollectionParams =
+                        Collections.unmodifiableList(
+                                _Lists.filter(parameters, whetherCollectionParamOfType));
 
-                final ImmutableList<ObjectActionParameter> compatibleScalarParams = FluentIterable.from(parameters)
-                        .filter(whetherScalarParamOfType::test).toList();
+                final List<ObjectActionParameter> compatibleScalarParams = 
+                        Collections.unmodifiableList(
+                                _Lists.filter(parameters, whetherScalarParamOfType));
 
                 // for collection parameters, install an defaults facet (if there isn't one already)
                 // this will cause the UI to render the collection with toggleboxes
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
index 181fe59..0f8f0ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServiceUtil.java
@@ -22,9 +22,8 @@ package org.apache.isis.core.metamodel.services;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.exceptions.IsisException;
 
 public final class ServiceUtil {
@@ -65,7 +64,7 @@ public final class ServiceUtil {
         final DomainService domainService = serviceClass.getAnnotation(DomainService.class);
         if(domainService != null) {
             serviceType = domainService.objectType();
-            if(!Strings.isNullOrEmpty(serviceType)) {
+            if(!_Strings.isNullOrEmpty(serviceType)) {
                 return serviceType;
             }
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
index bac0712..89e8703 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
@@ -444,7 +444,7 @@ public class ServicesInjector implements ApplicationScopedComponent {
     @Programmatic
     public <T> List<T> lookupServices(final Class<T> serviceClass) {
         locateAndCache(serviceClass);
-        return Collections.unmodifiableList((List<T>) servicesAssignableToType.get(serviceClass));
+        return _Lists.unmodifiable((List<T>) servicesAssignableToType.get(serviceClass));
     };
 
     private void locateAndCache(final Class<?> serviceClass) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureId.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureId.java
index 2304b55..738c714 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureId.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureId.java
@@ -33,7 +33,6 @@ import java.util.function.Predicate;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
 import com.google.common.io.BaseEncoding;
 
 import org.apache.isis.applib.annotation.Programmatic;
@@ -44,6 +43,7 @@ import org.apache.isis.applib.util.Hashing;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.TitleBuffer;
 import org.apache.isis.applib.util.ToString;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 
@@ -195,7 +195,7 @@ public class ApplicationFeatureId implements Comparable<ApplicationFeatureId>, S
         }
 
         final StringBuilder buf = new StringBuilder();
-        if(!Strings.isNullOrEmpty(getPackageName())) {
+        if(!_Strings.isNullOrEmpty(getPackageName())) {
             buf.append(getPackageName()).append(".");
         }
         buf.append(getClassName());
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 968adca..a69c93a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -30,8 +30,6 @@ import java.util.stream.Collectors;
 
 import javax.annotation.PostConstruct;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
@@ -43,6 +41,7 @@ import org.apache.isis.applib.services.appfeat.ApplicationMemberType;
 import org.apache.isis.applib.services.config.ConfigurationService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
index 602847a..42d6095 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceInternalDefault.java
@@ -27,8 +27,6 @@ import java.util.Set;
 
 import javax.inject.Inject;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
@@ -40,6 +38,7 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.tree.TreeState;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.memento._Mementos.SerializingAdapter;
 import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
index c9bfc60..538560e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -27,7 +27,6 @@ import javax.annotation.PostConstruct;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 
-import org.apache.isis.commons.internal.collections._Maps;
 import com.google.common.io.Resources;
 
 import org.slf4j.Logger;
@@ -43,6 +42,7 @@ import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Arrays;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 
 @DomainService(
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index 2be6e0f..f19ea99 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -23,8 +23,6 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Stream;
 
-import com.google.common.base.Strings;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,6 +50,7 @@ import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.commons.internal.base._Casts;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -489,7 +488,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
             try {
                 // try...finally because CSS class may vary by object, and we pass in only null
                 final String cssClass = cssClassFacet.cssClass(null);
-                if(!Strings.isNullOrEmpty(cssClass)) {
+                if(!_Strings.isNullOrEmpty(cssClass)) {
                     hasCssClass.setCssClass(cssClass);
                 }
             } catch(Exception ignore) {
@@ -505,7 +504,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         if (isDoOp(cssClassFaFacet)) {
             final String cssClassFa = cssClassFaFacet.value();
             final CssClassFaPosition position = cssClassFaFacet.getPosition();
-            if(!Strings.isNullOrEmpty(cssClassFa)) {
+            if(!_Strings.isNullOrEmpty(cssClassFa)) {
                 hasCssClassFa.setCssClassFa(cssClassFa);
                 hasCssClassFa.setCssClassFaPosition(position.toActionLayoutPosition());
             }
@@ -518,7 +517,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         final DefaultViewFacet defaultViewFacet = facetHolder.getFacet(DefaultViewFacet.class);
         if(isDoOp(defaultViewFacet)) {
             final String defaultView = defaultViewFacet.value();
-            if(!Strings.isNullOrEmpty(defaultView)) {
+            if(!_Strings.isNullOrEmpty(defaultView)) {
                 collectionLayoutData.setDefaultView(defaultView);
             }
         }
@@ -530,7 +529,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         final DescribedAsFacet describedAsFacet = facetHolder.getFacet(DescribedAsFacet.class);
         if(isDoOp(describedAsFacet)) {
             final String describedAs = describedAsFacet.value();
-            if(!Strings.isNullOrEmpty(describedAs)) {
+            if(!_Strings.isNullOrEmpty(describedAs)) {
                 hasDescribedAs.setDescribedAs(describedAs);
             }
         }
@@ -578,7 +577,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
         if(isDoOp(namedFacet)) {
             final String named = namedFacet.value();
-            if(!Strings.isNullOrEmpty(named)){
+            if(!_Strings.isNullOrEmpty(named)){
                 hasNamed.setNamed(named);
             }
             final boolean escaped = namedFacet.escaped();
@@ -606,7 +605,7 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         final PluralFacet pluralFacet = facetHolder.getFacet(PluralFacet.class);
         if(isDoOp(pluralFacet)) {
             final String plural = pluralFacet.value();
-            if(!Strings.isNullOrEmpty(plural)) {
+            if(!_Strings.isNullOrEmpty(plural)) {
                 domainObjectLayoutData.setPlural(plural);
             }
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
index 16817dd..d1b3567 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
@@ -93,38 +93,14 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         final BS3Row propsRow = new BS3Row();
         bs3Grid.getRows().add(propsRow);
 
-//TODO [ahuber] marked for removal (breaks legacy functionality) ...
-//        final MemberGroupLayoutFacet memberGroupLayoutFacet =
-//                objectSpec.getFacet(MemberGroupLayoutFacet.class);
-//        if(memberGroupLayoutFacet != null) {
-//            // if have @MemberGroupLayout (or equally, a .layout.json file)
-//            final MemberGroupLayout.ColumnSpans columnSpans = memberGroupLayoutFacet.getColumnSpans();
-//            addFieldSetsToColumn(propsRow, columnSpans.getLeft(), memberGroupLayoutFacet.getLeft(), true);
-//            addFieldSetsToColumn(propsRow, columnSpans.getMiddle(), memberGroupLayoutFacet.getMiddle(), false);
-//            addFieldSetsToColumn(propsRow, columnSpans.getRight(), memberGroupLayoutFacet.getRight(), false);
-//
-//            final BS3Col col = new BS3Col();
-//            final int collectionSpan = columnSpans.getCollections();
-//            col.setUnreferencedCollections(true);
-//            col.setSpan(collectionSpan > 0? collectionSpan: 12);
-//            propsRow.getCols().add(col);
-//
-//            // will already be sorted per @MemberOrder
-//            final List<OneToManyAssociation> collections = objectSpec.getCollections(Contributed.INCLUDED);
-//            for (OneToManyAssociation collection : collections) {
-//                col.getCollections().add(new CollectionLayoutData(collection.getId()));
-//            }
-//        } else 
-        {
-
-            // if no layout hints other than @MemberOrder
-            addFieldSetsToColumn(propsRow, 4, Arrays.asList("General"), true);
+        // if no layout hints other than @MemberOrder
+        addFieldSetsToColumn(propsRow, 4, Arrays.asList("General"), true);
 
-            final BS3Col col = new BS3Col();
-            col.setUnreferencedCollections(true);
-            col.setSpan(12);
-            propsRow.getCols().add(col);
-        }
+        final BS3Col col = new BS3Col();
+        col.setUnreferencedCollections(true);
+        col.setSpan(12);
+        propsRow.getCols().add(col);
+            
         return bs3Grid;
     }
 
@@ -397,7 +373,7 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
 
                 Collections.sort(associations, ObjectMember.Comparators.byMemberOrderSequence());
                 addPropertiesTo(fieldSet,
-                        _Lists.transform(associations, ObjectAssociation::getId),
+                        _Lists.map(associations, ObjectAssociation::getId),
                         propertyLayoutDataById);
             }
 
@@ -421,13 +397,13 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
 
         if(!missingCollectionIds.isEmpty()) {
             final List<OneToManyAssociation> sortedCollections = 
-                    _Lists.transform(missingCollectionIds, oneToManyAssociationById::get);
+                    _Lists.map(missingCollectionIds, oneToManyAssociationById::get);
             {
                 sortedCollections.sort(ObjectMember.Comparators.byMemberOrderSequence());
             }
             
             final List<String> sortedMissingCollectionIds = 
-                    _Lists.transform(sortedCollections, ObjectAssociation::getId);
+                    _Lists.map(sortedCollections, ObjectAssociation::getId);
             
             final BS3TabGroup bs3TabGroup = result.tabGroupForUnreferencedCollectionsRef;
             if(bs3TabGroup != null) {
@@ -448,7 +424,7 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
         final List<String> associatedActionIds = _Lists.newArrayList();
 
         final List<ObjectAction> sortedPossiblyMissingActions = 
-                _Lists.transform(possiblyMissingActionIds, objectActionById::get);
+                _Lists.map(possiblyMissingActionIds, objectActionById::get);
         {
             sortedPossiblyMissingActions
                 .sort(ObjectMember.Comparators.byMemberOrderSequence());
@@ -456,7 +432,7 @@ public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
                 
 
         final List<String> sortedPossiblyMissingActionIds =
-                _Lists.transform(sortedPossiblyMissingActions, ObjectMember::getId);
+                _Lists.map(sortedPossiblyMissingActions, ObjectMember::getId);
 
         for (String actionId : sortedPossiblyMissingActionIds) {
             final ObjectAction oa = objectActionById.get(actionId);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
index 0e6eeb7..918b5b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/metamodel/DomainMemberDefault.java
@@ -24,10 +24,10 @@ import java.util.List;
 import java.util.SortedSet;
 
 import com.google.common.base.Joiner;
-import com.google.common.base.Strings;
-import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.services.metamodel.DomainMember;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
@@ -212,7 +212,7 @@ public class DomainMemberDefault implements DomainMember {
     }
 
     private static void addIfNotEmpty(final String str, final SortedSet<String> set) {
-        if(!Strings.isNullOrEmpty(str)) {
+        if(!_Strings.isNullOrEmpty(str)) {
             set.add(str);
         }
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/Generation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/Generation.java
index ea9d7dc..5f82cac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/Generation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/Generation.java
@@ -26,15 +26,15 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import com.google.common.base.Joiner;
-import com.google.common.base.Strings;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Ordering;
-import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.swagger.SwaggerService;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceFacet;
@@ -475,7 +475,7 @@ class Generation {
                 .parameter(
                         new QueryParameter()
                         .name(parameter.getId())
-                        .description(Util.roSpec("2.9.1") + (!Strings.isNullOrEmpty(parameter.getDescription())? (": " + parameter.getDescription()) : ""))
+                        .description(Util.roSpec("2.9.1") + (!_Strings.isNullOrEmpty(parameter.getDescription())? (": " + parameter.getDescription()) : ""))
                         .required(false)
                         .type("string")
                         );
@@ -594,7 +594,7 @@ class Generation {
                 .parameter(
                         new QueryParameter()
                         .name(parameter.getId())
-                        .description(Util.roSpec("2.9.1") + (!Strings.isNullOrEmpty(parameter.getDescription())? (": " + parameter.getDescription()) : ""))
+                        .description(Util.roSpec("2.9.1") + (!_Strings.isNullOrEmpty(parameter.getDescription())? (": " + parameter.getDescription()) : ""))
                         .required(false)
                         .type("string")
                         );
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
index c822a5b..280497a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/internal/ValuePropertyFactory.java
@@ -27,13 +27,12 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.function.Supplier;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.context._Plugin;
 import org.apache.isis.core.metamodel.services.swagger.internal.ValuePropertyPlugin.ValuePropertyCollector;
 
@@ -118,7 +117,7 @@ public class ValuePropertyFactory {
             final StringProperty property = new StringProperty();
             final Object[] enumConstants = cls.getEnumConstants();
 
-            final List<String> enumNames = _Lists.transform(
+            final List<String> enumNames = _Lists.map(
                     Arrays.asList(enumConstants), input->((Enum<?>)input).name());
             property.setEnum(enumNames);
             return property;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Instance.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Instance.java
index d346ed3..ea387ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Instance.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/Instance.java
@@ -19,13 +19,13 @@
 
 package org.apache.isis.core.metamodel.spec;
 
+import static org.apache.isis.commons.internal.base._With.requires;
+
 import java.util.function.Supplier;
 
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 
-import static org.apache.isis.commons.internal.base._With.requires;
-
 /**
  * Represents an instance of some element of the meta-model.
  *
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 9ee7f01..eb4956e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -20,12 +20,11 @@ package org.apache.isis.core.metamodel.spec.feature;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.function.Predicate;
 import java.util.stream.Stream;
 
-import com.google.common.base.Objects;
-import com.google.common.base.Strings;
 import com.google.common.collect.FluentIterable;
 
 import org.apache.isis.applib.Identifier;
@@ -420,8 +419,8 @@ public interface ObjectAction extends ObjectMember {
                     return false;
                 }
                 final String memberOrderNameLowerCase = associatedMemberName.toLowerCase();
-                return memberName != null && Objects.equal(memberName.toLowerCase(), memberOrderNameLowerCase) ||
-                        memberId   != null && Objects.equal(memberId.toLowerCase(), memberOrderNameLowerCase);
+                return memberName != null && Objects.equals(memberName.toLowerCase(), memberOrderNameLowerCase) ||
+                        memberId   != null && Objects.equals(memberId.toLowerCase(), memberOrderNameLowerCase);
             }
         }
 
@@ -507,11 +506,11 @@ public interface ObjectAction extends ObjectMember {
             final String assocId = association.getId();
             return (ObjectAction t) -> {
                     final MemberOrderFacet memberOrderFacet = t.getFacet(MemberOrderFacet.class);
-                    if (memberOrderFacet == null || Strings.isNullOrEmpty(memberOrderFacet.name())) {
+                    if (memberOrderFacet == null || _Strings.isNullOrEmpty(memberOrderFacet.name())) {
                         return false;
                     }
                     final String memberOrderName = memberOrderFacet.name().toLowerCase();
-                    if (Strings.isNullOrEmpty(memberOrderName)) {
+                    if (_Strings.isNullOrEmpty(memberOrderName)) {
                         return false;
                     }
                     return memberOrderName.equalsIgnoreCase(assocName) || memberOrderName.equalsIgnoreCase(assocId);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/InjectorMethodEvaluatorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/InjectorMethodEvaluatorDefault.java
index 5288109..b5cbb6c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/InjectorMethodEvaluatorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/InjectorMethodEvaluatorDefault.java
@@ -22,11 +22,10 @@ package org.apache.isis.core.metamodel.specloader;
 import java.lang.reflect.Method;
 import java.util.Map;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
 
 public final class InjectorMethodEvaluatorDefault implements InjectorMethodEvaluator {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
index dcd7666..c5ec38e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
@@ -23,11 +23,10 @@ import java.util.Map;
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.MethodExtensions;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
index 82f61e0..a55ea74 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationCacheDefault.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.Map;
 
 import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
index 6b6be79..4165684 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
@@ -24,10 +24,6 @@ import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 import java.util.stream.Stream;
 
-import javax.ws.rs.HEAD;
-
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,6 +32,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.ensure.Assert;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ClassSubstitutor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ClassSubstitutor.java
index f122dc2..0f29c53 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ClassSubstitutor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/classsubstitutor/ClassSubstitutor.java
@@ -21,9 +21,8 @@ package org.apache.isis.core.metamodel.specloader.classsubstitutor;
 
 import java.util.Set;
 
-import org.apache.isis.commons.internal.collections._Sets;
-
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.lang.ClassUtil;
 
 /**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
index b9ba215..2195c59 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
@@ -25,9 +25,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
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 deb06b3..92e67fc 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
@@ -21,11 +21,10 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.Callable;
 import java.util.function.Predicate;
 
-import com.google.common.base.Objects;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -225,7 +224,7 @@ public class ObjectActionDefault extends ObjectMemberAbstract implements ObjectA
         final List<ObjectActionParameter> allParameters = getParameters();
         for (int i = 0; i < allParameters.size(); i++) {
             final ObjectActionParameter param = allParameters.get(i);
-            if (Objects.equal(paramId, param.getId())) {
+            if (Objects.equals(paramId, param.getId())) {
                 return param;
             }
         }
@@ -237,7 +236,7 @@ public class ObjectActionDefault extends ObjectMemberAbstract implements ObjectA
         final List<ObjectActionParameter> allParameters = getParameters();
         for (int i = 0; i < allParameters.size(); i++) {
             final ObjectActionParameter param = allParameters.get(i);
-            if (Objects.equal(paramName, param.getName())) {
+            if (Objects.equals(paramName, param.getName())) {
                 return param;
             }
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
index f540560..b424fec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionMixedIn.java
@@ -18,10 +18,9 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -90,7 +89,7 @@ public class ObjectActionMixedIn extends ObjectActionDefault implements MixedInM
         // adjust name if necessary
         final String name = getName();
 
-        if(Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
+        if(_Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
             String memberName = determineNameFrom(mixinAction);
             FacetUtil.addFacet(new NamedFacetInferred(memberName, facetHolder));
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index 51f561e..12f7848 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -18,10 +18,9 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -119,7 +118,7 @@ public class OneToManyAssociationMixedIn extends OneToManyAssociationDefault imp
                 // adjust name if necessary
                 final String name = getName();
 
-                if(Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
+                if(_Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
                     String memberName = ObjectActionMixedIn.determineNameFrom(mixinAction);
                     FacetUtil.addFacet(new NamedFacetInferred(memberName, facetHolder));
                 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index 14d25c6..62eec42 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -18,10 +18,9 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -98,7 +97,7 @@ public class OneToOneAssociationMixedIn extends OneToOneAssociationDefault imple
         // adjust name if necessary
         final String name = getName();
 
-        if(Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
+        if(_Strings.isNullOrEmpty(name) || name.equalsIgnoreCase(mixinMethodName)) {
             String memberName = ObjectActionMixedIn.determineNameFrom(mixinAction);
             FacetUtil.addFacet(new NamedFacetInferred(memberName, facetHolder));
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 5cc12d3..e62d2f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -25,14 +25,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckModuleExtent.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckModuleExtent.java
index 6ce193c..ebf01be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckModuleExtent.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckModuleExtent.java
@@ -25,13 +25,13 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import com.google.common.base.Joiner;
-import org.apache.isis.commons.internal.collections._Maps;
 
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.AppManifest2;
 import org.apache.isis.applib.Module;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public class MetaModelValidatorToCheckModuleExtent extends MetaModelValidatorComposite {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckObjectSpecIdsUnique.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckObjectSpecIdsUnique.java
index 32514ff..a810e8d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckObjectSpecIdsUnique.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckObjectSpecIdsUnique.java
@@ -23,9 +23,9 @@ import java.util.Map;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.FluentIterable;
-import org.apache.isis.commons.internal.collections._Maps;
 
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandard.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandard.java
index 8114d2c..cf95e40 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandard.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandard.java
@@ -28,10 +28,10 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import com.google.common.collect.Collections2;
-import org.apache.isis.commons.internal.collections._Maps;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.exceptions.IsisException;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
index 62c543a..f390bb4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
@@ -40,8 +40,6 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
-import org.apache.isis.commons.internal.collections._Maps;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
@@ -52,6 +50,7 @@ import org.w3c.dom.NodeList;
 import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot;
 import org.apache.isis.applib.snapshot.SnapshottableWithInclusions;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/discriminator/JdoDiscriminatorAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/discriminator/JdoDiscriminatorAnnotationFacetFactory.java
index ab6734c..1db5678 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/discriminator/JdoDiscriminatorAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/discriminator/JdoDiscriminatorAnnotationFacetFactory.java
@@ -21,8 +21,7 @@ package org.apache.isis.objectstore.jdo.metamodel.facets.object.discriminator;
 
 import javax.jdo.annotations.Discriminator;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.JdoMetamodelUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -54,7 +53,7 @@ public class JdoDiscriminatorAnnotationFacetFactory extends FacetFactoryAbstract
             return;
         }
         String annotationValueAttribute = annotation.value();
-        if(!Strings.isNullOrEmpty(annotationValueAttribute)) {
+        if(!_Strings.isNullOrEmpty(annotationValueAttribute)) {
             FacetUtil.addFacet(new ObjectSpecIdFacetInferredFromJdoDiscriminatorValueAnnotation(annotationValueAttribute, processClassContext.getFacetHolder()));
         } else {
             final FacetHolder facetHolder = processClassContext.getFacetHolder();
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
index 4bdff6a..3327a53 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableAnnotationFacetFactory.java
@@ -22,8 +22,7 @@ package org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapab
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel.JdoMetamodelUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -51,11 +50,11 @@ public class JdoPersistenceCapableAnnotationFacetFactory extends FacetFactoryAbs
             return;
         }
         String annotationSchemaAttribute = annotation.schema();
-        if(Strings.isNullOrEmpty(annotationSchemaAttribute)) {
+        if(_Strings.isNullOrEmpty(annotationSchemaAttribute)) {
             annotationSchemaAttribute = null;
         }
         String annotationTableAttribute = annotation.table();
-        if (Strings.isNullOrEmpty(annotationTableAttribute)) {
+        if (_Strings.isNullOrEmpty(annotationTableAttribute)) {
             annotationTableAttribute = cls.getSimpleName();
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index 1b6cac1..ce28259 100644
--- a/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -24,8 +24,7 @@ import java.util.stream.Stream;
 import javax.jdo.annotations.Column;
 import javax.jdo.annotations.IdentityType;
 
-import com.google.common.base.Strings;
-
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.JdoMetamodelUtil;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
@@ -105,7 +104,7 @@ public class MandatoryFromJdoColumnAnnotationFacetFactory extends FacetFactoryAb
 
         final String allowsNull = annotation != null ? annotation.allowsNull() : null;
 
-        if(Strings.isNullOrEmpty(allowsNull)) {
+        if(_Strings.isNullOrEmpty(allowsNull)) {
             final Class<?> returnType = processMethodContext.getMethod().getReturnType();
             // per JDO spec
             return returnType != null && returnType.isPrimitive();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
index 5a80443..4e7f31e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
@@ -91,7 +91,7 @@ public class TitleFacetViaTitleAnnotationTest {
 
         TitleAnnotationFacetFactory.sort(evaluatorList);
 
-        final List<TitleComponent> components = _Lists.transform(evaluatorList, TitleComponent.FROM_EVALUATORS);
+        final List<TitleComponent> components = _Lists.map(evaluatorList, TitleComponent.FROM_EVALUATORS);
         final TitleFacetViaTitleAnnotation facet = new TitleFacetViaTitleAnnotation(components, mockFacetHolder, mockAdapterManager);
         final NormalDomainObject normalPojo = new NormalDomainObject();
         final Sequence sequence = context.sequence("in-title-element-order");
@@ -121,7 +121,7 @@ public class TitleFacetViaTitleAnnotationTest {
         final List<Annotations.Evaluator<Title>> evaluators = Annotations
                 .getEvaluators(DomainObjectWithProblemInItsAnnotatedTitleMethod.class, Title.class);
 
-        final List<TitleComponent> components = _Lists.transform(evaluators, TitleComponent.FROM_EVALUATORS);
+        final List<TitleComponent> components = _Lists.map(evaluators, TitleComponent.FROM_EVALUATORS);
         final TitleFacetViaTitleAnnotation facet = new TitleFacetViaTitleAnnotation(components, mockFacetHolder, mockAdapterManager);
         final DomainObjectWithProblemInItsAnnotatedTitleMethod screwedPojo = new DomainObjectWithProblemInItsAnnotatedTitleMethod();
         context.checking(new Expectations() {
diff --git a/core/plugins/discovery-reflections/src/main/java/org/apache/isis/core/plugins/classdiscovery/reflections/ReflectManifest.java b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/core/plugins/classdiscovery/reflections/ReflectManifest.java
index 28c66c3..c92a556 100644
--- a/core/plugins/discovery-reflections/src/main/java/org/apache/isis/core/plugins/classdiscovery/reflections/ReflectManifest.java
+++ b/core/plugins/discovery-reflections/src/main/java/org/apache/isis/core/plugins/classdiscovery/reflections/ReflectManifest.java
@@ -25,8 +25,6 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
 import org.reflections.vfs.SystemDir;
 import org.reflections.vfs.Vfs;
 
@@ -67,7 +65,7 @@ class ReflectManifest {
         private final List<String> fileEndings;
 
         private EmptyIfFileEndingsUrlType(final String... fileEndings) {
-            this.fileEndings = Lists.newArrayList(fileEndings);
+            this.fileEndings = Arrays.asList(fileEndings);
         }
 
         @Override
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN4.java
index f6a104f..c037d47 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN4.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.applib.services.jdosupport;
 
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
+
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -27,27 +29,29 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
+import java.util.stream.Collectors;
 
 import javax.jdo.Extent;
 import javax.jdo.PersistenceManager;
 import javax.jdo.datastore.JDOConnection;
 
+import com.google.common.collect.Maps;
+
+import org.datanucleus.api.jdo.JDOPersistenceManager;
+import org.datanucleus.query.typesafe.BooleanExpression;
+import org.datanucleus.query.typesafe.TypesafeQuery;
+
 import org.apache.isis.applib.FatalException;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.runtime.persistence.ObjectPersistenceException;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
-import org.datanucleus.api.jdo.JDOPersistenceManager;
-import org.datanucleus.query.typesafe.BooleanExpression;
-import org.datanucleus.query.typesafe.TypesafeQuery;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 
 /**
@@ -113,7 +117,7 @@ public class IsisJdoSupportDN4 implements IsisJdoSupport_v3_1 {
     }
 
     private static List<Map<String, Object>> executeSql(final java.sql.Connection connection, final String sql) {
-        final List<Map<String,Object>> rows = Lists.newArrayList();
+        final List<Map<String,Object>> rows = _Lists.newArrayList();
 
         try(Statement statement = connection.createStatement()) {
             final ResultSet rs = statement.executeQuery(sql);
@@ -152,7 +156,7 @@ public class IsisJdoSupportDN4 implements IsisJdoSupport_v3_1 {
     public void deleteAll(final Class<?>... pcClasses) {
         for (final Class<?> pcClass : pcClasses) {
             final Extent<?> extent = getJdoPersistenceManager().getExtent(pcClass);
-            final List<Object> instances = Lists.newArrayList(extent.iterator());
+            final List<Object> instances = stream(extent).collect(Collectors.toList()); 
 
             // temporarily disable concurrency checking while this method is performed
             try {
@@ -190,7 +194,7 @@ public class IsisJdoSupportDN4 implements IsisJdoSupport_v3_1 {
 
     private static <T> List<T> executeListAndClose(final TypesafeQuery<T> query) {
         final List<T> elements = query.executeList();
-        final List<T> list = Lists.newArrayList(elements);
+        final List<T> list = _Lists.newArrayList(elements);
         query.closeAll();
         return list;
     }
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata4.java
index f547855..34544a4 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata4.java
@@ -34,7 +34,7 @@ import org.datanucleus.store.encryption.ConnectionEncryptionProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 /**
  * Implementation note: the methods in this class are <tt>protected</tt> to allow for easy subclassing.
@@ -57,7 +57,7 @@ public class CreateSchemaObjectFromClassMetadata4 implements MetaDataListener, D
     public void loaded(final AbstractClassMetaData cmd) {
 
         final String schemaName = cmd.getSchema();
-        if(Strings.isNullOrEmpty(schemaName)) {
+        if(_Strings.isNullOrEmpty(schemaName)) {
             return;
         }
 
@@ -69,7 +69,7 @@ public class CreateSchemaObjectFromClassMetadata4 implements MetaDataListener, D
         final String userName = properties.get("javax.jdo.option.ConnectionUserName");
         final String password = getConnectionPassword();
 
-        if(Strings.isNullOrEmpty(driverName) || Strings.isNullOrEmpty(url)) {
+        if(_Strings.isNullOrEmpty(driverName) || _Strings.isNullOrEmpty(url)) {
             LOG.warn("Unable to create schema due to missing configuration javax.jdo.option.Connection*");
             return;
         }
@@ -102,7 +102,7 @@ public class CreateSchemaObjectFromClassMetadata4 implements MetaDataListener, D
      */
     protected boolean skip(final AbstractClassMetaData cmd, final Statement statement) throws SQLException {
         final String schemaName = cmd.getSchema();
-        if(Strings.isNullOrEmpty(schemaName)) {
+        if(_Strings.isNullOrEmpty(schemaName)) {
             return true;
         }
         final String sql = buildSqlToCheck(cmd);
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index cf20c0f..ad5ec30 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -34,7 +34,7 @@ import org.apache.isis.objectstore.jdo.datanucleus.metamodel.JdoPropertyUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQueryProcessorAbstract<PersistenceQueryFindUsingApplibQueryDefault> {
@@ -85,7 +85,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
 
         try {
             final List<?> results = (List<?>) jdoQuery.execute();
-            return Lists.newArrayList(results);
+            return _Lists.newArrayList(results);
         } finally {
             jdoQuery.closeAll();
         }
@@ -122,7 +122,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
                     cardinality == QueryCardinality.MULTIPLE
                     ? results
                             : firstIfAnyOf(results);
-            return Lists.newArrayList(resultsToReturn);
+            return _Lists.newArrayList(resultsToReturn);
         } finally {
             jdoQuery.closeAll();
         }
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index e7a7182..7bce528 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession4;
 import org.datanucleus.enhancement.Persistable;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQuery>
 implements PersistenceQueryProcessor<T> {
@@ -48,7 +48,7 @@ implements PersistenceQueryProcessor<T> {
      * to be called.
      */
     protected List<ObjectAdapter> loadAdapters(final List<?> pojos) {
-        final List<ObjectAdapter> adapters = Lists.newArrayList();
+        final List<ObjectAdapter> adapters = _Lists.newArrayList();
         for (final Object pojo : pojos) {
             // ought not to be necessary, however for some queries it seems that the
             // lifecycle listener is not called
diff --git a/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index 88c3a43..2466ce8 100644
--- a/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/plugins/jdo-datanucleus-4/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.runtime.system;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.datanucleus.enhancement.Persistable;
 import org.jmock.Expectations;
@@ -102,7 +102,7 @@ public class ObjectMemberAbstractTest {
         org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
 
         stubConfiguration = new IsisConfigurationDefault();
-        stubServicesInjector = new ServicesInjector(Lists.<Object>newArrayList(
+        stubServicesInjector = new ServicesInjector(_Lists.<Object>of(
                 mockSpecificationLoader, mockSpecificationLoader, mockPersistenceSessionServiceInternal), stubConfiguration);
 
         context.checking(new Expectations() {{
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN5.java
index f418f65..dab785b 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupportDN5.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.applib.services.jdosupport;
 
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
+
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -27,6 +29,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
+import java.util.stream.Collectors;
 
 import javax.jdo.Extent;
 import javax.jdo.JDOQLTypedQuery;
@@ -45,7 +48,7 @@ import org.apache.isis.core.runtime.persistence.ObjectPersistenceException;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 
@@ -112,7 +115,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
     }
 
     private static List<Map<String, Object>> executeSql(final java.sql.Connection connection, final String sql) {
-        final List<Map<String,Object>> rows = Lists.newArrayList();
+        final List<Map<String,Object>> rows = _Lists.newArrayList();
 
         try(Statement statement = connection.createStatement()) {
             final ResultSet rs = statement.executeQuery(sql);
@@ -151,7 +154,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
     public void deleteAll(final Class<?>... pcClasses) {
         for (final Class<?> pcClass : pcClasses) {
             final Extent<?> extent = getJdoPersistenceManager().getExtent(pcClass);
-            final List<Object> instances = Lists.newArrayList(extent.iterator());
+            final List<Object> instances = stream(extent).collect(Collectors.toList());
 
             // temporarily disable concurrency checking while this method is performed
             try {
@@ -189,7 +192,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
     private static <T> List<T> executeListAndClose(final JDOQLTypedQuery<T> query) {
         final List<T> elements = query.executeList();
-        final List<T> list = Lists.newArrayList(elements);
+        final List<T> list = _Lists.newArrayList(elements);
         query.closeAll();
         return list;
     }
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
index ae68c9b..e8517fe 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
@@ -25,7 +25,7 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusPropertiesAware;
 import org.datanucleus.ClassLoaderResolver;
@@ -57,7 +57,7 @@ public class CreateSchemaObjectFromClassMetadata implements MetaDataListener, Da
     public void loaded(final AbstractClassMetaData cmd) {
 
         final String schemaName = cmd.getSchema();
-        if(Strings.isNullOrEmpty(schemaName)) {
+        if(_Strings.isNullOrEmpty(schemaName)) {
             return;
         }
 
@@ -69,7 +69,7 @@ public class CreateSchemaObjectFromClassMetadata implements MetaDataListener, Da
         final String userName = properties.get("javax.jdo.option.ConnectionUserName");
         final String password = getConnectionPassword();
 
-        if(Strings.isNullOrEmpty(driverName) || Strings.isNullOrEmpty(url)) {
+        if(_Strings.isNullOrEmpty(driverName) || _Strings.isNullOrEmpty(url)) {
             LOG.warn("Unable to create schema due to missing configuration javax.jdo.option.Connection*");
             return;
         }
@@ -102,7 +102,7 @@ public class CreateSchemaObjectFromClassMetadata implements MetaDataListener, Da
      */
     protected boolean skip(final AbstractClassMetaData cmd, final Statement statement) throws SQLException {
         final String schemaName = cmd.getSchema();
-        if(Strings.isNullOrEmpty(schemaName)) {
+        if(_Strings.isNullOrEmpty(schemaName)) {
             return true;
         }
         final String sql = buildSqlToCheck(cmd);
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index f00e94c..ee6e314 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -24,7 +24,7 @@ import java.util.Map;
 
 import javax.jdo.Query;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 import org.slf4j.Logger;
@@ -86,7 +86,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
 
         try {
             final List<?> results = (List<?>) jdoQuery.execute();
-            return Lists.newArrayList(results);
+            return _Lists.newArrayList(results);
         } finally {
             jdoQuery.closeAll();
         }
@@ -123,7 +123,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
                     cardinality == QueryCardinality.MULTIPLE
                     ? results
                             : firstIfAnyOf(results);
-            return Lists.newArrayList(resultsToReturn);
+            return _Lists.newArrayList(resultsToReturn);
         } finally {
             jdoQuery.closeAll();
         }
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index 0c0f2a3..3dfb4b8 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession5;
 import org.datanucleus.enhancement.Persistable;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQuery>
 implements PersistenceQueryProcessor<T> {
@@ -48,7 +48,7 @@ implements PersistenceQueryProcessor<T> {
      * to be called.
      */
     protected List<ObjectAdapter> loadAdapters(final List<?> pojos) {
-        final List<ObjectAdapter> adapters = Lists.newArrayList();
+        final List<ObjectAdapter> adapters = _Lists.newArrayList();
         for (final Object pojo : pojos) {
             // ought not to be necessary, however for some queries it seems that the
             // lifecycle listener is not called
diff --git a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index 88c3a43..2466ce8 100644
--- a/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/plugins/jdo-datanucleus-5/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.core.runtime.system;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.datanucleus.enhancement.Persistable;
 import org.jmock.Expectations;
@@ -102,7 +102,7 @@ public class ObjectMemberAbstractTest {
         org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
 
         stubConfiguration = new IsisConfigurationDefault();
-        stubServicesInjector = new ServicesInjector(Lists.<Object>newArrayList(
+        stubServicesInjector = new ServicesInjector(_Lists.<Object>of(
                 mockSpecificationLoader, mockSpecificationLoader, mockPersistenceSessionServiceInternal), stubConfiguration);
 
         context.checking(new Expectations() {{
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java
index 9641e85..4b16c41 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.security.shiro;
 
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
+
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -33,10 +35,6 @@ import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
 import javax.naming.ldap.LdapContext;
 
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import org.apache.isis.commons.internal.collections._Sets;
-
 import org.apache.shiro.authz.AuthorizationInfo;
 import org.apache.shiro.authz.SimpleAuthorizationInfo;
 import org.apache.shiro.config.Ini;
@@ -46,6 +44,8 @@ import org.apache.shiro.realm.ldap.LdapUtils;
 import org.apache.shiro.subject.PrincipalCollection;
 import org.apache.shiro.util.StringUtils;
 
+import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.security.shiro.permrolemapper.PermissionToRoleMapper;
 import org.apache.isis.security.shiro.permrolemapper.PermissionToRoleMapperFromIni;
 import org.apache.isis.security.shiro.permrolemapper.PermissionToRoleMapperFromString;
@@ -182,7 +182,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
      */
     private String userObjectClass;
 
-    private final Map<String, String> rolesByGroup = Maps.newLinkedHashMap();
+    private final Map<String, String> rolesByGroup = _Maps.newLinkedHashMap();
 
     private PermissionToRoleMapper permissionToRoleMapper;
 
@@ -284,7 +284,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
             Set<String> extractedAttributeP, Set<String> permissionByAttributeP)
                     throws NamingException {
         final NamingEnumeration<? extends Attribute> attributeEnum = group.getAttributes().getAll();
-        Map<String, Set<String>> keyValues = Maps.newHashMap();
+        Map<String, Set<String>> keyValues = _Maps.newHashMap();
         while (attributeEnum.hasMore()) {
             final Attribute attr = attributeEnum.next();
             if (extractedAttributeP.contains(attr.getID())) {
@@ -362,7 +362,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
     private Set<String> permsFor(Set<String> roleNames) {
         Set<String> perms = _Sets.newLinkedHashSet(); // preserve order
         for (String role : roleNames) {
-            List<String> permsForRole = getPermissionsByRole().get(role);
+            Set<String> permsForRole = getPermissionsByRole().get(role);
             if (permsForRole != null) {
                 perms.addAll(permsForRole);
             }
@@ -408,7 +408,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
      * Retrieves permissions by role set using either
      * {@link #setPermissionsByRole(String)} or {@link #setResourcePath(String)}.
      */
-    private Map<String, List<String>> getPermissionsByRole() {
+    private Map<String, Set<String>> getPermissionsByRole() {
         if (permissionToRoleMapper == null) {
             throw new IllegalStateException("Permissions by role not yet set.");
         }
@@ -468,22 +468,22 @@ public class IsisLdapRealm extends JndiLdapRealm {
 
     public void setPermissionByUserAttribute(String permissionByUserAttr) {
         String[] list = permissionByUserAttr.split(",");
-        this.permissionByUserAttribute.addAll(Lists.newArrayList(list));
+        stream(list).forEach(this.permissionByUserAttribute::add);
     }
 
     public void setPermissionByGroupAttribute(String permissionByGroupAttribute) {
         String[] list = permissionByGroupAttribute.split(",");
-        this.permissionByGroupAttribute.addAll(Lists.newArrayList(list));
+        stream(list).forEach(this.permissionByGroupAttribute::add);
     }
 
     public void setUserExtractedAttribute(String userExtractedAttribute) {
         String[] list = userExtractedAttribute.split(",");
-        this.userExtractedAttribute.addAll(Lists.newArrayList(list));
+        stream(list).forEach(this.userExtractedAttribute::add);
     }
 
     public void setGroupExtractedAttribute(String groupExtractedAttribute) {
         String[] list = groupExtractedAttribute.split(",");
-        this.groupExtractedAttribute.addAll(Lists.newArrayList(list));
+        stream(list).forEach(this.groupExtractedAttribute::add);
     }
 
     public void setSearchUserBase(String searchUserBase) {
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
index 23c0d07..d7768a4 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizor.java
@@ -23,7 +23,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.UnavailableSecurityManagerException;
@@ -196,7 +196,7 @@ public class ShiroAuthenticatorOrAuthorizor implements Authenticator, Authorizor
      * somewhere other than Shiro's {@link RealmSecurityManager}.
      */
     protected List<String> getRoles(final Subject subject, final AuthenticationToken token) {
-        final List<String> roles = Lists.newArrayList();
+        final List<String> roles = _Lists.newArrayList();
 
         RealmSecurityManager securityManager = getSecurityManager();
         if(securityManager == null) {
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticationManagerInstaller.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticationManagerInstaller.java
index 639d4fe..977a730 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticationManagerInstaller.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticationManagerInstaller.java
@@ -20,8 +20,7 @@ package org.apache.isis.security.shiro.authentication;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.runtime.authentication.AuthenticationManagerStandardInstallerAbstractForDfltRuntime;
 import org.apache.isis.core.runtime.authentication.standard.Authenticator;
@@ -38,6 +37,6 @@ extends AuthenticationManagerStandardInstallerAbstractForDfltRuntime {
 
     @Override
     protected List<Authenticator> createAuthenticators() {
-        return Lists.<Authenticator> newArrayList(new ShiroAuthenticatorOrAuthorizor(getConfiguration()));
+        return _Lists.<Authenticator> of(new ShiroAuthenticatorOrAuthorizor(getConfiguration()));
     }
 }
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authorization/IsisPermission.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authorization/IsisPermission.java
index e563f8d..db53f66 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authorization/IsisPermission.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/authorization/IsisPermission.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 import org.apache.shiro.authz.Permission;
 import org.apache.shiro.authz.permission.WildcardPermission;
@@ -61,7 +61,7 @@ public class IsisPermission extends WildcardPermission {
         String permissionGroup = vetoingPermission.getPermissionGroup();
         List<IsisPermission> vetoingPermissions = IsisPermission.VETOING_PERMISSIONS.get().get(permissionGroup);
         if(vetoingPermissions == null) {
-            vetoingPermissions = Lists.newArrayList();
+            vetoingPermissions = _Lists.newArrayList();
             IsisPermission.VETOING_PERMISSIONS.get().put(permissionGroup, vetoingPermissions);
         }
         vetoingPermissions.add(vetoingPermission);
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapper.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapper.java
index 02006d0..240c7ed 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapper.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapper.java
@@ -16,11 +16,11 @@
  */
 package org.apache.isis.security.shiro.permrolemapper;
 
-import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface PermissionToRoleMapper {
 
-    Map<String, List<String>> getPermissionsByRole();
+    Map<String, Set<String>> getPermissionsByRole();
 
 }
\ No newline at end of file
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIni.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIni.java
index c6e0586..f124643 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIni.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIni.java
@@ -16,12 +16,10 @@
  */
 package org.apache.isis.security.shiro.permrolemapper;
 
-import java.util.List;
+import java.util.Collections;
 import java.util.Map;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Maps.EntryTransformer;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.apache.shiro.config.Ini;
 import org.apache.shiro.realm.text.IniRealm;
@@ -29,24 +27,26 @@ import org.apache.shiro.util.PermissionUtils;
 
 public class PermissionToRoleMapperFromIni implements PermissionToRoleMapper {
 
-    private final Map<String, List<String>> permissionsByRole;
+    private final Map<String, Set<String>> permissionsByRole;
 
     /**
      * Using the same logic as in {@link IniRealm}.
      */
     public PermissionToRoleMapperFromIni(Ini ini) {
-        Map<String,String> section = ini.getSection(IniRealm.ROLES_SECTION_NAME);
-        this.permissionsByRole = Maps.transformEntries(section, new EntryTransformer<String,String,List<String>>() {
-
-            @Override
-            public List<String> transformEntry(String key, String value) {
-                return Lists.newArrayList(PermissionUtils.toPermissionStrings(value));
-            }
-        });
+        final Map<String, String> section = ini.getSection(IniRealm.ROLES_SECTION_NAME);
+        this.permissionsByRole = Collections.unmodifiableMap(
+                
+                section.entrySet()
+                .stream()
+                .collect(Collectors.toMap(
+                        Map.Entry::getKey, 
+                        entry->PermissionUtils.toPermissionStrings(entry.getValue())))
+                
+                );
     }
 
     @Override
-    public Map<String, List<String>> getPermissionsByRole() {
+    public Map<String, Set<String>> getPermissionsByRole() {
         return permissionsByRole;
     }
 }
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromString.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromString.java
index 6475df0..c6e459b 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromString.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromString.java
@@ -16,23 +16,22 @@
  */
 package org.apache.isis.security.shiro.permrolemapper;
 
-import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
-import com.google.common.collect.Maps;
-
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.security.shiro.util.Util;
 
 public class PermissionToRoleMapperFromString implements PermissionToRoleMapper {
 
-    private final Map<String,List<String>> permissionsByRole = Maps.newLinkedHashMap();
+    private final Map<String, Set<String>> permissionsByRole = _Maps.newLinkedHashMap();
 
     public PermissionToRoleMapperFromString(String permissionsByRoleStr) {
         permissionsByRole.putAll(Util.parse(permissionsByRoleStr));
     }
 
     @Override
-    public Map<String, List<String>> getPermissionsByRole() {
+    public Map<String, Set<String>> getPermissionsByRole() {
         return permissionsByRole;
     }
 
diff --git a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/util/Util.java b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/util/Util.java
index bb2d891..1392989 100644
--- a/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/util/Util.java
+++ b/core/plugins/security-shiro/src/main/java/org/apache/isis/security/shiro/util/Util.java
@@ -20,34 +20,36 @@ package org.apache.isis.security.shiro.util;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 
-import com.google.common.base.Function;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Maps;
 
 public class Util {
 
-    private static final Function<String, String> TRIM = new Function<String,String>() {
-        @Override
-        public String apply(String str) {
-            return str.trim();
-        }
-    };
-
-    public static Map<String, List<String>> parse(String permissionsByRoleStr) {
-        Map<String,List<String>> perms = Maps.newHashMap();
-        for(String roleAndPermsStr: Splitter.on(";").split(permissionsByRoleStr)) {
-            final Iterable<String> split = Splitter.on("=").split(roleAndPermsStr);
-            final String[] roleAndPerms = Iterables.toArray(split, String.class);
-            if(roleAndPerms.length != 2) {
-                continue;
+    public static Map<String, Set<String>> parse(String permissionsByRoleStr) {
+        final Map<String, Set<String>> permsByRole = _Maps.newHashMap();
+        
+        _Strings.splitThenStream(permissionsByRoleStr, ";")
+        .forEach(roleAndPermsStr->{
+            
+            final List<String> roleAndPerms = _Strings.splitThenStream(roleAndPermsStr, "=")
+                    .collect(Collectors.toList());
+            
+            if(roleAndPerms.size() != 2) {
+                return;
             }
-            final String role = roleAndPerms[0].trim();
-            final String permStr = roleAndPerms[1].trim();
-            perms.put(role, Lists.newArrayList(Iterables.transform(Splitter.on(",").split(permStr), TRIM)));
-        }
-        return perms;
+            final String role = roleAndPerms.get(0).trim();
+            final String permStr = roleAndPerms.get(0).trim();
+            
+            final Set<String> perms = _Strings.splitThenStream(permStr, ",")
+                    .map(String::trim)
+                    .collect(Collectors.toSet());
+            
+            permsByRole.put(role, perms);
+        });
+        
+        return permsByRole;
     }
 }
diff --git a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIniTest.java b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIniTest.java
index 4752912..58fd461 100644
--- a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIniTest.java
+++ b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromIniTest.java
@@ -20,25 +20,25 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-import java.util.List;
 import java.util.Map;
-
-import com.google.common.collect.Lists;
+import java.util.Set;
 
 import org.apache.shiro.config.Ini;
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.collections._Sets;
+
 public class PermissionToRoleMapperFromIniTest {
 
     @Test
     public void test() {
         final Ini ini = Ini.fromResourcePath("classpath:org/apache/isis/security/shiro/permrolemapper/my.ini");
-        final Map<String, List<String>> permissionsByRole = 
+        final Map<String, Set<String>> permissionsByRole = 
                 new PermissionToRoleMapperFromIni(ini).getPermissionsByRole();
         
-        assertThat(permissionsByRole.get("role1"), is(equalTo((List<String>)Lists.newArrayList("foo","bar"))));
-        assertThat(permissionsByRole.get("role2"), is(equalTo((List<String>)Lists.newArrayList("fiz:x","bip:bop:*"))));
-        assertThat(permissionsByRole.get("role3"), is(equalTo((List<String>)Lists.newArrayList("*"))));
+        assertThat(permissionsByRole.get("role1"), is(equalTo((Set<String>)_Sets.of("foo","bar"))));
+        assertThat(permissionsByRole.get("role2"), is(equalTo((Set<String>)_Sets.of("fiz:x","bip:bop:*"))));
+        assertThat(permissionsByRole.get("role3"), is(equalTo((Set<String>)_Sets.of("*"))));
         assertThat(permissionsByRole.size(), is(3));
     }
 
diff --git a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromStringTest.java b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromStringTest.java
index 1cf4927..42ebdc6 100644
--- a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromStringTest.java
+++ b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/permrolemapper/PermissionToRoleMapperFromStringTest.java
@@ -22,23 +22,24 @@ import static org.junit.Assert.assertThat;
 
 import java.util.List;
 import java.util.Map;
-
-import com.google.common.collect.Lists;
+import java.util.Set;
 
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.collections._Lists;
+
 public class PermissionToRoleMapperFromStringTest {
 
     @Test
     public void test() {
-        final Map<String, List<String>> permissionsByRole = new PermissionToRoleMapperFromString(
+        final Map<String, Set<String>> permissionsByRole = new PermissionToRoleMapperFromString(
                 "role1 = foo,bar;"
                 + "role2 = fiz:x,bip:bop:* ;"
                 + "role3 = *").getPermissionsByRole();
         
-        assertThat(permissionsByRole.get("role1"), is(equalTo((List<String>)Lists.newArrayList("foo","bar"))));
-        assertThat(permissionsByRole.get("role2"), is(equalTo((List<String>)Lists.newArrayList("fiz:x","bip:bop:*"))));
-        assertThat(permissionsByRole.get("role3"), is(equalTo((List<String>)Lists.newArrayList("*"))));
+        assertThat(permissionsByRole.get("role1"), is(equalTo((List<String>)_Lists.of("foo","bar"))));
+        assertThat(permissionsByRole.get("role2"), is(equalTo((List<String>)_Lists.of("fiz:x","bip:bop:*"))));
+        assertThat(permissionsByRole.get("role3"), is(equalTo((List<String>)_Lists.of("*"))));
         assertThat(permissionsByRole.size(), is(3));
     }
 
diff --git a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/util/UtilTest_parse.java b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/util/UtilTest_parse.java
index f7d436c..bc16010 100644
--- a/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/util/UtilTest_parse.java
+++ b/core/plugins/security-shiro/src/test/java/org/apache/isis/security/shiro/util/UtilTest_parse.java
@@ -23,8 +23,8 @@ import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertThat;
 
-import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.junit.Test;
 
@@ -32,26 +32,26 @@ public class UtilTest_parse {
 
     @Test
     public void testParse() {
-        Map<String, List<String>> perms = Util.parse("user_role = *:ToDoItemsJdo:*:*,*:ToDoItem:*:*;self-install_role = *:ToDoItemsFixturesService:install:*;admin_role = *");
+        Map<String, Set<String>> perms = Util.parse("user_role = *:ToDoItemsJdo:*:*,*:ToDoItem:*:*;self-install_role = *:ToDoItemsFixturesService:install:*;admin_role = *");
         assertThat(perms, is(not(nullValue())));
-        List<String> list = perms.get("user_role");
-        assertThat(list, is(not(nullValue())));
-        assertThat(list.size(), is(2));
-        assertThat(list.get(0), is("*:ToDoItemsJdo:*:*"));
-        assertThat(list.get(1), is("*:ToDoItem:*:*"));
-
-        list = perms.get("self-install_role");
-        assertThat(list, is(not(nullValue())));
-        assertThat(list.size(), is(1));
-        assertThat(list.get(0), is("*:ToDoItemsFixturesService:install:*"));
-
-        list = perms.get("admin_role");
-        assertThat(list, is(not(nullValue())));
-        assertThat(list.size(), is(1));
-        assertThat(list.get(0), is("*"));
-
-        list = perms.get("non-existent_role");
-        assertThat(list, is(nullValue()));
+        Set<String> set = perms.get("user_role");
+        assertThat(set, is(not(nullValue())));
+        assertThat(set.size(), is(2));
+        assertThat(set.contains("*:ToDoItemsJdo:*:*"), is(true));
+        assertThat(set.contains("*:ToDoItem:*:*"), is(true));
+
+        set = perms.get("self-install_role");
+        assertThat(set, is(not(nullValue())));
+        assertThat(set.size(), is(1));
+        assertThat(set.contains("*:ToDoItemsFixturesService:install:*"), is(true));
+
+        set = perms.get("admin_role");
+        assertThat(set, is(not(nullValue())));
+        assertThat(set.size(), is(1));
+        assertThat(set.contains("*"), is(true));
+
+        set = perms.get("non-existent_role");
+        assertThat(set, is(nullValue()));
     }
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
index 8c21478..bb89386 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
@@ -22,18 +22,17 @@ package org.apache.isis.core.runtime.fixtures;
 import java.util.Collections;
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.fixturescripts.events.FixturesInstalledEvent;
-import org.apache.isis.applib.fixturescripts.events.FixturesInstallingEvent;
 import org.apache.isis.applib.fixtures.CompositeFixture;
 import org.apache.isis.applib.fixtures.FixtureType;
 import org.apache.isis.applib.fixtures.InstallableFixture;
 import org.apache.isis.applib.fixtures.LogonFixture;
+import org.apache.isis.applib.fixturescripts.events.FixturesInstalledEvent;
+import org.apache.isis.applib.fixturescripts.events.FixturesInstallingEvent;
 import org.apache.isis.applib.services.eventbus.EventBusService;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ObjectExtensions;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
@@ -54,7 +53,7 @@ public class FixturesInstallerDelegate {
         this.isisSessionFactory = isisSessionFactory;
     }
 
-    private final List<Object> fixtures = Lists.newArrayList();
+    private final List<Object> fixtures = _Lists.newArrayList();
 
     /**
      * Automatically flattens any {@link List}s, recursively (depth-first) if
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
index 6770396..b067cdf 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
@@ -18,21 +18,22 @@
  */
 package org.apache.isis.core.runtime.headless;
 
-import com.google.common.base.Strings;
+import java.io.PrintStream;
+
+import org.joda.time.LocalDate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
+
 import org.apache.isis.applib.Module;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.xactn.TransactionService;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.runtime.headless.logging.LeveledLogger;
 import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.headless.logging.LogStream;
 import org.apache.isis.core.runtime.logging.IsisLoggingConfigurer;
-import org.joda.time.LocalDate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
-
-import java.io.PrintStream;
 
 /**
  * Provides headless access to the system, first bootstrapping the system if required.
@@ -91,7 +92,7 @@ public abstract class HeadlessWithBootstrappingAbstract extends HeadlessAbstract
         }
 
         final Module moduleToUse =
-                !Strings.isNullOrEmpty(moduleFqcn)
+                !_Strings.isNullOrEmpty(moduleFqcn)
                 ? InstanceUtil.createInstance(moduleFqcn, Module.class)
                         : module;
                 this.isisSystemBootstrapper =
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
index 3164a89..dd71a94 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystem.java
@@ -19,7 +19,12 @@
 
 package org.apache.isis.core.runtime.headless;
 
+import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
+
+import java.util.Set;
+
 import com.google.common.base.Joiner;
+
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.fixtures.FixtureClock;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -36,10 +41,6 @@ import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
 import org.apache.isis.core.runtime.systemusinginstallers.IsisComponentProvider;
 
-import java.util.Set;
-
-import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
-
 
 /**
  * Wraps a plain {@link IsisSessionFactoryBuilder}.
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
index 20c6f5e..f725ca4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/IsisSystemBootstrapper.java
@@ -18,6 +18,13 @@
  */
 package org.apache.isis.core.runtime.headless;
 
+import java.util.List;
+
+import javax.jdo.PersistenceManagerFactory;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.AppManifest2;
 import org.apache.isis.applib.AppManifestAbstract2;
@@ -28,15 +35,10 @@ import org.apache.isis.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.headless.logging.LeveledLogger;
+import org.apache.isis.core.runtime.headless.logging.LogConfig;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.jdo.PersistenceManagerFactory;
-import java.util.List;
 
 public class IsisSystemBootstrapper {
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
index 1731ed3..805cb19 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogConfig.java
@@ -18,13 +18,13 @@
  */
 package org.apache.isis.core.runtime.headless.logging;
 
+import static org.slf4j.event.Level.INFO;
+
 import java.io.PrintStream;
 
 import org.slf4j.Logger;
 import org.slf4j.event.Level;
 
-import static org.slf4j.event.Level.INFO;
-
 public class LogConfig {
     private final String loggingPropertyFile;
     private final Level testLoggingLevel;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
index 52f38d1..7c77dc6 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/logging/LogStream.java
@@ -18,12 +18,12 @@
  */
 package org.apache.isis.core.runtime.headless.logging;
 
-import org.slf4j.Logger;
-import org.slf4j.event.Level;
-
 import java.io.OutputStream;
 import java.io.PrintStream;
 
+import org.slf4j.Logger;
+import org.slf4j.event.Level;
+
 public class LogStream extends OutputStream {
 
     private final LeveledLogger logger;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
index 0cd5c3e..0ae5d33 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
@@ -19,6 +19,9 @@
 
 package org.apache.isis.core.runtime.runner.opts;
 
+import static org.apache.isis.core.runtime.runner.Constants.APP_MANIFEST_LONG_OPT;
+import static org.apache.isis.core.runtime.runner.Constants.APP_MANIFEST_OPT;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
@@ -32,9 +35,6 @@ import org.apache.isis.core.runtime.optionhandler.OptionHandlerAbstract;
 import org.apache.isis.core.runtime.runner.Constants;
 import org.apache.isis.core.runtime.system.SystemConstants;
 
-import static org.apache.isis.core.runtime.runner.Constants.APP_MANIFEST_LONG_OPT;
-import static org.apache.isis.core.runtime.runner.Constants.APP_MANIFEST_OPT;
-
 public class OptionHandlerAppManifest extends OptionHandlerAbstract {
 
     private static final Logger LOG = LoggerFactory.getLogger(OptionHandlerAppManifest.class);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerConfiguration.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerConfiguration.java
index 76350af..1405504 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerConfiguration.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerConfiguration.java
@@ -28,8 +28,8 @@ import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 import org.apache.isis.core.commons.config.NotFoundPolicy;
+import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.optionhandler.OptionHandlerAbstract;
 import org.apache.isis.core.runtime.runner.Constants;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerDeploymentType.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerDeploymentType.java
index 31b2a15..61c2edc 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerDeploymentType.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerDeploymentType.java
@@ -19,6 +19,9 @@
 
 package org.apache.isis.core.runtime.runner.opts;
 
+import static org.apache.isis.core.runtime.runner.Constants.TYPE_LONG_OPT;
+import static org.apache.isis.core.runtime.runner.Constants.TYPE_OPT;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
@@ -33,9 +36,6 @@ import org.apache.isis.core.runtime.runner.Constants;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.SystemConstants;
 
-import static org.apache.isis.core.runtime.runner.Constants.TYPE_LONG_OPT;
-import static org.apache.isis.core.runtime.runner.Constants.TYPE_OPT;
-
 public abstract class OptionHandlerDeploymentType extends OptionHandlerAbstract {
 
     private final DeploymentType defaultDeploymentType;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixture.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixture.java
index 6e7210a..e113ae5 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixture.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixture.java
@@ -19,18 +19,19 @@
 
 package org.apache.isis.core.runtime.runner.opts;
 
+import static org.apache.isis.core.runtime.runner.Constants.FIXTURE_LONG_OPT;
+import static org.apache.isis.core.runtime.runner.Constants.FIXTURE_OPT;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.runner.Constants;
 
-import static org.apache.isis.core.runtime.runner.Constants.FIXTURE_LONG_OPT;
-import static org.apache.isis.core.runtime.runner.Constants.FIXTURE_OPT;
-
 public class OptionHandlerFixture extends OptionHandlerFixtureAbstract {
 
     private static final Logger LOG = LoggerFactory.getLogger(OptionHandlerFixture.class);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
index 426e23c..5f2832a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.runtime.runner.opts;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 import org.apache.isis.core.runtime.optionhandler.OptionHandlerAbstract;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureFromEnvironmentVariable.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureFromEnvironmentVariable.java
index b05406e..defbead 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureFromEnvironmentVariable.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureFromEnvironmentVariable.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.runtime.runner.opts;
 
 import java.util.Map;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Options;
 import org.slf4j.Logger;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
index dee668a..a71c555 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
@@ -21,12 +21,16 @@ package org.apache.isis.core.runtime.runner.opts;
 
 import java.util.Enumeration;
 import java.util.Map;
+
 import javax.servlet.ServletContext;
+
 import com.google.common.collect.Maps;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Options;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.optionhandler.OptionHandlerAbstract;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
index a4adb43..2980824 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
@@ -21,11 +21,14 @@ package org.apache.isis.core.runtime.runner.opts;
 
 import java.util.Map;
 import java.util.Properties;
+
 import com.google.common.collect.Maps;
+
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Options;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.optionhandler.OptionHandlerAbstract;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
index 610d646..79ae241 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
@@ -28,6 +28,12 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 
+import com.google.common.collect.Maps;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.factory.InstanceCreationClassException;
@@ -37,11 +43,6 @@ import org.apache.isis.core.commons.lang.MethodExtensions;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.ProxyEnhanced;
 import org.apache.isis.core.plugins.codegen.ProxyFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Maps;
-import org.apache.isis.commons.internal.collections._Sets;
 
 //import javassist.util.proxy.MethodFilter;
 //import javassist.util.proxy.MethodHandler;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
index 7b157b2..d89e95e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromAnnotation.java
@@ -27,28 +27,28 @@ import java.util.List;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.SortedSet;
+import java.util.stream.Collectors;
 
 import javax.annotation.PreDestroy;
 
+import com.google.common.base.Joiner;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Maps;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.metamodel.facets.object.domainservice.DomainServiceMenuOrder;
 import org.apache.isis.core.metamodel.util.DeweyOrderComparator;
 import org.apache.isis.core.plugins.classdiscovery.ClassDiscovery;
 import org.apache.isis.core.plugins.classdiscovery.ClassDiscoveryPlugin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
 
@@ -130,7 +130,7 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
             if(packagePrefixes == null) {
                 this.packagePrefixes = PACKAGE_PREFIX_STANDARD;
                 String packagePrefixes = getConfiguration().getString(PACKAGE_PREFIX_KEY);
-                if(!Strings.isNullOrEmpty(packagePrefixes)) {
+                if(!_Strings.isNullOrEmpty(packagePrefixes)) {
                     this.packagePrefixes = this.packagePrefixes + "," + packagePrefixes;
                 }
             }
@@ -153,15 +153,6 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
         return and(not(nullClass()), not(abstractClass()));
     }
 
-    private static Function<String,String> trim() {
-        return new Function<String,String>(){
-            @Override
-            public String apply(final String input) {
-                return input.trim();
-            }
-        };
-    }
-
     private static Predicate<Class<?>> nullClass() {
         return new Predicate<Class<?>>() {
 
@@ -218,7 +209,7 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
             domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
         }
 
-        final List<Class<?>> domainServiceClasses = Lists.newArrayList(Iterables.filter(domainServiceTypes, instantiatable()));
+        final List<Class<?>> domainServiceClasses = _Lists.newArrayList(Iterables.filter(domainServiceTypes, instantiatable()));
         for (final Class<?> cls : domainServiceClasses) {
 
             final String order = DomainServiceMenuOrder.orderOf(cls);
@@ -245,21 +236,26 @@ public class ServicesInstallerFromAnnotation extends ServicesInstallerAbstract {
     }
 
     private static List<String> asList(final String csv) {
-        return Lists.newArrayList(Iterables.transform(Splitter.on(",").split(csv), trim()));
+        return _Strings.splitThenStream(csv, ",")
+        .map(String::trim)
+        .collect(Collectors.toList());
     }
 
 
     // -- domain events
     public static abstract class PropertyDomainEvent<T>
     extends org.apache.isis.applib.events.domain.PropertyDomainEvent<ServicesInstallerFromAnnotation, T> {
+        private static final long serialVersionUID = 1L;
     }
 
     public static abstract class CollectionDomainEvent<T>
     extends org.apache.isis.applib.events.domain.CollectionDomainEvent<ServicesInstallerFromAnnotation, T> {
+        private static final long serialVersionUID = 1L;
     }
 
     public static abstract class ActionDomainEvent
     extends org.apache.isis.applib.events.domain.ActionDomainEvent<ServicesInstallerFromAnnotation> {
+        private static final long serialVersionUID = 1L;
     }
 
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerUtils.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerUtils.java
index 706f98f..c347d07 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerUtils.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerUtils.java
@@ -19,20 +19,20 @@
 
 package org.apache.isis.core.runtime.services;
 
-import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.SortedSet;
-import com.google.common.base.Function;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-import org.apache.isis.commons.internal.collections._Sets;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Sets;
+
 final class ServicesInstallerUtils  {
 
     private static final Logger LOG = LoggerFactory.getLogger(ServicesInstallerFromConfiguration.class);
@@ -82,11 +82,12 @@ final class ServicesInstallerUtils  {
     }
 
     static List<Object> instantiateServicesFrom(SortedMap<String, SortedSet<String>> positionedServices, final ServiceInstantiator serviceInstantiator) {
-        LinkedHashSet<String> serviceNameList = flatten(positionedServices);
+        final LinkedHashSet<String> serviceNameList = flatten(positionedServices);
 
-        final Collection<Object> filter = Collections2.filter(
-                Collections2.transform(serviceNameList, instantiator(serviceInstantiator)), Predicates.notNull());
-        return Lists.newArrayList(filter);
+        return _NullSafe.stream(serviceNameList)
+        .map(instantiator(serviceInstantiator))
+        .filter(_NullSafe::isPresent)
+        .collect(Collectors.toList());
     }
 
     private static Function<String, Object> instantiator(final ServiceInstantiator serviceInstantiator) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
index 3372841..4d017c8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
@@ -18,15 +18,15 @@ package org.apache.isis.core.runtime.services.background;
 
 import java.util.List;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandExecutorService;
 import org.apache.isis.applib.services.command.CommandWithDto;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
 
 /**
  * Intended to be used as a base class for executing queued up {@link Command background action}s.
@@ -57,7 +57,7 @@ public abstract class BackgroundCommandExecution extends CommandExecutionAbstrac
 
         final PersistenceSession persistenceSession = getPersistenceSession();
         final IsisTransactionManager transactionManager = getTransactionManager(persistenceSession);
-        final List<Command> commands = Lists.newArrayList();
+        final List<Command> commands = _Lists.newArrayList();
         transactionManager.executeWithinTransaction(() -> {
             commands.addAll(findBackgroundCommandsToExecute());
         });
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutorServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutorServiceDefault.java
index 289b9ee..7005383 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutorServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutorServiceDefault.java
@@ -22,9 +22,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,6 +41,8 @@ import org.apache.isis.applib.services.sudo.SudoService;
 import org.apache.isis.applib.services.xactn.Transaction;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.applib.services.xactn.TransactionState;
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.CommandUtil;
@@ -258,7 +257,9 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
                 commandWithDto.setCompletedAt(completedAt);
 
                 if(exceptionIfAny != null) {
-                    commandWithDto.setException(Throwables.getStackTraceAsString(exceptionIfAny));
+                    commandWithDto.setException(_Exceptions.
+                            streamStacktraceLines(exceptionIfAny, 500)
+                            .collect(Collectors.joining("\n")));
                 }
     }
 
@@ -326,7 +327,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
 
     private ObjectAdapter[] argAdaptersFor(final ActionDto actionDto) {
         final List<ParamDto> params = paramDtosFrom(actionDto);
-        final List<ObjectAdapter> args = Lists.newArrayList(
+        final List<ObjectAdapter> args = _Lists.newArrayList(
                 params.stream()
                 .map(paramDto -> {
                     final Object arg = CommonDtoUtils.getValue(paramDto);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/ChangedObjectsServiceInternal.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/ChangedObjectsServiceInternal.java
index a19ee68..e936a42 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/ChangedObjectsServiceInternal.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/ChangedObjectsServiceInternal.java
@@ -21,12 +21,10 @@ package org.apache.isis.core.runtime.services.changes;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.Callable;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
 import javax.enterprise.context.RequestScoped;
-import javax.ws.rs.HEAD;
 
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
@@ -37,6 +35,8 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.PublishingChangeKind;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.WithTransactionScope;
+import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -212,11 +212,11 @@ public class ChangedObjectsServiceInternal implements WithTransactionScope {
 
     private Set<Map.Entry<AdapterAndProperty, PreAndPostValues>> capturePostValuesAndDrain(final Map<AdapterAndProperty, PreAndPostValues> changedObjectProperties) {
         return ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(() -> {
-            final Map<AdapterAndProperty, PreAndPostValues> processedObjectProperties = Maps.newLinkedHashMap();
+            final Map<AdapterAndProperty, PreAndPostValues> processedObjectProperties = _Maps.newLinkedHashMap();
 
             while(!changedObjectProperties.isEmpty()) {
 
-                final Set<AdapterAndProperty> keys = Sets.newLinkedHashSet(changedObjectProperties.keySet());
+                final Set<AdapterAndProperty> keys = _Sets.newLinkedHashSet(changedObjectProperties.keySet());
                 for (final AdapterAndProperty aap : keys) {
 
                     final PreAndPostValues papv = changedObjectProperties.remove(aap);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/PreAndPostValues.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/PreAndPostValues.java
index 73559e3..064ba4d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/PreAndPostValues.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/changes/PreAndPostValues.java
@@ -19,8 +19,8 @@
 package org.apache.isis.core.runtime.services.changes;
 
 import java.util.Map;
+import java.util.Objects;
 
-import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
@@ -105,6 +105,6 @@ public class PreAndPostValues {
             return true;
         }
         // else - for updated objects - audit only if the property value has changed
-        return !Objects.equal(getPre(), getPost());
+        return !Objects.equals(getPre(), getPost());
     }
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandServiceDefault.java
index ff91b8b..c5c4445 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/command/CommandServiceDefault.java
@@ -16,8 +16,6 @@
  */
 package org.apache.isis.core.runtime.services.command;
 
-import java.util.UUID;
-
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailServiceDefault.java
index 2738381..23f7174 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailServiceDefault.java
@@ -25,8 +25,6 @@ import java.util.Properties;
 import javax.activation.DataSource;
 import javax.annotation.PostConstruct;
 
-import com.google.common.base.Strings;
-
 import org.apache.commons.mail.DefaultAuthenticator;
 import org.apache.commons.mail.EmailException;
 import org.apache.commons.mail.ImageHtmlEmail;
@@ -38,6 +36,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.email.EmailService;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 
 /**
@@ -168,7 +167,7 @@ public class EmailServiceDefault implements EmailService {
     public boolean isConfigured() {
         final String senderEmailAddress = getSenderEmailAddress();
         final String senderEmailPassword = getSenderEmailPassword();
-        return !Strings.isNullOrEmpty(senderEmailAddress) && !Strings.isNullOrEmpty(senderEmailPassword);
+        return !_Strings.isNullOrEmpty(senderEmailAddress) && !_Strings.isNullOrEmpty(senderEmailPassword);
     }
     // endregion
 
@@ -261,7 +260,7 @@ public class EmailServiceDefault implements EmailService {
     // region > helper methods
 
     static String[] actually(final List<String> original, final String overrideIfAny) {
-        final List<String> addresses = Strings.isNullOrEmpty(overrideIfAny)
+        final List<String> addresses = _Strings.isNullOrEmpty(overrideIfAny)
                 ? original == null
                 ? Collections.<String>emptyList()
                         : original
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusImplementationAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusImplementationAbstract.java
index bf58d5d..ee9b7b2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusImplementationAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusImplementationAbstract.java
@@ -18,6 +18,7 @@ package org.apache.isis.core.runtime.services.eventbus;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.events.domain.AbstractDomainEvent;
 import org.apache.isis.core.commons.exceptions.IsisApplicationException;
 import org.apache.isis.core.plugins.eventbus.EventBusPlugin;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
index ac1b5b1..96f8699 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
@@ -25,13 +25,12 @@ import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.commons.lang.ClassUtil;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.plugins.eventbus.EventBusPlugin;
 import org.apache.isis.core.runtime.services.RequestScopedService;
 
-import com.google.common.base.Strings;
-
 /**
  * Holds common runtime logic for EventBusService implementations.
  */
@@ -86,7 +85,7 @@ public abstract class EventBusServiceDefault extends EventBusService {
     }
 
     private static String getNormalized(final String implementation) {
-        if(Strings.isNullOrEmpty(implementation)) {
+        if(_Strings.isNullOrEmpty(implementation)) {
             return EVENT_BUS_IMPLEMENTATION_DEFAULT;
         } else {
             final String implementationTrimmed = implementation.trim();
@@ -104,7 +103,7 @@ public abstract class EventBusServiceDefault extends EventBusService {
 
     private static boolean getElseFalse(final Map<String, String> properties, final String key) {
         final String value = properties.get(key);
-        return !Strings.isNullOrEmpty(value) && Boolean.parseBoolean(value);
+        return !_Strings.isNullOrEmpty(value) && Boolean.parseBoolean(value);
     }
 
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/Block.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/Block.java
index 99d9d07..dfbba4f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/Block.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/Block.java
@@ -22,7 +22,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import com.google.common.collect.Lists;
+
+import org.apache.isis.commons.internal.collections._Lists;
 
 class Block {
 
@@ -43,7 +44,7 @@ class Block {
 
     State state = State.CONTEXT;
 
-    List<String> contextList = Lists.newArrayList();
+    List<String> contextList = _Lists.newArrayList();
     String msgid = null;
     String msgid_plural = null;
     String msgstr = null; // either from msgstr or msgstr[0] if there is a plural
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
index 07f6661..633a20d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
@@ -24,10 +24,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import org.apache.isis.commons.internal.collections._Sets;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,6 +32,9 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.services.i18n.LocaleProvider;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.i18n.TranslationsResolver;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Sets;
 
 class PoReader extends PoAbstract {
 
@@ -144,14 +144,14 @@ class PoReader extends PoAbstract {
         // search for translation with a context
         final ContextAndMsgId key = new ContextAndMsgId(context, msgId, type);
         final String translation = lookupTranslation(translationsByKey, key);
-        if (!Strings.isNullOrEmpty(translation)) {
+        if (!_Strings.isNullOrEmpty(translation)) {
             return translation;
         }
 
         // else search for translation without a context
         final ContextAndMsgId keyNoContext = new ContextAndMsgId("", msgId, type);
         final String translationNoContext = lookupTranslation(translationsByKey, keyNoContext);
-        if (!Strings.isNullOrEmpty(translationNoContext)) {
+        if (!_Strings.isNullOrEmpty(translationNoContext)) {
             return translationNoContext;
         }
 
@@ -220,9 +220,9 @@ class PoReader extends PoAbstract {
         final String country = locale.getCountry().toUpperCase(Locale.ROOT);
         final String language = locale.getLanguage().toLowerCase(Locale.ROOT);
 
-        final List<String> candidates = Lists.newArrayList();
-        if(!Strings.isNullOrEmpty(language)) {
-            if(!Strings.isNullOrEmpty(country)) {
+        final List<String> candidates = _Lists.newArrayList();
+        if(!_Strings.isNullOrEmpty(language)) {
+            if(!_Strings.isNullOrEmpty(country)) {
                 candidates.add(basename + DASH       + language + UNDERSCORE + country+ ".po");
                 candidates.add(basename + DASH       + language + DASH       + country+ ".po");
                 candidates.add(basename + UNDERSCORE + language + UNDERSCORE + country+ ".po");
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
index aa53808..6bc2d7a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoWriter.java
@@ -20,12 +20,15 @@ package org.apache.isis.core.runtime.services.i18n.po;
 
 import java.util.SortedMap;
 import java.util.SortedSet;
+
 import com.google.common.collect.Maps;
-import org.apache.isis.commons.internal.collections._Sets;
+
 import org.joda.time.LocalDateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 
 class PoWriter extends PoAbstract {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index da71bd1..942c3b9 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -22,18 +22,12 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import javax.inject.Inject;
 
-import com.google.common.base.Joiner;
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import org.apache.isis.commons.internal.collections._Sets;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,6 +44,10 @@ import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.menu.MenuBarsLoaderService;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet;
@@ -150,7 +148,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
             return null;
         }
 
-        final List<BS3Menu> menusWithUnreferencedActionsFlagSet = Lists.newArrayList();
+        final List<BS3Menu> menusWithUnreferencedActionsFlagSet = _Lists.newArrayList();
         menuBars.visit(new BS3MenuBars.VisitorAdapter(){
             @Override public void visit(final BS3Menu menu) {
                 if(isSet(menu.isUnreferencedActions())) {
@@ -185,10 +183,8 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
                 isisSessionFactory.getCurrentSession().getPersistenceSession().getServices();
 
         final List<ObjectAdapter> visibleServiceAdapters =
-                FluentIterable.from(
-                        serviceAdapters)
-                .filter(new Predicate<ObjectAdapter>() {
-                    @Override public boolean apply(final ObjectAdapter objectAdapter) {
+                _Lists.filter(serviceAdapters,
+                (final ObjectAdapter objectAdapter) -> {
                         if (objectAdapter == null) {
                             return false;
                         }
@@ -207,8 +203,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
                         }
                         final NatureOfService natureOfService = facet.getNatureOfService();
                         return natureOfService == null || natureOfService != NatureOfService.DOMAIN;
-                    }
-                }).toList();
+                });
 
         append(visibleServiceAdapters, menuBars.getPrimary(), DomainServiceLayout.MenuBar.PRIMARY);
         append(visibleServiceAdapters, menuBars.getSecondary(), DomainServiceLayout.MenuBar.SECONDARY);
@@ -230,10 +225,10 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
             final BS3MenuBar menuBar,
             final DomainServiceLayout.MenuBar menuBarPos) {
 
-        List<ServiceAndAction> serviceActions = Lists.newArrayList();
+        List<ServiceAndAction> serviceActions = _Lists.newArrayList();
 
         // cf ServiceActionsModel & ServiceActionUtil#buildMenu in Wicket viewer
-        for (final ObjectAdapter serviceAdapter : FluentIterable.from(serviceAdapters).filter(with(menuBarPos))) {
+        for (final ObjectAdapter serviceAdapter : _Lists.filter(serviceAdapters, with(menuBarPos))) {
             collateServiceActions(serviceAdapter, ActionType.USER, serviceActions);
             collateServiceActions(serviceAdapter, ActionType.PROTOTYPE, serviceActions);
         }
@@ -252,7 +247,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
             final Set<String> serviceNamesInOrder,
             final Map<String, List<ServiceAndAction>> serviceActionsByName) {
 
-        final List<BS3Menu> menus = Lists.newArrayList();
+        final List<BS3Menu> menus = _Lists.newArrayList();
         for (String serviceName : serviceNamesInOrder) {
 
             BS3Menu menu = new BS3Menu(serviceName);
@@ -313,7 +308,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
      */
     private static Map<String, List<ServiceAndAction>> groupByServiceName(
             final List<ServiceAndAction> serviceActions) {
-        final Map<String, List<ServiceAndAction>> serviceActionsByName = Maps.newTreeMap();
+        final Map<String, List<ServiceAndAction>> serviceActionsByName = _Maps.newTreeMap();
 
         // map available services
         ObjectAdapter lastServiceAdapter = null;
@@ -324,7 +319,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
             final ObjectAdapter serviceAdapter = serviceAction.serviceAdapter;
 
             if(serviceActionsForName == null) {
-                serviceActionsForName = Lists.newArrayList();
+                serviceActionsForName = _Lists.newArrayList();
                 serviceActionsByName.put(serviceAction.serviceName, serviceActionsForName);
             } else {
                 // capture whether this action is from a different service; if so, add a separator before it
@@ -363,7 +358,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
         .forEach(objectAction->{
             final MemberOrderFacet memberOrderFacet = objectAction.getFacet(MemberOrderFacet.class);
             String serviceName = memberOrderFacet != null? memberOrderFacet.name(): null;
-            if(Strings.isNullOrEmpty(serviceName)){
+            if(_Strings.isNullOrEmpty(serviceName)){
                 serviceName = serviceSpec.getFacet(NamedFacet.class).value();
             }
             serviceActions.add(new ServiceAndAction(serviceName, serviceAdapter, objectAction));
@@ -372,30 +367,26 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
     }
 
     private static Predicate<ObjectAdapter> with(final DomainServiceLayout.MenuBar menuBar) {
-        return new Predicate<ObjectAdapter>() {
-            @Override
-            public boolean apply(ObjectAdapter input) {
+        return (ObjectAdapter input) -> {
                 final DomainServiceLayoutFacet facet =
                         input.getSpecification().getFacet(DomainServiceLayoutFacet.class);
                 return facet != null && facet.getMenuBar() == menuBar;
-            }
         };
     }
 
 
     private String tnsAndSchemaLocation() {
-        final List<String> parts = Lists.newArrayList();
-
-        parts.add(MB3_TNS);
-        parts.add(MB3_SCHEMA_LOCATION);
-
-        parts.add(COMPONENT_TNS);
-        parts.add(COMPONENT_SCHEMA_LOCATION);
-
-        parts.add(LINKS_TNS);
-        parts.add(LINKS_SCHEMA_LOCATION);
-
-        return Joiner.on(" ").join(parts);
+        
+        return Stream.of(
+                MB3_TNS, 
+                MB3_SCHEMA_LOCATION,
+                
+                COMPONENT_TNS, 
+                COMPONENT_SCHEMA_LOCATION,
+                
+                LINKS_TNS,
+                LINKS_SCHEMA_LOCATION)
+        .collect(Collectors.joining(" "));
     }
 
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishedObjectsDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishedObjectsDefault.java
index ce28f2d..29e2c2d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishedObjectsDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishedObjectsDefault.java
@@ -21,20 +21,19 @@ package org.apache.isis.core.runtime.services.publish;
 
 import java.sql.Timestamp;
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.UUID;
 
-import com.google.common.base.Function;
 import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Multimaps;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.PublishingChangeKind;
 import org.apache.isis.applib.services.RepresentsInteractionMemberExecution;
 import org.apache.isis.applib.services.publish.PublishedObjects;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.schema.chg.v1.ChangesDto;
@@ -204,15 +203,11 @@ public class PublishedObjectsDefault implements PublishedObjects, RepresentsInte
 
         final Collection<ObjectAdapter> adapters = adaptersByChange.get(kind);
         if(adapters != null) {
-            final ImmutableList<OidDto> oidDtos = FluentIterable.from(adapters)
-                    .transform(new Function<ObjectAdapter, OidDto>() {
-                        @Override
-                        public OidDto apply(final ObjectAdapter objectAdapter) {
+            final List<OidDto> oidDtos = _Lists.map(adapters, 
+                    (final ObjectAdapter objectAdapter) -> {
                             final RootOid rootOid = (RootOid) objectAdapter.getOid();
                             return rootOid.asOidDto();
-                        }
-                    })
-                    .toList();
+                    });
             oidsDto.getOid().addAll(oidDtos);
         }
         return oidsDto;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
index 2a7b0c9..d4d64b7 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/userreg/EmailNotificationServiceDefault.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.core.runtime.services.userreg;
 
+import static java.util.regex.Pattern.compile;
+import static java.util.regex.Pattern.quote;
+
 import java.io.IOException;
 import java.net.URL;
 import java.util.Collections;
@@ -41,9 +44,6 @@ import org.apache.isis.applib.services.userreg.events.EmailEventAbstract;
 import org.apache.isis.applib.services.userreg.events.EmailRegistrationEvent;
 import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
 
-import static java.util.regex.Pattern.compile;
-import static java.util.regex.Pattern.quote;
-
 /**
  * A service that sends email notifications when specific events occur
  */
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
index ebe8947..f06a75e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
@@ -83,7 +83,7 @@ public abstract class AbstractIsisSessionTemplate {
 //        if(targetObject instanceof CollectionDto) {
 //            final CollectionDto collectionDto = (CollectionDto) targetObject;
 //            final List<ValueDto> valueDtoList = collectionDto.getValue();
-//            final List<Object> pojoList = Lists.newArrayList();
+//            final List<Object> pojoList = _Lists.newArrayList();
 //            for (final ValueDto valueDto : valueDtoList) {
 //                ValueType valueType = collectionDto.getType();
 //                final Object valueOrOidDto = CommonDtoUtils.getValue(valueDto, valueType);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
index 7ecad25..b3c7cdb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
@@ -20,8 +20,7 @@ package org.apache.isis.core.runtime.snapshot;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -50,7 +49,7 @@ public class XmlSnapshotBuilder {
         private final String annotation;
     }
 
-    private final List<XmlSnapshotBuilder.PathAndAnnotation> paths = Lists.newArrayList();
+    private final List<XmlSnapshotBuilder.PathAndAnnotation> paths = _Lists.newArrayList();
 
     public XmlSnapshotBuilder(final Object domainObject) {
         this.domainObject = domainObject;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
index db8ffc6..d358eb7 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/DeploymentType.java
@@ -21,18 +21,15 @@ package org.apache.isis.core.runtime.system;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 
 /**
  * Whether running on client or server side etc.
  */
 public class DeploymentType {
 
-    private static List<DeploymentType> deploymentTypes = Lists.newArrayList();
+    private static List<DeploymentType> deploymentTypes = _Lists.newArrayList();
 
     public static DeploymentType SERVER = new DeploymentType("SERVER", DeploymentCategory.PRODUCTION);
     public static DeploymentType SERVER_EXPLORATION = new DeploymentType("SERVER_EXPLORATION", DeploymentCategory.EXPLORING);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
index 3a568fb..d1218eb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java
@@ -26,7 +26,6 @@ import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.AuthenticationManagerInstaller;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 import org.apache.isis.core.runtime.authorization.AuthorizationManagerInstaller;
-import org.apache.isis.core.runtime.installerregistry.installerapi.PersistenceMechanismInstaller;
 
 public final class SystemConstants {
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
index edd51a2..902371a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_DependencyInjection.java
@@ -24,13 +24,8 @@ import java.lang.reflect.Modifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
-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.core.runtime.system.persistence.PersistenceSession;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_LifecycleEventSupport.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_LifecycleEventSupport.java
index 34fb8ba..28aac86 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_LifecycleEventSupport.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_LifecycleEventSupport.java
@@ -18,28 +18,15 @@
  */
 package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
-import java.util.List;
-
-import javax.annotation.Nullable;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
-import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.core.commons.factory.InstanceUtil;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet;
 import org.apache.isis.core.metamodel.facets.object.callbacks.LifecycleEventFacet;
-import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.Instance;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
index 4ac5b3b..e7e930e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_NewIdentifier.java
@@ -21,10 +21,8 @@ package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
index 8578ac0..a92c5cf 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectAdapterProvider.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
+import static org.apache.isis.commons.internal.base._With.requires;
+
 import java.util.List;
 import java.util.UUID;
 import java.util.function.Function;
@@ -39,8 +41,6 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.persistence.adaptermanager.factories.OidFactory;
 
-import static org.apache.isis.commons.internal.base._With.requires;
-
 /**
  * package private mixin for ObjectAdapterContext
  * <p>
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectCreation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectCreation.java
index e8d9bf1..e6b63a9 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectCreation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ObjectCreation.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
-import java.util.List;
 import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
@@ -26,15 +25,11 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
 import org.apache.isis.applib.services.command.Command;
-import org.apache.isis.applib.services.eventbus.EventBusService;
-import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
 import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
 import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.LifecycleEventFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
index f6ff249..22d612a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_ServiceLookup.java
@@ -19,7 +19,6 @@
 package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
 import java.util.Map;
-import java.util.Objects;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
index 3c07a49..cfc866c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterLegacy.java
@@ -20,12 +20,11 @@ package org.apache.isis.core.runtime.system.persistence.adaptermanager;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -56,7 +55,7 @@ public class ObjectAdapterLegacy {
             if(targetObject instanceof CollectionDto) {
                 final CollectionDto collectionDto = (CollectionDto) targetObject;
                 final List<ValueDto> valueDtoList = collectionDto.getValue();
-                final List<Object> pojoList = Lists.newArrayList();
+                final List<Object> pojoList = _Lists.newArrayList();
                 for (final ValueDto valueDto : valueDtoList) {
                     ValueType valueType = collectionDto.getType();
                     final Object valueOrOidDto = CommonDtoUtils.getValue(valueDto, valueType);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactory.java
index ea91d11..5c0bfdb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactory.java
@@ -24,11 +24,15 @@ import java.util.concurrent.Callable;
 
 import javax.inject.Inject;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.fixtures.LogonFixture;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.title.TitleService;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -49,10 +53,6 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
 
 /**
  * Is the factory of {@link IsisSession}s, also holding a reference to the current session using
@@ -158,7 +158,7 @@ implements ApplicationScopedComponent, AppManifestProvider {
             final List<Object> services = servicesInjector.getRegisteredServices();
             // take a copy of all services to avoid occasional concurrent modification exceptions
             // that can sometimes occur in the loop
-            final List<Object> copyOfServices = Lists.newArrayList(services);
+            final List<Object> copyOfServices = _Lists.newArrayList(services);
             final TitleService titleService = servicesInjector.lookupServiceElseFail(TitleService.class);
             for (Object service : copyOfServices) {
                 @SuppressWarnings("unused")
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index 3efa915..463b3c3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -23,6 +23,9 @@ import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.CountDownLatch;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.applib.services.WithTransactionScope;
@@ -40,10 +43,6 @@ import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyO
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
 import org.apache.isis.core.runtime.services.auditing.AuditingServiceInternal;
 import org.apache.isis.core.runtime.services.persistsession.PersistenceSessionServiceInternalDefault;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
 
 /**
  * Used by the {@link IsisTransactionManager} to captures a set of changes to be
@@ -373,7 +372,7 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction
         do {
             // this algorithm ensures that we never execute the same command twice,
             // and also allow new commands to be added to end
-            final List<PersistenceCommand> persistenceCommandList = Lists.newArrayList(persistenceCommands);
+            final List<PersistenceCommand> persistenceCommandList = _Lists.newArrayList(persistenceCommands);
 
             if(!persistenceCommandList.isEmpty()) {
                 // so won't be processed again if a flush is encountered subsequently
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
index b8834f9..ff84e9b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
@@ -23,16 +23,24 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 
+import com.google.common.base.Joiner;
+import com.google.common.collect.Iterables;
+
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.fixturescripts.FixtureScript;
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.commons.factory.InstanceUtil;
@@ -57,13 +65,6 @@ import org.apache.isis.objectstore.jdo.service.RegisterEntities;
 import org.apache.isis.progmodels.dflt.JavaReflectorHelper;
 import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
 
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import org.apache.isis.commons.internal.collections._Sets;
-
 /**
  *
  */
@@ -130,7 +131,7 @@ public abstract class IsisComponentProvider {
         final Iterable<String> modulePackages = modulePackageNamesFrom(appManifest);
         final AppManifest.Registry registry = AppManifest.Registry.instance();
 
-        final List<String> moduleAndFrameworkPackages = Lists.newArrayList();
+        final List<String> moduleAndFrameworkPackages = _Lists.newArrayList();
         moduleAndFrameworkPackages.addAll(AppManifest.Registry.FRAMEWORK_PROVIDED_SERVICES);
         Iterables.addAll(moduleAndFrameworkPackages, modulePackages);
 
@@ -161,12 +162,9 @@ public abstract class IsisComponentProvider {
 
         // for a tiny bit of efficiency, we append a '.' to each package name here, outside the loops
         List<String> packagesWithDotSuffix =
-                FluentIterable.from(moduleAndFrameworkPackages).transform(new Function<String, String>() {
-                    @Nullable @Override
-                    public String apply(@Nullable final String s) {
+                _Lists.map(moduleAndFrameworkPackages, (@Nullable final String s) -> {
                         return s != null ? s + "." : null;
-                    }
-                }).toList();
+                });
 
         registry.setDomainServiceTypes(within(packagesWithDotSuffix, domainServiceTypes));
         registry.setPersistenceCapableTypes(within(packagesWithDotSuffix, persistenceCapableTypes));
@@ -233,15 +231,19 @@ public abstract class IsisComponentProvider {
                     "If an appManifest is provided then it must return a non-empty set of modules");
         }
 
-        return _Lists.transform(modules, ClassFunctions.packageNameOf());
+        return _Lists.map(modules, ClassFunctions.packageNameOf());
     }
 
     protected String classNamesFrom(final List<?> objectsOrClasses) {
         if (objectsOrClasses == null) {
             return null;
         }
-        final Iterable<String> fixtureClassNames = Iterables.transform(objectsOrClasses, classNameOf());
-        return Joiner.on(',').join(fixtureClassNames);
+        
+        final Stream<String> fixtureClassNames = _NullSafe.stream(objectsOrClasses)
+                .map(classNameOf());
+                
+        return fixtureClassNames.collect(Collectors.joining(","));
+                
     }
 
     private static Function<Object, String> classNameOf() {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
index 4c92bf8..36e20f7 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
@@ -21,12 +21,11 @@ package org.apache.isis.core.runtime.systemusinginstallers;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.AppManifest;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.components.Installer;
 import org.apache.isis.core.commons.config.IsisConfiguration;
@@ -41,8 +40,8 @@ import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.AuthenticationManagerInstaller;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 import org.apache.isis.core.runtime.authorization.AuthorizationManagerInstaller;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
 import org.apache.isis.core.runtime.system.SystemConstants;
+import org.apache.isis.core.runtime.system.session.IsisSessionFactoryBuilder;
 
 public class IsisComponentProviderUsingInstallers extends IsisComponentProvider {
 
@@ -133,12 +132,12 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProvider
         // -- constructor, fields
 
         private final IsisConfiguration isisConfiguration;
-        private final List<Installer> installerList = Lists.newArrayList();
+        private final List<Installer> installerList = _Lists.newArrayList();
 
         public InstallerLookup(final IsisConfiguration isisConfiguration) throws InstanceCreationException {
             this.isisConfiguration = isisConfiguration;
 
-            final List<String> installerClassNames = Lists.newArrayList(
+            final List<String> installerClassNames = _Lists.of(
                     "org.apache.isis.core.security.authentication.BypassAuthenticationManagerInstaller", // bypass
                     "org.apache.isis.security.shiro.authentication.ShiroAuthenticationManagerInstaller", // shiro
                     "org.apache.isis.core.security.authorization.BypassAuthorizationManagerInstaller",   // bypass
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
index 0cf4869..ff2753d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisSessionFilter.java
@@ -24,7 +24,10 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
@@ -35,11 +38,10 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import com.google.common.base.Function;
 import com.google.common.base.Splitter;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
 
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.commons.lang.StringExtensions;
@@ -141,12 +143,8 @@ public class IsisSessionFilter implements Filter {
      */
     public static final String IGNORE_EXTENSIONS_KEY = "ignoreExtensions";
 
-    private static final Function<String, Pattern> STRING_TO_PATTERN = new Function<String, Pattern>() {
-        @Override
-        public Pattern apply(final String input) {
+    private static final Function<String, Pattern> STRING_TO_PATTERN = (final String input) -> {
             return Pattern.compile(".*\\." + input);
-        }
-
     };
 
     /**
@@ -274,7 +272,7 @@ public class IsisSessionFilter implements Filter {
             } else {
                 // default whenNotAuthenticated and allow access through to the logonPage
                 whenNotAuthenticated = WhenNoSession.RESTRICTED;
-                this.restrictedPaths = Lists.newArrayList(logonPage);
+                this.restrictedPaths = _Lists.of(logonPage);
                 return;
             }
         }
@@ -285,7 +283,7 @@ public class IsisSessionFilter implements Filter {
             if (restrictedPathsStr == null) {
                 throw new IllegalStateException(String.format("Require an init-param of '%s' key to be set.", RESTRICTED_KEY));
             }
-            this.restrictedPaths = Lists.newArrayList(Splitter.on(",").split(restrictedPathsStr));
+            this.restrictedPaths = _Lists.newArrayList(Splitter.on(",").split(restrictedPathsStr));
         }
 
     }
@@ -301,16 +299,17 @@ public class IsisSessionFilter implements Filter {
     }
 
     private void lookupIgnoreExtensions(final FilterConfig config) {
-        ignoreExtensions = Collections.unmodifiableCollection(parseIgnorePatterns(config));
+        ignoreExtensions = Collections.unmodifiableCollection(parseIgnorePatterns(config)
+                .collect(Collectors.toList()));
     }
 
-    private static Collection<Pattern> parseIgnorePatterns(final FilterConfig config) {
+    private Stream<Pattern> parseIgnorePatterns(final FilterConfig config) {
         final String ignoreExtensionsStr = config.getInitParameter(IGNORE_EXTENSIONS_KEY);
         if (ignoreExtensionsStr != null) {
-            final List<String> ignoreExtensions = Lists.newArrayList(Splitter.on(",").split(ignoreExtensionsStr));
-            return Collections2.transform(ignoreExtensions, STRING_TO_PATTERN);
+            final Stream<String> ignoreExtensions = _Strings.splitThenStream(ignoreExtensionsStr, ","); 
+            return ignoreExtensions.map(STRING_TO_PATTERN);
         }
-        return Lists.newArrayList();
+        return Stream.empty();
     }
 
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
index fb91645..0432652 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
@@ -28,11 +28,12 @@ import javax.enterprise.inject.spi.BeforeBeanDiscovery;
 import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.ProcessAnnotatedType;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.metrics.MetricsService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  *
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/modules/WebModule_Wicket.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/modules/WebModule_Wicket.java
index 3e5b2ad..b033c38 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/modules/WebModule_Wicket.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/modules/WebModule_Wicket.java
@@ -27,13 +27,12 @@ import static org.apache.isis.commons.internal.exceptions._Exceptions.unexpected
 
 import javax.servlet.Filter;
 import javax.servlet.FilterRegistration.Dynamic;
-
-import org.apache.isis.core.webapp.IsisWebAppConfigProvider;
-
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletException;
 
+import org.apache.isis.core.webapp.IsisWebAppConfigProvider;
+
 /**
  * Package private mixin for WebModule implementing WebModule.
  * @since 2.0.0
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
index c2244be..01b7fbb 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
@@ -25,13 +25,13 @@ import java.util.Set;
 import javax.jdo.annotations.PersistenceCapable;
 
 import com.google.common.base.Joiner;
-import com.google.common.collect.Lists;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.commons.internal.base._Lazy;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.JdoMetamodelUtil;
 
 public class RegisterEntities {
@@ -63,7 +63,7 @@ public class RegisterEntities {
             throw new IllegalStateException("AppManifest is required");
         }
 
-        final List<String> classNamesNotEnhanced = Lists.newArrayList();
+        final List<String> classNamesNotEnhanced = _Lists.newArrayList();
         for (Class<?> persistenceCapableType : persistenceCapableTypes) {
             if(ignore(persistenceCapableType)) {
                 continue;
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
index ee4e6a0..adf86e2 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderComparatorTest.java
@@ -20,7 +20,7 @@ package org.apache.isis.core.runtime.services;
 
 import java.util.*;
 import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
@@ -103,7 +103,7 @@ public class DeweyOrderComparatorTest {
     }
 
     private static List<String> ofL(String... str) {
-        return Lists.newArrayList(ofS(str));
+        return _Lists.newArrayList(ofS(str));
     }
 
     private static void assertThatSorting(Collection<String> input, List<String> expected) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
similarity index 100%
rename from core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
rename to core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtilTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtilTest.java
index 2c20c1f..5183d96 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtilTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/DeweyOrderUtilTest.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.services;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.junit.Assert;
 import org.junit.Rule;
@@ -102,7 +102,7 @@ public class DeweyOrderUtilTest {
     }
 
     private static List<Map.Entry<String, Object>> ofL(String[]... str) {
-        return Lists.newArrayList(ofS(str));
+        return _Lists.newArrayList(ofS(str));
     }
 
 
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTest.java
index 791a3f4..4c53d0a 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.isis.core.runtime.services;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.BrokenBarrierException;
@@ -26,24 +30,18 @@ import java.util.concurrent.TimeUnit;
 
 import javax.enterprise.context.RequestScoped;
 
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
-
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-
 public class ServiceInstantiatorTest {
 
 	@Rule
@@ -146,7 +144,7 @@ public class ServiceInstantiatorTest {
 
 		final Consumer consumer = serviceInstantiator.createInstance(Consumer.class);
 
-		final List<Integer> allTheNumbers = Collections.synchronizedList(Lists.<Integer>newArrayList());
+		final List<Integer> allTheNumbers = Collections.synchronizedList(_Lists.<Integer>newArrayList());
 
 		final int n = 100;
 		for (int i = 0; i < n; i++) {
@@ -183,7 +181,7 @@ public class ServiceInstantiatorTest {
 
 		((RequestScopedService)consumer).__isis_endRequest();
 
-		assertEquals(0, FluentIterable.from(allTheNumbers).filter(Predicates.<Integer>notNull()).size());
+		assertEquals(0, _NullSafe.stream(allTheNumbers).filter(_NullSafe::isPresent).count());
 	}
 
 	public static class SingletonCalculator {
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/email/EmailServiceDefaultTest_actually.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/email/EmailServiceDefaultTest_actually.java
index cfbd748..14c7fda 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/email/EmailServiceDefaultTest_actually.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/email/EmailServiceDefaultTest_actually.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.core.runtime.services.email;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.junit.Test;
 
@@ -42,7 +42,7 @@ public class EmailServiceDefaultTest_actually {
     @Test
     public void when_not_null_but_no_override() throws Exception {
 
-        final String[] actually = EmailServiceDefault.actually(Lists.newArrayList("joey@tribiani.com", "rachel@green.com"), null);
+        final String[] actually = EmailServiceDefault.actually(_Lists.of("joey@tribiani.com", "rachel@green.com"), null);
 
         assertThat(actually, is(not(nullValue())));
         assertThat(actually.length, is(2));
@@ -51,7 +51,7 @@ public class EmailServiceDefaultTest_actually {
     @Test
     public void when_not_null_but_with_override() throws Exception {
 
-        final String[] actually = EmailServiceDefault.actually(Lists.newArrayList("joey@tribiani.com", "rachel@green.com"), "ross@geller.com");
+        final String[] actually = EmailServiceDefault.actually(_Lists.of("joey@tribiani.com", "rachel@green.com"), "ross@geller.com");
 
         assertThat(actually, is(not(nullValue())));
         assertThat(actually.length, is(1));
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
index 52ae5af..bdd20d2 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
@@ -20,7 +20,7 @@ package org.apache.isis.core.runtime.services.i18n.po;
 
 import java.util.List;
 import java.util.Locale;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -76,7 +76,7 @@ public class PoReaderTest {
             poReader = new PoReader(mockTranslationServicePo) {
                 @Override
                 protected List<String> readPo(final Locale locale) {
-                    final List<String> lines = Lists.newArrayList();
+                    final List<String> lines = _Lists.newArrayList();
                     lines.add(String.format("#: %s", context));
                     lines.add(String.format("msgid \"%s\"", msgId));
                     lines.add(String.format("msgstr \"%s\"", msgStr));
@@ -105,7 +105,7 @@ public class PoReaderTest {
             poReader = new PoReader(mockTranslationServicePo) {
                 @Override
                 protected List<String> readPo(final Locale locale) {
-                    final List<String> lines = Lists.newArrayList();
+                    final List<String> lines = _Lists.newArrayList();
                     lines.add(String.format("#: %s", context1));
                     lines.add(String.format("#: %s", context2));
                     lines.add(String.format("msgid \"%s\"", msgId));
@@ -143,7 +143,7 @@ public class PoReaderTest {
             poReader = new PoReader(mockTranslationServicePo) {
                 @Override
                 protected List<String> readPo(final Locale locale) {
-                    final List<String> lines = Lists.newArrayList();
+                    final List<String> lines = _Lists.newArrayList();
                     lines.add(String.format("#: %s", context1));
                     lines.add(String.format("msgid \"%s\"", msgid1));
                     lines.add(String.format("msgstr \"%s\"", msgstr1));
@@ -187,7 +187,7 @@ public class PoReaderTest {
             poReader = new PoReader(mockTranslationServicePo) {
                 @Override
                 protected List<String> readPo(final Locale locale) {
-                    final List<String> lines = Lists.newArrayList();
+                    final List<String> lines = _Lists.newArrayList();
                     lines.add(String.format("#: %s", context));
                     lines.add(String.format("msgid \"%s\"", msgid));
                     lines.add(String.format("msgid_plural \"%s\"", msgid_plural));
@@ -220,7 +220,7 @@ public class PoReaderTest {
             poReader = new PoReader(mockTranslationServicePo) {
                 @Override
                 protected List<String> readPo(final Locale locale) {
-                    return Lists.newArrayList();
+                    return _Lists.newArrayList();
                 }
             };
 
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
index 64d98b1..83cf360 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
@@ -24,8 +24,6 @@ import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 
-import com.google.common.collect.Lists;
-
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -34,6 +32,7 @@ import org.junit.Test;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -77,7 +76,7 @@ public class ObjectActionLayoutXmlDefaultTest {
         stubConfiguration = new IsisConfigurationDefault();
 
         stubServicesInjector =
-                new ServicesInjector(Lists.newArrayList(
+                new ServicesInjector(_Lists.of(
                         mockAuthenticationSessionProvider,
                         mockSpecificationLoader,
                         mockPersistenceSessionServiceInternal,
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
index 5f6452e..4792085 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
@@ -19,7 +19,9 @@
 
 package org.apache.isis.core.runtime.system;
 
-import com.google.common.collect.Lists;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
 
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
@@ -29,6 +31,7 @@ import org.junit.Test;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -46,10 +49,6 @@ import org.apache.isis.core.metamodel.specloader.specimpl.OneToManyAssociationDe
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertThat;
-
 public class OneToManyAssociationDefaultTest {
 
     private static final String COLLECTION_ID = "orders";
@@ -93,7 +92,7 @@ public class OneToManyAssociationDefaultTest {
     @Before
     public void setUp() {
         stubConfiguration = new IsisConfigurationDefault();
-        stubServicesInjector = new ServicesInjector(Lists.newArrayList(
+        stubServicesInjector = new ServicesInjector(_Lists.of(
                 mockAuthenticationSessionProvider,
                 mockSpecificationLoader,
                 mockMessageService,
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeStringAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeStringAdapter.java
index 15b788d..bdc8c52 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeStringAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeStringAdapter.java
@@ -24,6 +24,8 @@ import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormatter;
 import org.joda.time.format.ISODateTimeFormat;
 
+import org.apache.isis.commons.internal.base._Strings;
+
 /**
  * Note: not actually registered as a JAXB adapter.
  */
@@ -34,7 +36,7 @@ public final class JodaDateTimeStringAdapter {
     private static DateTimeFormatter formatter = ISODateTimeFormat.dateTime();
 
     public static DateTime parse(final String dateTimeStr) {
-        return !Strings.isNullOrEmpty(dateTimeStr) ? formatter.parseDateTime(dateTimeStr) : null;
+        return !_Strings.isNullOrEmpty(dateTimeStr) ? formatter.parseDateTime(dateTimeStr) : null;
     }
 
     public static String print(final DateTime date) {
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateStringAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateStringAdapter.java
index 6d0db48..af6e513 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateStringAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateStringAdapter.java
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.joda.time.LocalDate;
 
+import org.apache.isis.commons.internal.base._Strings;
+
 /**
  * Note: not actually registered as a JAXB adapter.
  */
@@ -30,7 +32,7 @@ public final class JodaLocalDateStringAdapter {
     }
 
     public static LocalDate parse(final String date) {
-        if (Strings.isNullOrEmpty(date)) {
+        if (_Strings.isNullOrEmpty(date)) {
             return null;
         }
         return LocalDate.parse(date);
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeStringAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeStringAdapter.java
index 14db970..9bbb079 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeStringAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeStringAdapter.java
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.joda.time.LocalDateTime;
 
+import org.apache.isis.commons.internal.base._Strings;
+
 /**
  * Note: not actually registered as a JAXB adapter.
  */
@@ -30,7 +32,7 @@ public final class JodaLocalDateTimeStringAdapter {
     }
 
     public static LocalDateTime parse(final String localDateTimeStr) {
-        if (Strings.isNullOrEmpty(localDateTimeStr)) {
+        if (_Strings.isNullOrEmpty(localDateTimeStr)) {
             return null;
         }
         return LocalDateTime.parse(localDateTimeStr);
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeStringAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeStringAdapter.java
index 91fcffb..e57de01 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeStringAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeStringAdapter.java
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.joda.time.LocalTime;
 
+import org.apache.isis.commons.internal.base._Strings;
+
 /**
  * Note: not actually registered as a JAXB adapter.
  */
@@ -30,7 +32,7 @@ public final class JodaLocalTimeStringAdapter {
     }
 
     public static LocalTime parse(final String localTimeStr) {
-        if (Strings.isNullOrEmpty(localTimeStr)) {
+        if (_Strings.isNullOrEmpty(localTimeStr)) {
             return null;
         }
         return LocalTime.parse(localTimeStr);
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authentication/BypassAuthenticationManagerInstaller.java b/core/security/src/main/java/org/apache/isis/core/security/authentication/BypassAuthenticationManagerInstaller.java
index b053801..a1466aa 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authentication/BypassAuthenticationManagerInstaller.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authentication/BypassAuthenticationManagerInstaller.java
@@ -21,8 +21,7 @@ package org.apache.isis.core.security.authentication;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
-
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.runtime.authentication.AuthenticationManagerStandardInstallerAbstractForDfltRuntime;
 import org.apache.isis.core.runtime.authentication.standard.Authenticator;
@@ -43,7 +42,7 @@ public class BypassAuthenticationManagerInstaller extends AuthenticationManagerS
 
     @Override
     protected List<Authenticator> createAuthenticators() {
-        return Lists.<Authenticator> newArrayList(new AuthenticatorBypass(getConfiguration()));
+        return _Lists.of(new AuthenticatorBypass(getConfiguration()));
     }
 
 }
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/InMemoryDB.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/InMemoryDB.java
index 01ed4e9..71ad211 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/InMemoryDB.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/InMemoryDB.java
@@ -26,7 +26,7 @@ import org.jmock.api.Invocation;
 
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 /**
@@ -204,7 +204,7 @@ public class InMemoryDB {
 
     @SuppressWarnings("unchecked")
     public <T> List<T> find(Class<T> cls, Predicate<T> predicate) {
-        final List<T> list = Lists.newArrayList();
+        final List<T> list = _Lists.newArrayList();
         for (EntityId entityId : objectsById.keySet()) {
             if(cls.isAssignableFrom(entityId.getType())) {
                 final T object = (T) objectsById.get(entityId);
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/specs/CukeGlueAbstract.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/specs/CukeGlueAbstract.java
index c08c363..251ff1e 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/specs/CukeGlueAbstract.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/specs/CukeGlueAbstract.java
@@ -33,8 +33,8 @@ import org.jmock.Sequence;
 import org.jmock.States;
 import org.jmock.internal.ExpectationBuilder;
 
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
+import java.util.Objects;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import cucumber.api.java.Before;
 
@@ -188,7 +188,7 @@ public abstract class CukeGlueAbstract {
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public static void assertTableEquals(final List listOfExpecteds, final Iterable iterableOfActuals) {
-        final List<Object> listOfActuals = Lists.newArrayList(iterableOfActuals);
+        final List<Object> listOfActuals = _Lists.newArrayList(iterableOfActuals);
         assertThat(listOfActuals.size(), is(listOfExpecteds.size()));
 
         final StringBuilder buf = new StringBuilder();
@@ -203,7 +203,7 @@ public abstract class CukeGlueAbstract {
                 final Object actualProp = getProperty(actual, propertyName );
                 final Object expectedProp = getProperty(expected, propertyName);
 
-                if(!Objects.equal(actualProp, expectedProp)) {
+                if(!Objects.equals(actualProp, expectedProp)) {
                     buf.append("#" + i + ": " + propertyName + ": " + expectedProp + " vs " + actualProp).append("\n");
                 }
             }
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser.java
index 89b5691..3f3bd0a 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser.java
@@ -29,17 +29,15 @@ import java.util.stream.Collectors;
 import javax.ws.rs.core.CacheControl;
 import javax.ws.rs.core.MediaType;
 
+import com.google.common.base.Joiner;
+import com.google.common.base.Splitter;
+
 import org.apache.isis.commons.internal._Constants;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.base.Splitter;
-import com.google.common.collect.Lists;
-
 public abstract class Parser<T> {
 
     public T valueOf(final List<String> str) {
@@ -381,24 +379,16 @@ public abstract class Parser<T> {
                 if (str == null) {
                     return Collections.emptyList();
                 }
-                final List<String> strings = Lists.newArrayList(Splitter.on(",").split(str));
-                return Lists.transform(strings, new Function<String, com.google.common.net.MediaType>() {
-
-                    @Override
-                    public com.google.common.net.MediaType apply(final String input) {
+                final List<String> strings = _Lists.newArrayList(Splitter.on(",").split(str));
+                return _Lists.map(strings, (final String input) -> {
                         return com.google.common.net.MediaType.parse(input);
-                    }
                 });
             }
 
             @Override
             public String asString(final List<com.google.common.net.MediaType> listOfMediaTypes) {
-                final List<String> strings = Lists.transform(listOfMediaTypes, new Function<com.google.common.net.MediaType, String>() {
-                    @Override
-                    public String apply(final com.google.common.net.MediaType input) {
-                        return input.toString();
-                    }
-                });
+                final List<String> strings = _Lists.map(listOfMediaTypes, 
+                        (final com.google.common.net.MediaType input)->input.toString());
                 return Joiner.on(",").join(strings);
             }
         };
diff --git a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/UrlEncodingUtils.java b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/UrlEncodingUtils.java
index 8b1a4c8..ce2b414 100644
--- a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/UrlEncodingUtils.java
+++ b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/UrlEncodingUtils.java
@@ -54,7 +54,7 @@ public final class UrlEncodingUtils {
     }
 
     public static List<String> urlDecode(final List<String> values) {
-        return _Lists.transform(values, FUNCTION);
+        return _Lists.map(values, FUNCTION);
     }
 
     public static String[] urlDecode(final String[] values) {
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecs.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecs.java
index 349f8a1..3547611 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecs.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecs.java
@@ -25,7 +25,7 @@ import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.util.PathNode;
 import org.apache.isis.viewer.restfulobjects.rendering.util.FollowSpecUtil;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public final class LinkFollowSpecs {
 
@@ -62,8 +62,8 @@ public final class LinkFollowSpecs {
         }
         final PathNode candidate = PathNode.parse(path);
         if (mode == Mode.FOLLOWING) {
-            List<List<PathNode>> remainingPathSpecs = Lists.newArrayList();
-            List<PathNode> firstSpecs = Lists.newArrayList();
+            List<List<PathNode>> remainingPathSpecs = _Lists.newArrayList();
+            List<PathNode> firstSpecs = _Lists.newArrayList();
             for(List<PathNode> spec: pathSpecs) {
                 if(spec.isEmpty()) {
                     continue;
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
index 775794e..7438e7b 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/ReprRendererAbstract.java
@@ -23,7 +23,7 @@ import java.util.Map;
 
 import javax.ws.rs.core.MediaType;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -205,8 +205,8 @@ public abstract class ReprRendererAbstract<R extends ReprRendererAbstract<R, T>,
 
         // TODO: have removed UpdateNotifier, plan is to re-introduce using the IsisTransaction enlisted objects
         // (which would also allow newly-created objects to be shown)
-        final List<ObjectAdapter> changedObjects = Lists.newArrayList(); // updateNotifier.getChangedObjects();
-        final List<ObjectAdapter> disposedObjects = Lists.newArrayList(); // updateNotifier.getDisposedObjects();
+        final List<ObjectAdapter> changedObjects = _Lists.newArrayList(); // updateNotifier.getChangedObjects();
+        final List<ObjectAdapter> disposedObjects = _Lists.newArrayList(); // updateNotifier.getDisposedObjects();
 
         addToExtensions("changed", changedObjects);
         addToExtensions("disposed", disposedObjects);
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
index e5802f5..3b62562 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
@@ -23,17 +23,19 @@ import java.math.BigInteger;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
 import com.fasterxml.jackson.databind.node.NullNode;
-import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+
 import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
 import org.joda.time.format.ISODateTimeFormat;
+
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
@@ -70,12 +72,9 @@ public final class JsonValueEncoder {
         }
 
         public List<ObjectSpecId> getSpecIds() {
-            return Lists.newArrayList(Iterables.transform(Arrays.asList(classes), new Function<Class<?>, ObjectSpecId>() {
-                @Override
-                public ObjectSpecId apply(Class<?> cls) {
-                    return new ObjectSpecId(cls.getName());
-                }
-            }));
+            return _NullSafe.stream(classes)
+            .map((Class<?> cls) ->new ObjectSpecId(cls.getName()))
+            .collect(Collectors.toList());
         }
 
         /**
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
index 6293a21..9b21a16 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectActionReprRenderer.java
@@ -20,7 +20,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.fasterxml.jackson.databind.node.NullNode;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -140,7 +140,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
     private ObjectActionReprRenderer addParameterDetails() {
         boolean gsoc2013 = getRendererContext().getConfiguration().getBoolean("isis.viewer.restfulobjects.gsoc2013.legacyParamDetails", false);
         if(gsoc2013) {
-            final List<Object> parameters = Lists.newArrayList();
+            final List<Object> parameters = _Lists.newArrayList();
             for (int i = 0; i < objectMember.getParameterCount(); i++) {
                 final ObjectActionParameter param = objectMember.getParameters().get(i);
                 final Object paramDetails = paramDetails(param, getInteractionInitiatedBy());
@@ -183,7 +183,7 @@ public class ObjectActionReprRenderer extends AbstractObjectMemberReprRenderer<O
         if (choiceAdapters == null || choiceAdapters.length == 0) {
             return null;
         }
-        final List<Object> list = Lists.newArrayList();
+        final List<Object> list = _Lists.newArrayList();
         for (final ObjectAdapter choiceAdapter : choiceAdapters) {
             // REVIEW: previously was using the spec of the parameter, but think instead it should be the spec of the adapter itself
             // final ObjectSpecification choiceSpec = param.getSpecification();
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index 7b1f83d..47cdcf9 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -20,7 +20,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -92,7 +92,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
         boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly(valueAdapter) || !followHref.isTerminated();
 
         final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(valueAdapter);
-        final List<JsonRepresentation> list = Lists.newArrayList();
+        final List<JsonRepresentation> list = _Lists.newArrayList();
         for (final ObjectAdapter elementAdapter : facet.iterable(valueAdapter)) {
 
             final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.VALUE, elementAdapter);
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index a3565b8..495ea85 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -21,7 +21,7 @@ import java.util.Map;
 import java.util.Objects;
 
 import com.fasterxml.jackson.databind.node.NullNode;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -217,7 +217,7 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
         if (choiceAdapters == null || choiceAdapters.length == 0) {
             return null;
         }
-        final List<Object> list = Lists.newArrayList();
+        final List<Object> list = _Lists.newArrayList();
         for (final ObjectAdapter choiceAdapter : choiceAdapters) {
             // REVIEW: previously was using the spec of the member, but think instead it should be the spec of the adapter itself
             // final ObjectSpecification choiceSpec = objectMember.getSpecification();
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
index 61a3684..c9064a7 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/AbstractTypeFeatureReprRenderer.java
@@ -16,7 +16,7 @@
  */
 package org.apache.isis.viewer.restfulobjects.rendering.domaintypes;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
@@ -99,7 +99,7 @@ public abstract class AbstractTypeFeatureReprRenderer<R extends ReprRendererAbst
 
     protected void putExtensionsDescriptionIfAvailable() {
         final String description = getObjectFeature().getDescription();
-        if (!Strings.isNullOrEmpty(description)) {
+        if (!_Strings.isNullOrEmpty(description)) {
             getExtensions().mapPut("description", description);
         }
     }
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
index 6864456..d3322a9 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domaintypes/DomainTypeReprRenderer.java
@@ -20,7 +20,7 @@ import java.util.List;
 import java.util.stream.Stream;
 
 import com.fasterxml.jackson.databind.node.NullNode;
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -174,7 +174,7 @@ public class DomainTypeReprRenderer extends ReprRendererAbstract<DomainTypeReprR
 
     protected void putExtensionsDescriptionIfAvailable() {
         final String description = objectSpecification.getDescription();
-        if (!Strings.isNullOrEmpty(description)) {
+        if (!_Strings.isNullOrEmpty(description)) {
             getExtensions().mapPut("description", description);
         }
     }
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
index 58ac78c..1688aa9 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
@@ -23,7 +23,7 @@ import javax.annotation.PostConstruct;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.ResponseBuilder;
 
-import com.google.common.base.Function;
+import java.util.function.Function;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
index 2737dac..6f938be 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
@@ -25,8 +25,6 @@ import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.container.ContainerResponseContext;
 import javax.ws.rs.ext.Provider;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Multimaps;
 import com.google.common.collect.SetMultimap;
 import com.google.common.net.MediaType;
@@ -35,6 +33,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.acceptheader.AcceptHeaderService;
+import org.apache.isis.commons.internal.collections._Lists;
 
 @DomainService(
         nature = NatureOfService.DOMAIN,
@@ -74,19 +73,16 @@ public class AcceptHeaderServiceForRest implements AcceptHeaderService {
             List<javax.ws.rs.core.MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes();
 
             final List<MediaType> mediaTypes =
-                    Lists.newArrayList(
-                            Lists.transform(acceptableMediaTypes, new Function<javax.ws.rs.core.MediaType, MediaType>() {
-                                @Nullable @Override
-                                public MediaType apply(
+                    _Lists.newArrayList(
+                            _Lists.map(acceptableMediaTypes, (
                                         @Nullable
-                                        final javax.ws.rs.core.MediaType input) {
+                                        final javax.ws.rs.core.MediaType input) -> {
                                     if (input == null) {
                                         return null;
                                     }
                                     final MediaType mediaType = MediaType.create(input.getType(), input.getSubtype());
                                     final SetMultimap<String, String> parameters = Multimaps.forMap(input.getParameters());
                                     return mediaType.withParameters(parameters);
-                                }
                             })
                             );
             setMediaTypes(mediaTypes);
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/FollowSpecUtil.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/FollowSpecUtil.java
index 8ec6569..197fa33 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/FollowSpecUtil.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/FollowSpecUtil.java
@@ -20,31 +20,20 @@ package org.apache.isis.viewer.restfulobjects.rendering.util;
 
 import java.util.List;
 
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.viewer.restfulobjects.applib.util.PathNode;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
 public final class FollowSpecUtil {
 
     private FollowSpecUtil() {
     }
 
     public final static List<List<PathNode>> asFollowSpecs(final List<List<String>> links) {
-        return Lists.newArrayList(Iterables.transform(links, new Function<List<String>, List<PathNode>>() {
-
-            @Override
-            public List<PathNode> apply(List<String> pathParts) {
-                return Lists.newArrayList(Iterables.transform(pathParts, new Function<String, PathNode>(){
-
-                    @Override
-                    public PathNode apply(String input) {
-                        return PathNode.parse(input);
-                    }
-                }
-                        ));
-            }
-        }));
+        
+        final List<List<PathNode>> unmodifiable = _Lists.map(links, (List<String> pathParts) -> {
+            return _Lists.newArrayList(_Lists.map(pathParts, (String input)->PathNode.parse(input)));
+        });
+        
+        return _Lists.newArrayList(unmodifiable);
     }
 }
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
index d5567ae..a8e772b 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
@@ -32,7 +32,7 @@ import javax.ws.rs.core.SecurityContext;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.Providers;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.Where;
@@ -195,7 +195,7 @@ public class ResourceContext implements RendererContext6 {
     }
 
     static String stripQuotes(final String str) {
-        if(Strings.isNullOrEmpty(str)) {
+        if(_Strings.isNullOrEmpty(str)) {
             return str;
         }
         if(str.startsWith("\"") && str.endsWith("\"")) {
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
index cafd77a..70b3a2a 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/authentication/AuthenticationSessionStrategyHeader.java
@@ -26,8 +26,8 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.runtime.authentication.standard.SimpleSession;
@@ -50,7 +50,7 @@ public class AuthenticationSessionStrategyHeader extends AuthenticationSessionSt
         final String user = httpServletRequest.getHeader(HEADER_ISIS_USER);
         final List<String> roles = rolesFrom(httpServletRequest);
 
-        if (Strings.isNullOrEmpty(user)) {
+        if (_Strings.isNullOrEmpty(user)) {
             return null;
         }
         return new SimpleSession(user, roles);
@@ -61,6 +61,6 @@ public class AuthenticationSessionStrategyHeader extends AuthenticationSessionSt
         if (rolesStr == null) {
             return Collections.emptyList();
         }
-        return Lists.newArrayList(Splitter.on(",").split(rolesStr));
+        return _Lists.newArrayList(Splitter.on(",").split(rolesStr));
     }
 }
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/entity/ExceptionDetail.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/entity/ExceptionDetail.java
index 77062d3..ffe034d 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/entity/ExceptionDetail.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/entity/ExceptionDetail.java
@@ -28,7 +28,7 @@ import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 @XmlRootElement(
         name = "exceptionDetail"
@@ -54,7 +54,7 @@ public class ExceptionDetail {
 
     @XmlElementWrapper()
     @XmlElement(name="element")
-    private List<String> stackTrace = Lists.newArrayList();
+    private List<String> stackTrace = _Lists.newArrayList();
     private ExceptionDetail causedBy;
 
     public ExceptionDetail() {
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index 2c36cd5..1d355fd 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -33,7 +33,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import com.google.common.io.Resources;
 
 import org.apache.isis.applib.annotation.Where;
@@ -204,7 +204,7 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
 
         String getImageName() {
             final StringBuilder buf = new StringBuilder(domainClass.getSimpleName());
-            if(!Strings.isNullOrEmpty(modifier)) {
+            if(!_Strings.isNullOrEmpty(modifier)) {
                 buf.append("-").append(modifier);
             }
             buf.append(".png");
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
index 46e370e..b770685 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainServiceResourceServerside.java
@@ -51,7 +51,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 @Path("/services")
 public class DomainServiceResourceServerside extends ResourceAbstract implements DomainServiceResource {
@@ -80,7 +80,7 @@ public class DomainServiceResourceServerside extends ResourceAbstract implements
         init(RepresentationType.LIST, Where.STANDALONE_TABLES, RepresentationService.Intent.NOT_APPLICABLE);
 
         final List<ObjectAdapter> serviceAdapters =
-                Lists.newArrayList(
+                _Lists.newArrayList(
                         Iterables.filter(
                                 getResourceContext().getServiceAdapters(), NATURE_OF_MENU));
 
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
index eb1f915..8c53356 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
@@ -28,7 +28,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.grid.Grid;
@@ -307,7 +307,7 @@ public class DomainTypeResourceServerside extends ResourceAbstract implements Do
             final String argsParamName) {
 
         // simple style; simple return
-        if (!Strings.isNullOrEmpty(domainTypeStr)) {
+        if (!_Strings.isNullOrEmpty(domainTypeStr)) {
             return domainTypeStr;
         }
 
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
index 9e19213..3453ed4 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ObjectActionArgHelper.java
@@ -18,7 +18,7 @@ package org.apache.isis.viewer.restfulobjects.server.resources;
 
 import java.util.List;
 import java.util.Map;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -52,7 +52,7 @@ public class ObjectActionArgHelper {
     public List<ObjectAdapter> parseAndValidateArguments(final JsonRepresentation arguments) {
         final List<JsonRepresentation> argList = argListFor(action, arguments);
 
-        final List<ObjectAdapter> argAdapters = Lists.newArrayList();
+        final List<ObjectAdapter> argAdapters = _Lists.newArrayList();
         final List<ObjectActionParameter> parameters = action.getParameters();
         boolean valid = true;
         for (int i = 0; i < argList.size(); i++) {
@@ -93,7 +93,7 @@ public class ObjectActionArgHelper {
     }
 
     private static List<JsonRepresentation> argListFor(final ObjectAction action, final JsonRepresentation arguments) {
-        final List<JsonRepresentation> argList = Lists.newArrayList();
+        final List<JsonRepresentation> argList = _Lists.newArrayList();
 
         // ensure that we have no arguments that are not parameters
         arguments.streamMapEntries()
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java
index 12d968c..f67a5fe 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/imagecache/ImageResourceCacheKey.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.commons.lang.ClassUtil;
 
 final class ImageResourceCacheKey implements Serializable {
@@ -73,7 +73,7 @@ final class ImageResourceCacheKey implements Serializable {
     List<ImageResourceCacheKey> resourcePaths(final List<String> suffices) {
 
         ImageResourceCacheKey key;
-        final List<ImageResourceCacheKey> resourcePaths = Lists.newArrayList();
+        final List<ImageResourceCacheKey> resourcePaths = _Lists.newArrayList();
 
 
         boolean generated = false;
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
index 7341f29..6b62d8d 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/ConverterForObjectAdapterMemento.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.viewer.integration.wicket;
 
 import java.util.Locale;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.util.convert.IConverter;
 
@@ -50,7 +50,7 @@ public class ConverterForObjectAdapterMemento implements IConverter<ObjectAdapte
      */
     @Override
     public ObjectAdapterMemento convertToObject(final String value, final Locale locale) {
-        if (Strings.isNullOrEmpty(value)) {
+        if (_Strings.isNullOrEmpty(value)) {
             return null;
         }
         final RootOid oid = RootOid.deStringEncoded(value);
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java
index 047a081..4592bb4 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/LocalizerForIsis.java
@@ -22,7 +22,7 @@ import java.util.Locale;
 import java.util.MissingResourceException;
 import java.util.concurrent.Callable;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.Localizer;
@@ -60,7 +60,7 @@ public class LocalizerForIsis extends Localizer {
                     throws MissingResourceException {
 
         final String translated = translate(key, component);
-        if(!Strings.isNullOrEmpty(translated) && !translated.equals(key)) {
+        if(!_Strings.isNullOrEmpty(translated) && !translated.equals(key)) {
             return translated;
         }
         return super.getString(key, component, model, locale, style, defaultValue);
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index e4a77d7..f9ce3c8 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -26,7 +26,7 @@ import java.util.Set;
 import java.util.function.Function;
 
 import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.IPageFactory;
@@ -279,7 +279,7 @@ public class WebRequestCycleForIsis extends AbstractRequestCycleListener {
             });
 
     protected IRequestablePage errorPageFor(Exception ex) {
-        List<ExceptionRecognizer> exceptionRecognizers = Lists.newArrayList();
+        List<ExceptionRecognizer> exceptionRecognizers = _Lists.newArrayList();
         exceptionRecognizers.add(pageExpiredExceptionRecognizer);
 
         if(inIsisSession()) {
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
index da932b8..025dbec 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
@@ -27,7 +27,7 @@ import java.util.List;
 import javax.inject.Inject;
 
 import com.google.common.base.Supplier;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Multimap;
 import com.google.common.collect.Multimaps;
 import com.google.inject.Singleton;
@@ -57,7 +57,7 @@ public class ComponentFactoryRegistryDefault implements ComponentFactoryRegistry
         componentFactoriesByType = Multimaps.newListMultimap(new HashMap<ComponentType, Collection<ComponentFactory>>(), new Supplier<List<ComponentFactory>>() {
             @Override
             public List<ComponentFactory> get() {
-                return Lists.newArrayList();
+                return _Lists.newArrayList();
             }
         });
 
@@ -132,7 +132,7 @@ public class ComponentFactoryRegistryDefault implements ComponentFactoryRegistry
     @Override
     public List<ComponentFactory> findComponentFactories(final ComponentType componentType, final IModel<?> model) {
         final Collection<ComponentFactory> componentFactoryList = componentFactoriesByType.get(componentType);
-        final List<ComponentFactory> matching = Lists.newArrayList();
+        final List<ComponentFactory> matching = _Lists.newArrayList();
         for (final ComponentFactory componentFactory : componentFactoryList) {
             final ApplicationAdvice appliesTo = componentFactory.appliesTo(componentType, model);
             if (appliesTo.applies()) {
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index 07f8814..5f14b04 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -30,7 +30,7 @@ import com.google.common.base.Charsets;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.io.CharSource;
 import com.google.common.io.Files;
 import com.google.common.io.Resources;
@@ -93,7 +93,7 @@ public class TranslationsResolverWicket implements TranslationsResolver {
         final CharSource charSource = Resources.asCharSource(url, Charsets.UTF_8);
         final ImmutableList<String> strings = charSource.readLines();
         return Collections.unmodifiableList(
-                Lists.newArrayList(
+                _Lists.newArrayList(
                         Iterables.filter(strings, new Predicate<String>() {
                             @Override
                             public boolean apply(final String input) {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 4f84fb8..f2092cc 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -23,7 +23,7 @@ import java.util.List;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.markup.html.link.AbstractLink;
 
@@ -41,7 +41,7 @@ public class LinkAndLabel implements Serializable {
     public static List<LinkAndLabel> positioned(
             final List<LinkAndLabel> entityActionLinks,
             final ActionLayout.Position position) {
-        return Lists.newArrayList(Iterables.filter(entityActionLinks, Predicates.positioned(position)));
+        return _Lists.newArrayList(Iterables.filter(entityActionLinks, Predicates.positioned(position)));
     }
 
     public static LinkAndLabel newLinkAndLabel(
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/ListOfLinksModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/ListOfLinksModel.java
index 232246f..906de1c 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/ListOfLinksModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/ListOfLinksModel.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.model.links;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.model.LoadableDetachableModel;
 
@@ -34,7 +34,7 @@ public class ListOfLinksModel extends LoadableDetachableModel<List<LinkAndLabel>
 
     public ListOfLinksModel(List<LinkAndLabel> links) {
         // copy, in case supplied list is a non-serializable guava list using lazy evaluation;
-        this.links = Lists.newArrayList(links);
+        this.links = _Lists.newArrayList(links);
     }
 
     @Override
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
index 243cbac..a7a1bdf 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/ObjectAdapterMemento.java
@@ -25,7 +25,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.function.Function;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.hint.HintStore;
@@ -81,7 +81,7 @@ public class ObjectAdapterMemento implements Serializable {
     public static ObjectAdapterMemento createForList(
             final Collection<ObjectAdapterMemento> list,
             final ObjectSpecId objectSpecId) {
-        return list != null ? createForList(Lists.newArrayList(list), objectSpecId) :  null;
+        return list != null ? createForList(_Lists.newArrayList(list), objectSpecId) :  null;
     }
 
     enum Sort {
@@ -132,7 +132,7 @@ public class ObjectAdapterMemento implements Serializable {
                     final ConcurrencyChecking concurrencyChecking, final PersistenceSession persistenceSession,
                     final SpecificationLoader specificationLoader) {
                 final List<Object> listOfPojos =
-                        _Lists.transform(oam.list, Functions.toPojo(persistenceSession, specificationLoader));
+                        _Lists.map(oam.list, Functions.toPojo(persistenceSession, specificationLoader));
 
                 return persistenceSession.adapterFor(listOfPojos);
             }
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
index 6f17fbf..2d83862 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
@@ -21,8 +21,8 @@ package org.apache.isis.viewer.wicket.model.mementos;
 
 import java.util.List;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
+import java.util.function.Function;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
@@ -113,12 +113,7 @@ public enum PageParameterNames {
     }
 
     public List<String> getListFrom(PageParameters pageParameters) {
-        return Lists.transform(pageParameters.getValues(this.toString()), new Function<StringValue, String>() {
-            @Override
-            public String apply(StringValue input) {
-                return input.toString();
-            }
-        });
+        return _Lists.map(pageParameters.getValues(this.toString()), (StringValue input)->input.toString());
     }
 
 
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 27d7602..ea9cc20 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -28,6 +28,16 @@ import java.util.Map.Entry;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.util.resource.AbstractResourceStream;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.apache.wicket.util.resource.StringResourceStream;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.BookmarkPolicy;
 import org.apache.isis.applib.annotation.PromptStyle;
@@ -38,6 +48,7 @@ import org.apache.isis.applib.value.Clob;
 import org.apache.isis.applib.value.LocalResourcePath;
 import org.apache.isis.applib.value.NamedWithMimeType;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
@@ -61,18 +72,6 @@ import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
 import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
-import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
-import org.apache.wicket.request.http.handler.RedirectRequestHandler;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.util.resource.AbstractResourceStream;
-import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.StringResourceStream;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
 
 public class ActionModel extends BookmarkableModel<ObjectAdapter> implements FormExecutorContext {
 
@@ -258,7 +257,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
     /**
      * Lazily populated in {@link #getArgumentModel(ActionParameterMemento)}
      */
-    private final Map<Integer, ActionArgumentModel> arguments = Maps.newHashMap();
+    private final Map<Integer, ActionArgumentModel> arguments = _Maps.newHashMap();
 
 
     private ActionModel(final PageParameters pageParameters, final SpecificationLoader specificationLoader) {
@@ -651,10 +650,10 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> implements For
 
     private static List<ActionParameterMemento> buildParameterMementos(final List<ObjectActionParameter> parameters) {
         final List<ActionParameterMemento> parameterMementoList =
-                _Lists.transform(parameters, ObjectAdapterMemento.Functions.fromActionParameter());
+                _Lists.map(parameters, ObjectAdapterMemento.Functions.fromActionParameter());
         // we copy into a new array list otherwise we get lazy evaluation =
         // reference to a non-serializable object
-        return Lists.newArrayList(parameterMementoList);
+        return _Lists.newArrayList(parameterMementoList);
     }
 
 
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index 0251422..e84b44d 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -23,8 +23,8 @@ import java.io.Serializable;
 import java.util.List;
 import java.util.stream.Stream;
 
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
+import java.util.Objects;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
@@ -44,7 +44,7 @@ public class BookmarkTreeNode implements Serializable {
 
     private static final OidMarshaller OID_MARSHALLER = OidMarshaller.INSTANCE;
 
-    private final List<BookmarkTreeNode> children = Lists.newArrayList();
+    private final List<BookmarkTreeNode> children = _Lists.newArrayList();
     private final int depth;
 
     private final RootOid oidNoVer;
@@ -149,7 +149,7 @@ public class BookmarkTreeNode implements Serializable {
 
         // match only on the oid string
         final String candidateOidStr = oidStrFrom(candidateEntityModel);
-        boolean inGraph = Objects.equal(this.oidNoVerStr, candidateOidStr);
+        boolean inGraph = Objects.equals(this.oidNoVerStr, candidateOidStr);
         if(inGraph) {
             this.setTitle(candidateEntityModel.getTitle());
         }
@@ -181,7 +181,7 @@ public class BookmarkTreeNode implements Serializable {
 
         // check if target object of the action is the same (the oid str)
         final String candidateOidStr = oidStrFrom(candidateActionModel);
-        if(!Objects.equal(this.oidNoVerStr, candidateOidStr)) {
+        if(!Objects.equals(this.oidNoVerStr, candidateOidStr)) {
             return false;
         }
 
@@ -189,7 +189,7 @@ public class BookmarkTreeNode implements Serializable {
         List<String> thisArgs = PageParameterNames.ACTION_ARGS.getListFrom(pageParameters);
         PageParameters candidatePageParameters = candidateActionModel.getPageParameters();
         List<String> candidateArgs = PageParameterNames.ACTION_ARGS.getListFrom(candidatePageParameters);
-        if(!Objects.equal(thisArgs, candidateArgs)) {
+        if(!Objects.equals(thisArgs, candidateArgs)) {
             return false;
         }
 
@@ -226,7 +226,7 @@ public class BookmarkTreeNode implements Serializable {
                 return parentOidStr;
             })
             .forEach(parentOidStr->{
-                if(Objects.equal(this.oidNoVerStr, parentOidStr)) {
+                if(Objects.equals(this.oidNoVerStr, parentOidStr)) {
                     this.addChild(candidateBookmarkableModel);
                     whetherAdded[0] = true;
                 }
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
index c61a3c0..4e51df8 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
@@ -23,8 +23,8 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
-import com.google.common.base.Objects;
-import com.google.common.collect.Lists;
+import java.util.Objects;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
@@ -40,7 +40,7 @@ public class BookmarkedPagesModel extends ModelAbstract<List<BookmarkTreeNode>>
     private static final String MAX_SIZE_KEY = "isis.viewer.wicket.bookmarkedPages.maxSize";
     private static final int MAX_SIZE_DEFAULT_VALUE = 15;
 
-    private final List<BookmarkTreeNode> rootNodes = Lists.newArrayList();
+    private final List<BookmarkTreeNode> rootNodes = _Lists.newArrayList();
 
     private transient PageParameters current;
 
@@ -89,9 +89,9 @@ public class BookmarkedPagesModel extends ModelAbstract<List<BookmarkTreeNode>>
 
     @Override
     protected List<BookmarkTreeNode> load() {
-        List<BookmarkTreeNode> depthFirstGraph = Lists.newArrayList();
+        List<BookmarkTreeNode> depthFirstGraph = _Lists.newArrayList();
 
-        List<BookmarkTreeNode> sortedNodes = Lists.newArrayList(rootNodes);
+        List<BookmarkTreeNode> sortedNodes = _Lists.newArrayList(rootNodes);
         Collections.sort(sortedNodes, new BookmarkTreeNodeComparator(getSpecificationLoader()));
 
         for (BookmarkTreeNode rootNode : sortedNodes) {
@@ -101,7 +101,7 @@ public class BookmarkedPagesModel extends ModelAbstract<List<BookmarkTreeNode>>
     }
 
     public boolean isCurrent(PageParameters pageParameters) {
-        return Objects.equal(current, pageParameters);
+        return Objects.equals(current, pageParameters);
     }
 
     private static void cleanUpGarbage(List<BookmarkTreeNode> rootNodes) {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index 9f86432..f6c0717 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -177,7 +177,7 @@ UiHintContainer {
                 }
 
                 final List<ObjectAdapter> adapterList =
-                        _Lists.transform(objectList,
+                        _Lists.map(objectList,
                                 entityCollectionModel.getPersistenceSession()::adapterFor);
 
                 return adapterList;
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
index c761e20..abe12cb 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
@@ -20,7 +20,7 @@ import java.io.Serializable;
 import java.util.List;
 import java.util.Set;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
@@ -69,7 +69,7 @@ class HintPageParameterSerializer implements Serializable {
             getHintStore().removeAll(objectAdapterMemento.asHintingBookmark());
             return;
         }
-        List<ComponentHintKey> newComponentHintKeys = Lists.newArrayList();
+        List<ComponentHintKey> newComponentHintKeys = _Lists.newArrayList();
         for (String namedKey : namedKeys) {
             if (namedKey.startsWith(PREFIX)) {
                 String value = pageParameters.get(namedKey).toString(null);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 5da0393..895ecec 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -26,7 +26,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.Where;
@@ -927,7 +927,7 @@ public class ScalarModel extends EntityModel implements LinksProvider, FormExecu
     /**
      * Additional links to render (if any)
      */
-    private List<LinkAndLabel> linkAndLabels = Lists.newArrayList();
+    private List<LinkAndLabel> linkAndLabels = _Lists.newArrayList();
 
     @Override
     public List<LinkAndLabel> getLinks() {
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
index ded843e..d9b6d94 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ServiceActionsModel.java
@@ -20,13 +20,12 @@
 package org.apache.isis.viewer.wicket.model.models;
 
 import java.util.List;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import java.util.function.Predicate;
+
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacet;
-
 /**
  * Backing model for actions of application services menu bar (typically, as
  * displayed along the top or side of the page).
@@ -53,18 +52,15 @@ public class ServiceActionsModel extends ModelAbstract<List<ObjectAdapter>> {
 
     @Override
     protected List<ObjectAdapter> load() {
-        return Lists.newArrayList(Iterables.filter(getServiceAdapters(), with(menuBar)));
+        return _Lists.filter(getServiceAdapters(), with(menuBar));
     }
 
     private static Predicate<ObjectAdapter> with(final DomainServiceLayout.MenuBar menuBar) {
-        return new Predicate<ObjectAdapter>() {
-            @Override
-            public boolean apply(ObjectAdapter input) {
+        return (ObjectAdapter input) -> {
                 final DomainServiceLayoutFacet facet = input.getSpecification().getFacet
                         (DomainServiceLayoutFacet.class);
                 return (facet != null && facet.getMenuBar() == menuBar) ||
                         (facet == null && menuBar == DomainServiceLayout.MenuBar.PRIMARY);
-            }
         };
     }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
index 23a111e..70536dd 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
@@ -21,13 +21,12 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.Callable;
 
-import com.google.common.collect.Lists;
-
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.request.IRequestHandler;
 
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
@@ -230,7 +229,7 @@ public enum ActionResultResponseType {
         final Collection<Object> coll = (Collection<Object>) resultAdapter.getObject();
         return coll instanceof List
                 ? (List<Object>)coll
-                        : Lists.<Object>newArrayList(coll);
+                        : _Lists.<Object>newArrayList(coll);
     }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistrar.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistrar.java
index 4ca8c07..eb94fee 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistrar.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/app/registry/ComponentFactoryRegistrar.java
@@ -23,7 +23,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import com.google.common.base.Predicate;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
@@ -37,7 +37,7 @@ import org.apache.isis.viewer.wicket.ui.ComponentType;
 public interface ComponentFactoryRegistrar {
 
     public static class ComponentFactoryList implements Iterable<ComponentFactory> {
-        private final List<ComponentFactory> componentFactories = Lists.newArrayList();
+        private final List<ComponentFactory> componentFactories = _Lists.newArrayList();
 
         public void add(ComponentFactory componentFactory) {
             componentFactories.add(componentFactory);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
index 2e7df96..3a87e84 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
@@ -33,7 +33,7 @@ import java.util.jar.Manifest;
 
 import com.google.common.base.CharMatcher;
 import com.google.common.base.Splitter;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.core.commons.lang.CloseableExtensions;
@@ -47,7 +47,7 @@ public class JarManifestModel extends ModelAbstract<JarManifestModel> {
 
     private String aboutMessage;
 
-    private final List<JarManifestAttributes> manifests = Lists.newArrayList();
+    private final List<JarManifestAttributes> manifests = _Lists.newArrayList();
 
     /**
      * @param aboutMessage
@@ -80,7 +80,7 @@ public class JarManifestModel extends ModelAbstract<JarManifestModel> {
         } catch (IOException e) {
             return;
         }
-        final List<JarManifest> jarManifests = Lists.newArrayList();
+        final List<JarManifest> jarManifests = _Lists.newArrayList();
         while (resEnum.hasMoreElements()) {
             URL url = (URL)resEnum.nextElement();
             JarManifest jarManifest = new JarManifest(url);
@@ -108,7 +108,7 @@ public class JarManifestModel extends ModelAbstract<JarManifestModel> {
     }
 
     private static class JarManifest implements Comparable<JarManifest> {
-        private final List<JarManifestAttributes> attributes = Lists.newArrayList();
+        private final List<JarManifestAttributes> attributes = _Lists.newArrayList();
 
         private final URL url;
 
@@ -160,7 +160,7 @@ public class JarManifestModel extends ModelAbstract<JarManifestModel> {
         strippedPath = stripSuffix(strippedPath, "!");
 
         // split the path into parts, and reverse
-        List<String> parts = Lists.newArrayList(Splitter.on(CharMatcher.anyOf("/\\")).split(strippedPath));
+        List<String> parts = _Lists.newArrayList(Splitter.on(CharMatcher.anyOf("/\\")).split(strippedPath));
         Collections.reverse(parts);
 
         // searching from the end, return the jar name if possible
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 473a8bf..23c8e7b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.MarkupContainer;
@@ -154,7 +154,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                         link.addOrReplace(viewTitleLabel);
 
                         final String cssClassFa = linkAndLabel.getCssClassFa();
-                        if (Strings.isNullOrEmpty(cssClassFa)) {
+                        if (_Strings.isNullOrEmpty(cssClassFa)) {
                             viewTitleLabel.add(new CssClassAppender("menuLinkSpacer"));
                         } else {
                             final CssClassFaPosition position = linkAndLabel.getCssClassFaPosition();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
index 1a53ee9..37bd29f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelUtil.java
@@ -21,10 +21,8 @@ package org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions;
 import java.util.Collections;
 import java.util.List;
 
-import com.google.common.base.Function;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
@@ -88,16 +86,11 @@ public final class LinkAndLabelUtil {
 
         final ActionLinkFactory linkFactory = new EntityActionLinkFactory(parentEntityModel, scalarModelForAssociationIfAny);
 
-        return FluentIterable.from(objectActions)
-                .transform(new Function<ObjectAction, LinkAndLabel>() {
-
-                    @Override
-                    public LinkAndLabel apply(ObjectAction objectAction) {
+        return _Lists.transform(objectActions, stream -> stream
+                .map((ObjectAction objectAction) -> {
                         return linkFactory.newLink(objectAction, AdditionalLinksPanel.ID_ADDITIONAL_LINK,toggledMementosProviderIfAny);
-                    }
                 })
-                .filter(Predicates.<LinkAndLabel>notNull())
-                .toList();
+                .filter(_NullSafe::isPresent));
     }
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index 60ceca2..dc8d305 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -21,8 +21,8 @@ import java.io.Serializable;
 import java.util.Collections;
 import java.util.List;
 
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
@@ -158,7 +158,7 @@ class CssMenuItem implements Serializable {
     }
 
     private final String name;
-    private final List<CssMenuItem> subMenuItems = Lists.newArrayList();
+    private final List<CssMenuItem> subMenuItems = _Lists.newArrayList();
     private CssMenuItem parent;
 
     private AbstractLink link;
@@ -446,7 +446,7 @@ class CssMenuItem implements Serializable {
             link.add(new CssClassAppender(this.actionIdentifier));
 
             String cssClassFa = getCssClassFa();
-            if (!Strings.isNullOrEmpty(cssClassFa)) {
+            if (!_Strings.isNullOrEmpty(cssClassFa)) {
                 label.add(new CssClassFaBehavior(cssClassFa, getCssClassFaPosition()));
             }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 643829e..daa41f3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -21,12 +21,12 @@ package org.apache.isis.viewer.wicket.ui.components.actionmenu.serviceactions;
 
 import java.util.List;
 
-import com.google.common.base.Function;
-import com.google.common.base.Strings;
+import java.util.function.Function;
+import org.apache.isis.commons.internal.base._Strings;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
@@ -92,7 +92,7 @@ public final class ServiceActionUtil {
                 listItem.add(tooltipBehavior);
             } else {
 
-                if(!Strings.isNullOrEmpty(menuItem.getDescription())) {
+                if(!_Strings.isNullOrEmpty(menuItem.getDescription())) {
                     //XXX ISIS-1625, tooltips for menu actions
                     listItem.add(new AttributeModifier("title", Model.of(menuItem.getDescription())));
 
@@ -115,14 +115,14 @@ public final class ServiceActionUtil {
             leafItem.add(subMenuItemLink);
 
             String cssClassFa = menuItem.getCssClassFa();
-            if (Strings.isNullOrEmpty(cssClassFa)) {
+            if (_Strings.isNullOrEmpty(cssClassFa)) {
                 subMenuItemLink.add(new CssClassAppender("menuLinkSpacer"));
             } else {
                 menuItemLabel.add(new CssClassFaBehavior(cssClassFa, menuItem.getCssClassFaPosition()));
             }
 
             String cssClass = menuItem.getCssClass();
-            if (!Strings.isNullOrEmpty(cssClass)) {
+            if (!_Strings.isNullOrEmpty(cssClass)) {
                 subMenuItemLink.add(new CssClassAppender(cssClass));
             }
         } else {
@@ -160,7 +160,7 @@ public final class ServiceActionUtil {
     }
 
     static List<CssMenuItem> withSeparators(List<CssMenuItem> subMenuItems) {
-        final List<CssMenuItem> itemsWithSeparators = Lists.newArrayList();
+        final List<CssMenuItem> itemsWithSeparators = _Lists.newArrayList();
         for (CssMenuItem menuItem : subMenuItems) {
             if(menuItem.requiresSeparator()) {
                 if(!itemsWithSeparators.isEmpty()) {
@@ -218,16 +218,11 @@ public final class ServiceActionUtil {
         // menuBar in question, whereas the "Other" menu may reference a service which is defined for some other menubar
         final List<ObjectAdapter> serviceAdapters = IsisContext.getSessionFactory().getCurrentSession().getPersistenceSession().getServices();
         final ImmutableMap<ObjectAdapter, String> oidByServiceAdapter = FluentIterable.from(serviceAdapters)
-                .toMap(new Function<ObjectAdapter, String>() {
-                    @Override
-                    public String apply(final ObjectAdapter objectAdapter) {
-                        return objectAdapter.getOid().enStringNoVersion();
-                    }
-                });
+                .toMap((final ObjectAdapter objectAdapter) -> objectAdapter.getOid().enStringNoVersion());
         final ImmutableBiMap<String, ObjectAdapter> serviceAdapterByOid = ImmutableBiMap
                 .copyOf(oidByServiceAdapter).inverse();
 
-        final List<CssMenuItem> menuItems = Lists.newArrayList();
+        final List<CssMenuItem> menuItems = _Lists.newArrayList();
         for (final BS3Menu menu : menuBar.getMenus()) {
 
             final CssMenuItem serviceMenu = CssMenuItem.newMenuItem(menu.getNamed()).build();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.java
index 9f4fcb7..2f7805d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.java
@@ -22,7 +22,9 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Function;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import com.google.common.base.Joiner;
 import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
@@ -39,6 +41,7 @@ import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.request.resource.CssResourceReference;
 
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.button.DropdownAutoOpenJavaScriptReference;
@@ -91,10 +94,8 @@ public class ServiceActionsPanel extends Panel {
                     }
                 };
                 final List<CssMenuItem> childItems = menuItem.getSubMenuItems();
-                final String cssForServices = Joiner.on(" ").join(
-                        FluentIterable.from(childItems)
-                        .transform(new Function<CssMenuItem, String>() {
-                            @Nullable @Override public String apply(final CssMenuItem input) {
+                final String cssForServices = _NullSafe.stream(childItems) 
+                        .map((final CssMenuItem input) -> {
                                 final String actionIdentifier = input.getActionIdentifier();
                                 if (actionIdentifier != null) {
                                     // busrules-busrulesobjects-findbyname
@@ -105,19 +106,16 @@ public class ServiceActionsPanel extends Panel {
                                 } else {
                                     return null;
                                 }
-                            }
                         })
-                        .filter(new Predicate<String>() {
-                            @Override public boolean apply(@Nullable final String input) {
+                        .filter((@Nullable final String input) -> {
                                 return input != null;
-                            }
                         })
-                        .transform(new Function<String, String>() {
-                            @Override public String apply(final String input) {
+                        .map((final String input) -> {
                                 return "isis-" + input;
-                            }
                         })
-                        .toSet());
+                        .distinct()
+                        .collect(Collectors.joining(" "));
+
                 listItem.add(new CssClassAppender(cssForServices));
 
                 topMenu.add(subMenuItemsView);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
index e1665c8..033b36a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.java
@@ -33,7 +33,7 @@ import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.request.resource.CssResourceReference;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * A panel responsible to render the application actions as menu in a navigation bar.
@@ -81,7 +81,7 @@ public class TertiaryActionsPanel extends Panel {
     }
 
     protected List<CssMenuItem> flatten(List<CssMenuItem> menuItems) {
-        List<CssMenuItem> subMenuItems = Lists.newArrayList();
+        List<CssMenuItem> subMenuItems = _Lists.newArrayList();
         for (CssMenuItem menuItem : menuItems) {
             subMenuItems.addAll(menuItem.getSubMenuItems());
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index d00e2ac..3163813 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -22,7 +22,7 @@ package org.apache.isis.viewer.wicket.ui.components.collection;
 import java.io.Serializable;
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -72,7 +72,7 @@ BulkActionsProvider {
             final EntityCollectionModel collectionModel) {
         super(id, collectionModel);
 
-        final List<LinkAndLabel> entityActionLinks = Lists.newArrayList();
+        final List<LinkAndLabel> entityActionLinks = _Lists.newArrayList();
 
         final OneToManyAssociation otma = collectionModel.getCollectionMemento().getCollection(collectionModel.getSpecificationLoader());
         final EntityModel entityModel = collectionModel.getEntityModel();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsHelper.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsHelper.java
index c50a3f0..056b8f7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsHelper.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsHelper.java
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.spec.ActionType;
@@ -69,7 +69,7 @@ public class BulkActionsHelper implements Serializable {
     }
 
     private List<ActionType> inferActionTypes(final IsisSessionFactory isisSessionFactory) {
-        final List<ActionType> actionTypes = Lists.newArrayList();
+        final List<ActionType> actionTypes = _Lists.newArrayList();
         actionTypes.add(ActionType.USER);
         final DeploymentCategory deploymentCategory = isisSessionFactory.getDeploymentCategory();
         if ( !deploymentCategory.isProduction()) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index 0bfde98..dcb8e7e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -57,7 +57,7 @@ import org.apache.wicket.markup.html.link.Link;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public final class BulkActionsLinkFactory implements ActionLinkFactory {
 
@@ -101,7 +101,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
                             .collect(Collectors.toList());
 
                     final List<Object> domainObjects =
-                            _Lists.transform(toggledAdapters, ObjectAdapter.Functions.getObject());
+                            _Lists.map(toggledAdapters, ObjectAdapter.Functions.getObject());
 
                     final ActionInvocationContext actionInvocationContext = getServicesInjector().lookupService(ActionInvocationContext.class);
                     if (actionInvocationContext != null) {
@@ -182,7 +182,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
 
             private void recover() {
                 // resync with the objectstore
-                final List<ObjectAdapterMemento> toggleMementosList = Lists.newArrayList(model.getToggleMementosList());
+                final List<ObjectAdapterMemento> toggleMementosList = _Lists.newArrayList(model.getToggleMementosList());
                 for (ObjectAdapterMemento oam : toggleMementosList) {
                     // just requesting the adapter will sync the OAM's version with the objectstore
                     oam.getObjectAdapter(ConcurrencyChecking.NO_CHECK, getPersistenceSession(), getSpecificationLoader());
@@ -205,7 +205,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
             }
 
             private List<ObjectAdapter> persistentAdaptersWithin(List<ObjectAdapter> adapters) {
-                return Lists.newArrayList(Iterables.filter(adapters, new Predicate<ObjectAdapter>() {
+                return _Lists.newArrayList(Iterables.filter(adapters, new Predicate<ObjectAdapter>() {
                     @Override
                     public boolean apply(ObjectAdapter input) {
                         return !input.isTransient() && !input.isDestroyed();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionSelectorHelper.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionSelectorHelper.java
index af5a1ef..6c3e06e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionSelectorHelper.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionSelectorHelper.java
@@ -25,7 +25,7 @@ import java.util.Objects;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
@@ -73,7 +73,7 @@ public class CollectionSelectorHelper implements Serializable {
 
     private List<ComponentFactory> locateComponentFactories(ComponentFactoryRegistry componentFactoryRegistry) {
         final List<ComponentFactory> componentFactories = componentFactoryRegistry.findComponentFactories(ComponentType.COLLECTION_CONTENTS, model);
-        List<ComponentFactory> otherFactories = Lists.newArrayList(Collections2.filter(componentFactories, new Predicate<ComponentFactory>() {
+        List<ComponentFactory> otherFactories = _Lists.newArrayList(Collections2.filter(componentFactories, new Predicate<ComponentFactory>() {
             @Override
             public boolean apply(final ComponentFactory input) {
                 return input.getClass() != CollectionContentsMultipleViewsPanelFactory.class;
@@ -163,7 +163,7 @@ public class CollectionSelectorHelper implements Serializable {
     static List<ComponentFactory> orderAjaxTableToEnd(List<ComponentFactory> componentFactories) {
         int ajaxTableIdx = findAjaxTable(componentFactories);
         if (ajaxTableIdx >= 0) {
-            List<ComponentFactory> orderedFactories = Lists.newArrayList(componentFactories);
+            List<ComponentFactory> orderedFactories = _Lists.newArrayList(componentFactories);
             ComponentFactory ajaxTableFactory = orderedFactories.remove(ajaxTableIdx);
             orderedFactories.add(ajaxTableFactory);
             return orderedFactories;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index a699a04..221543d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Ordering;
 
 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
@@ -111,7 +111,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
 
         final ObjectAssociation sortProperty = lookupAssociationFor(sort);
         if(sortProperty == null) {
-            return Lists.newArrayList(adapters);
+            return _Lists.newArrayList(adapters);
         }
 
         final Ordering<ObjectAdapter> ordering =
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
index 0d4855f..3bd7f7f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterPropertyColumn.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
@@ -82,7 +82,7 @@ public final class ObjectAdapterPropertyColumn extends ColumnAbstract<ObjectAdap
     @Override
     public String getCssClass() {
         final String cssClass = super.getCssClass();
-        return (!Strings.isNullOrEmpty(cssClass) ? (cssClass + " ") : "") +
+        return (!_Strings.isNullOrEmpty(cssClass) ? (cssClass + " ") : "") +
                 CssClassAppender.asCssStyle("isis-" + parentTypeName.replace(".","-") + "-" + propertyExpression);
     }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
index 0bceaf0..2901ba6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterToggleboxColumn.java
@@ -20,7 +20,7 @@
 package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns;
 
 import java.util.List;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -94,7 +94,7 @@ public final class ObjectAdapterToggleboxColumn extends ColumnAbstract<ObjectAda
         return toggle;
     }
 
-    private final List<ContainedToggleboxPanel> rowToggles = Lists.newArrayList();
+    private final List<ContainedToggleboxPanel> rowToggles = _Lists.newArrayList();
 
     @Override
     public void populateItem(final Item<ICellPopulator<ObjectAdapter>> cellItem, final String componentId, final IModel<ObjectAdapter> rowModel) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
index 066e1c3..eba1b45 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/summary/CollectionContentsAsSummary.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.stream.Stream;
 
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
@@ -115,8 +115,8 @@ public class CollectionContentsAsSummary extends PanelAbstract<EntityCollectionM
         private BigDecimal sum = BigDecimal.ZERO;
         private BigDecimal min = null;
         private BigDecimal max = null;
-        private final List<String> titles = Lists.newArrayList();
-        private final List<BigDecimal> values = Lists.newArrayList();
+        private final List<String> titles = _Lists.newArrayList();
+        private final List<BigDecimal> values = _Lists.newArrayList();
         private BigDecimal average;
         private String propertyName;
 
@@ -176,7 +176,7 @@ public class CollectionContentsAsSummary extends PanelAbstract<EntityCollectionM
         }
 
         private static List<Number> asNumbers(List<BigDecimal> values) {
-            return Lists.newArrayList(Iterables.transform(values, BIGDECIMAL_TO_NUMBER));
+            return _Lists.newArrayList(Iterables.transform(values, BIGDECIMAL_TO_NUMBER));
         }
 
         private static final com.google.common.base.Function<BigDecimal, Number> BIGDECIMAL_TO_NUMBER = new com.google.common.base.Function<BigDecimal, Number>(){
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
index 6210a0d..efcf15d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
@@ -22,12 +22,8 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -38,6 +34,8 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.component.FieldSet;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
@@ -95,7 +93,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
 
     private List<Component> buildGui() {
 
-        final List<Component> childComponents = Lists.newArrayList();
+        final List<Component> childComponents = _Lists.newArrayList();
 
         setOutputMarkupPlaceholderTag(true);
         setOutputMarkupId(true);
@@ -106,7 +104,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
 
         final ImmutableList<ObjectAssociation> associations = getObjectAssociations();
 
-        final List<LinkAndLabel> memberGroupActions = Lists.newArrayList();
+        final List<LinkAndLabel> memberGroupActions = _Lists.newArrayList();
         final RepeatingView propertyRv = new RepeatingView(ID_PROPERTIES);
         div.addOrReplace(propertyRv);
 
@@ -120,7 +118,7 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
 
         WebMarkupContainer panelHeading = new WebMarkupContainer("panelHeading");
         div.addOrReplace(panelHeading);
-        if(Strings.isNullOrEmpty(groupName)) {
+        if(_Strings.isNullOrEmpty(groupName)) {
             panelHeading.setVisibilityAllowed(false);
         } else {
             panelHeading.addOrReplace(new Label(ID_MEMBER_GROUP_NAME, groupName));
@@ -172,15 +170,10 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
         //
 
         return FluentIterable.from(properties)
-                .filter(new Predicate<PropertyLayoutData>() {
-                    @Override
-                    public boolean apply(final PropertyLayoutData propertyLayoutData) {
+                .filter((final PropertyLayoutData propertyLayoutData) -> {
                         return propertyLayoutData.getMetadataError() == null;
-                    }
                 })
-                .transform(new Function<PropertyLayoutData, ObjectAssociation>() {
-                    @Override
-                    public ObjectAssociation apply(final PropertyLayoutData propertyLayoutData) {
+                .transform((final PropertyLayoutData propertyLayoutData)->{
                         ObjectSpecification adapterSpecification = adapter.getSpecification();
                         try {
                             // this shouldn't happen, but has been reported (https://issues.apache.org/jira/browse/ISIS-1574),
@@ -189,10 +182,8 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
                         } catch (ObjectSpecificationException e) {
                             return null;
                         }
-                    }
                 })
-                .filter(new Predicate<ObjectAssociation>() {
-                    @Override public boolean apply(@Nullable final ObjectAssociation objectAssociation) {
+                .filter((@Nullable final ObjectAssociation objectAssociation) -> {
                         if(objectAssociation == null) {
                             return false;
                         }
@@ -204,7 +195,6 @@ public class PropertyGroup extends PanelAbstract<EntityModel> implements HasDyna
                             }
                         }
                         return true;
-                    }
                 })
                 .toList();
     }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
index 32a482d..c2a9cbc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanel.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
@@ -145,7 +145,7 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel>  {
             Components.permanentlyHide(markupContainer, ID_ADDITIONAL_LINKS);
             return;
         }
-        linkAndLabels = Lists.newArrayList(linkAndLabels); // copy, to serialize any lazy evaluation
+        linkAndLabels = _Lists.newArrayList(linkAndLabels); // copy, to serialize any lazy evaluation
 
         AdditionalLinksPanel.addAdditionalLinks(
                 markupContainer, ID_ADDITIONAL_LINKS,
@@ -374,7 +374,7 @@ public class EntityLinksSelectorPanel extends PanelAbstract<EntityModel>  {
 
     private List<ComponentFactory> findOtherComponentFactories(final EntityModel model, final ComponentFactory ignoreFactory) {
         final List<ComponentFactory> componentFactories = getComponentFactoryRegistry().findComponentFactories(componentType, model);
-        ArrayList<ComponentFactory> otherFactories = Lists.newArrayList(Collections2.filter(componentFactories, new Predicate<ComponentFactory>() {
+        ArrayList<ComponentFactory> otherFactories = _Lists.newArrayList(Collections2.filter(componentFactories, new Predicate<ComponentFactory>() {
             @Override
             public boolean apply(final ComponentFactory input) {
                 return input != ignoreFactory;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/Util.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/Util.java
index e7bc76b..1289ca9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/Util.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/Util.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.components.layout.bs3;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.MarkupContainer;
 
@@ -38,7 +38,7 @@ public class Util {
         }
     }
     public static void appendCssClass(final MarkupContainer markupContainer, final BS3ElementAbstract element, final String existingCssClass) {
-        final String cssClass = existingCssClass + (!Strings.isNullOrEmpty(element.getCssClass())? (" " + element.getCssClass()): "");
+        final String cssClass = existingCssClass + (!_Strings.isNullOrEmpty(element.getCssClass())? (" " + element.getCssClass()): "");
         CssClassAppender.appendCssClassTo(markupContainer, cssClass);
     }
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/col/Col.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/col/Col.java
index 59c0784..20de4f3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/col/Col.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/layout/bs3/col/Col.java
@@ -23,14 +23,12 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Function;
 import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
 import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+
 import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
@@ -40,6 +38,7 @@ import org.apache.isis.applib.layout.grid.bootstrap3.BS3Row;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Tab;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3TabGroup;
 import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -124,19 +123,14 @@ public class Col extends PanelAbstract<EntityModel> implements HasDynamicallyVis
         // actions
         // (rendering depends on whether also showing the icon/title)
         final List<ActionLayoutData> actionLayoutDatas = bs3Col.getActions();
-        final List<ObjectAction> visibleActions =
-                FluentIterable.from(actionLayoutDatas)
-                .filter(new Predicate<ActionLayoutData>() {
-                    @Override public boolean apply(final ActionLayoutData actionLayoutData) {
+        final List<ObjectAction> visibleActions = _Lists.transform(actionLayoutDatas, stream->stream
+                .filter((final ActionLayoutData actionLayoutData) -> {
                         return actionLayoutData.getMetadataError() == null;
-                    }
                 })
-                .transform(new Function<ActionLayoutData, ObjectAction>() {
-                    @Nullable @Override public ObjectAction apply(@Nullable final ActionLayoutData actionLayoutData) {
+                .map((@Nullable final ActionLayoutData actionLayoutData) -> {
                         return getModel().getTypeOfSpecification().getObjectAction(actionLayoutData.getId());
-                    }
                 })
-                .filter(Predicates.<ObjectAction>notNull())
+                .filter(_NullSafe::isPresent));
                 //
                 // visibility needs to be determined at point of rendering, by ActionLink itself
                 //
@@ -147,7 +141,7 @@ public class Col extends PanelAbstract<EntityModel> implements HasDynamicallyVis
                 //        return visibility.isAllowed();
                 //    }
                 //})
-                .toList();
+                
         final List<LinkAndLabel> entityActionLinks =
                 LinkAndLabelUtil.asActionLinksForAdditionalLinksPanel(getModel(), visibleActions, null);
 
@@ -164,7 +158,7 @@ public class Col extends PanelAbstract<EntityModel> implements HasDynamicallyVis
 
 
         // rows
-        final List<BS3Row> rows = Lists.newArrayList(this.bs3Col.getRows());
+        final List<BS3Row> rows = _Lists.newArrayList(this.bs3Col.getRows());
         if(!rows.isEmpty()) {
             final RepeatingViewWithDynamicallyVisibleContent rowsRv = buildRows(ID_ROWS, rows);
             div.add(rowsRv);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 3a43d4f..0c11a39 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -354,7 +354,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
 
     // //////////////////////////////////////
 
-    private final List<ScalarModelSubscriber> subscribers = Lists.newArrayList();
+    private final List<ScalarModelSubscriber> subscribers = _Lists.newArrayList();
 
     public void notifyOnChange(final ScalarModelSubscriber subscriber) {
         subscribers.add(subscriber);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 967df08..149884d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -21,8 +21,8 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -296,7 +296,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
             if(linkAndLabelAsIfEdit != null) {
                 // irrespective of whether the property is itself editable, if the action is annotated as
                 // INLINE_AS_IF_EDIT then we never render it as an action
-                linkAndLabels = Lists.newArrayList(linkAndLabels);
+                linkAndLabels = _Lists.newArrayList(linkAndLabels);
                 linkAndLabels.remove(linkAndLabelAsIfEdit);
             }
 
@@ -364,7 +364,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
 
     private void addCssFromMetaModel() {
         final String cssForMetaModel = getModel().getCssClass();
-        if (!Strings.isNullOrEmpty(cssForMetaModel)) {
+        if (!_Strings.isNullOrEmpty(cssForMetaModel)) {
             CssClassAppender.appendCssClassTo(this, CssClassAppender.asCssStyle(cssForMetaModel));
         }
 
@@ -434,7 +434,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
         }
     }
 
-    private final List<ScalarModelSubscriber2> subscribers = Lists.newArrayList();
+    private final List<ScalarModelSubscriber2> subscribers = _Lists.newArrayList();
 
     public void notifyOnChange(final ScalarModelSubscriber2 subscriber) {
         subscribers.add(subscriber);
@@ -550,7 +550,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
         final ScalarModel model = getModel();
         if(model.isRequired() && model.isEnabled()) {
             final String label = scalarName.getDefaultModelObjectAsString();
-            if(!Strings.isNullOrEmpty(label)) {
+            if(!_Strings.isNullOrEmpty(label)) {
                 scalarName.add(new CssClassAppender("mandatory"));
             }
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 9dbfc8f..f9c0856 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -56,7 +56,7 @@ import org.apache.wicket.model.Model;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Settings;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * Panel for rendering scalars which of are of reference type (as opposed to
@@ -349,11 +349,11 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
 
     // called by setProviderAndCurrAndPending
     private List<ObjectAdapterMemento> obtainChoiceMementos(final ObjectAdapter[] argsIfAvailable) {
-        final List<ObjectAdapter> choices = Lists.newArrayList();
+        final List<ObjectAdapter> choices = _Lists.newArrayList();
         if(getModel().hasChoices()) {
             choices.addAll(getModel().getChoices(argsIfAvailable, getAuthenticationSession(), getDeploymentCategory()));
         }
-        return _Lists.transform(choices, ObjectAdapterMemento.Functions.fromAdapter());
+        return _Lists.map(choices, ObjectAdapterMemento.Functions.fromAdapter());
     }
 
     // called by setProviderAndCurrAndPending
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverter.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverter.java
index 0e5a33e..a8b5183 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverter.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverter.java
@@ -20,7 +20,7 @@ import java.util.Locale;
 import java.util.UUID;
 import java.util.regex.Pattern;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.util.convert.ConversionException;
 import org.apache.wicket.util.convert.IConverter;
@@ -37,7 +37,7 @@ public class UuidConverter implements IConverter<UUID>
     public UUID convertToObject(String value, Locale locale)
             throws ConversionException {
 
-        if(Strings.isNullOrEmpty(value)) {
+        if(_Strings.isNullOrEmpty(value)) {
             return null;
         }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 3d9eaab..bd22d54 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -73,7 +73,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract impleme
         final List<ObjectAdapter> choices =
                 scalarModel.getChoices(argumentsIfAvailable, getAuthenticationSession(), getDeploymentCategory());
 
-        return _Lists.transform(choices, ObjectAdapterMemento.Functions.fromAdapter());
+        return _Lists.map(choices, ObjectAdapterMemento.Functions.fromAdapter());
     }
 
     // ///////////////////////////////////////////////////////////////////
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
index 11647fa..2197bbd 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/standalonecollection/StandaloneCollectionPanel.java
@@ -21,9 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.standalonecollection;
 
 import java.util.List;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -31,6 +28,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.Model;
 
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler;
@@ -185,12 +183,8 @@ implements CollectionCountProvider, CollectionSelectorProvider, BulkActionsProvi
 
         final List<ObjectAction> bulkActions = bulkActionsHelper.getBulkActions(getIsisSessionFactory());
 
-        List<LinkAndLabel> linkAndLabels = Lists.transform(bulkActions, new Function<ObjectAction, LinkAndLabel>(){
-            @Override
-            public LinkAndLabel apply(ObjectAction objectAction) {
-                return linkFactory.newLink(objectAction, ID_ADDITIONAL_LINK, null);
-            }
-        });
+        final List<LinkAndLabel> linkAndLabels = _Lists.map(bulkActions, (ObjectAction objectAction) ->
+                linkFactory.newLink(objectAction, ID_ADDITIONAL_LINK, null));
 
         AdditionalLinksPanel.addAdditionalLinks(
                 outerDiv, ID_ADDITIONAL_LINKS, linkAndLabels, AdditionalLinksPanel.Style.INLINE_LIST);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
index cb04149..a5ca7c0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
@@ -21,7 +21,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -43,10 +43,10 @@ public class BreadcrumbModel implements Serializable {
 
     private final Map<String, Bookmark> bookmarkByOidStr = Maps.newHashMap();
     private final Map<Bookmark, String> oidStrByBookmark = Maps.newHashMap();
-    private final List<Bookmark> list = Lists.newArrayList();
+    private final List<Bookmark> list = _Lists.newArrayList();
 
     public List<EntityModel> getList() {
-        List<EntityModel> entityModels = Lists.newArrayList();
+        List<EntityModel> entityModels = _Lists.newArrayList();
         for (Bookmark bookmark : list) {
             EntityModel entityModel = toEntityModel(bookmark);
             entityModels.add(entityModel);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index dbb6ca1..a9b07fc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -21,7 +21,7 @@ import java.util.List;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -97,8 +97,8 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
 
             @Override
             public void query(String term, int page, Response<EntityModel> response) {
-                final List<EntityModel> breadCrumbList = Lists.newArrayList(breadcrumbModel.getList());
-                final List<EntityModel> checkedList = Lists.newArrayList(
+                final List<EntityModel> breadCrumbList = _Lists.newArrayList(breadcrumbModel.getList());
+                final List<EntityModel> checkedList = _Lists.newArrayList(
                         Iterables.filter(breadCrumbList, new Predicate<EntityModel>() {
                             @Override
                             public boolean apply(final EntityModel input) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/buttons/ContainedButtonPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/buttons/ContainedButtonPanel.java
index 64fe488..c515096 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/buttons/ContainedButtonPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/buttons/ContainedButtonPanel.java
@@ -20,7 +20,7 @@
 package org.apache.isis.viewer.wicket.ui.components.widgets.buttons;
 
 import java.util.List;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -42,7 +42,7 @@ public class ContainedButtonPanel extends PanelAbstract<Model<String>> {
     private static final String ID_BUTTON = "button";
 
     private final Button button;
-    private final List<Component> componentsToRerender = Lists.newArrayList();
+    private final List<Component> componentsToRerender = _Lists.newArrayList();
 
     public ContainedButtonPanel(final String id, final String caption) {
         super(id, Model.of(caption));
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/checkbox/ContainedToggleboxPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/checkbox/ContainedToggleboxPanel.java
index 8580faa..0703160 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/checkbox/ContainedToggleboxPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/checkbox/ContainedToggleboxPanel.java
@@ -38,7 +38,7 @@ public class ContainedToggleboxPanel extends PanelAbstract<Model<Boolean>> {
     private static final String ID_TOGGLEBOX = "togglebox";
 
     private final AjaxCheckBox checkbox;
-    //    private final List<Component> componentsToRerender = Lists.newArrayList();
+    //    private final List<Component> componentsToRerender = _Lists.newArrayList();
 
     public ContainedToggleboxPanel(final String id) {
         super(id);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 1f64308..a214066 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -22,11 +22,6 @@ import java.util.concurrent.Callable;
 
 import javax.annotation.Nullable;
 
-import com.google.common.base.Function;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-
 import org.apache.wicket.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
@@ -35,6 +30,8 @@ import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
 import org.apache.isis.core.metamodel.postprocessors.param.ActionParameterDefaultsFacetFromAssociatedCollection;
@@ -106,10 +103,8 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
                     final List<ObjectAdapterMemento> selectedMementos =
                             toggledMementosProviderIfAny.getToggles();
 
-                    final ImmutableList<Object> selectedPojos = FluentIterable.from(selectedMementos)
-                            .transform(new Function<ObjectAdapterMemento, Object>() {
-                                @Nullable @Override
-                                public Object apply(@Nullable final ObjectAdapterMemento input) {
+                    final List<Object> selectedPojos = _Lists.transform(selectedMementos, stream->stream
+                            .map((@Nullable final ObjectAdapterMemento input) -> {
                                     if(input == null) {
                                         return null;
                                     }
@@ -117,10 +112,9 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
                                             ConcurrencyChecking.NO_CHECK,
                                             persistenceSession, specificationLoader);
                                     return objectAdapter != null ? objectAdapter.getObject() : null;
-                                }
                             })
-                            .filter(Predicates.notNull())
-                            .toList();
+                            .filter(_NullSafe::isPresent)
+                            );
 
                     final ActionPrompt actionPrompt = ActionParameterDefaultsFacetFromAssociatedCollection.withSelected(
                             selectedPojos,
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
index d5d1724..56bdb0f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
@@ -26,7 +26,7 @@ import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.request.resource.CssResourceReference;
 import org.wicketstuff.select2.ApplicationSettings;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 /**
  * A CSS reference that loads <a href="https://github.com/ivaynberg/select2/">Select2.css</a>
@@ -34,6 +34,7 @@ import com.google.common.collect.Lists;
  * <p>Depends on select2.css.</p>
  */
 public class Select2BootstrapCssReference extends CssResourceReference {
+    private static final long serialVersionUID = 1L;
 
     public Select2BootstrapCssReference() {
         super(Select2BootstrapCssReference.class, "select2-bootstrap.css");
@@ -42,6 +43,6 @@ public class Select2BootstrapCssReference extends CssResourceReference {
     @Override
     public List<HeaderItem> getDependencies() {
         CssReferenceHeaderItem select2CssReference = CssHeaderItem.forReference(new CssResourceReference(ApplicationSettings.class, "res/css/select2.css"));
-        return Lists.<HeaderItem>newArrayList(select2CssReference);
+        return _Lists.<HeaderItem>of(select2CssReference);
     }
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2JsReference.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2JsReference.java
index b454f32..77daeed 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2JsReference.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2JsReference.java
@@ -18,20 +18,23 @@
  */
 package org.apache.isis.viewer.wicket.ui.components.widgets.select2;
 
-import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
-
 import java.util.List;
-import com.google.common.collect.Lists;
+
 import org.apache.wicket.Application;
 import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.request.resource.ResourceReference;
 
+import org.apache.isis.commons.internal.collections._Lists;
+
+import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
+
 /**
  * A JavaScript reference that loads <a href="https://github.com/ivaynberg/select2/">Select2.js</a>
  * <p>Depends on JQuery.</p>
  */
 public class Select2JsReference extends WebjarsJavaScriptResourceReference {
+    private static final long serialVersionUID = 1L;
 
     public Select2JsReference() {
         super("/select2/current/select2.js");
@@ -40,6 +43,6 @@ public class Select2JsReference extends WebjarsJavaScriptResourceReference {
     @Override
     public List<HeaderItem> getDependencies() {
         ResourceReference jQueryReference = Application.get().getJavaScriptLibrarySettings().getJQueryReference();
-        return Lists.<HeaderItem>newArrayList(JavaScriptHeaderItem.forReference(jQueryReference));
+        return _Lists.<HeaderItem>of(JavaScriptHeaderItem.forReference(jQueryReference));
     }
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index ba95c6f..0f8068c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -20,7 +20,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Locale;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.apache.wicket.Session;
 import org.apache.wicket.util.convert.IConverter;
@@ -85,7 +85,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
     @Override
     public void query(final String term, final int page, final org.wicketstuff.select2.Response<ObjectAdapterMemento> response) {
 
-        final List<ObjectAdapterMemento> mementos = Lists.newArrayList(obtainMementos(term));
+        final List<ObjectAdapterMemento> mementos = _Lists.newArrayList(obtainMementos(term));
         // if not mandatory, and the list doesn't contain null already, then add it in.
         if(!scalarModel.isRequired() && !mementos.contains(null)) {
             mementos.add(0, null);
@@ -104,7 +104,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
      * @return A list of all matching choices
      */
     protected final List<ObjectAdapterMemento> obtainMementos(String term, Collection<ObjectAdapterMemento> choicesMementos) {
-        List<ObjectAdapterMemento> matches = Lists.newArrayList();
+        List<ObjectAdapterMemento> matches = _Lists.newArrayList();
         if (Strings.isEmpty(term)) {
             matches.addAll(choicesMementos);
         } else {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
index 3cc8cf7..2bb147e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
@@ -39,9 +39,13 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 import java.util.Collection;
 import java.util.List;
 
-import com.google.common.base.Function;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
+
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -74,18 +78,14 @@ extends ObjectAdapterMementoProviderAbstract implements ObjectAdapterMementoProv
 
     @Override
     public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
-        final Function<String, ObjectAdapterMemento> function = new Function<String, ObjectAdapterMemento>() {
-
-            @Override
-            public ObjectAdapterMemento apply(final String input) {
+        final Function<String, ObjectAdapterMemento> function = (final String input) -> {
                 if(NULL_PLACEHOLDER.equals(input)) {
                     return null;
                 }
                 final RootOid oid = RootOid.deString(input);
                 return ObjectAdapterMemento.createPersistent(oid);
-            }
         };
-        return Lists.newArrayList(Collections2.transform(ids, function));
+        return _NullSafe.stream(ids).map(function).collect(Collectors.toList());
     }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
index 4073a91..7f44c29 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
@@ -38,7 +38,10 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -49,10 +52,6 @@ import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
-import com.google.common.base.Function;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-
 public class ObjectAdapterMementoProviderForReferenceObjectAutoComplete
 extends ObjectAdapterMementoProviderAbstract {
 
@@ -71,25 +70,21 @@ extends ObjectAdapterMementoProviderAbstract {
         final List<ObjectAdapter> autoCompleteAdapters =
                 autoCompleteFacet.execute(term,
                         InteractionInitiatedBy.USER);
-        return _Lists.transform(autoCompleteAdapters, ObjectAdapterMemento.Functions.fromAdapter());
+        return _Lists.map(autoCompleteAdapters, ObjectAdapterMemento.Functions.fromAdapter());
     }
 
     @Override
     public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
-        final Function<String, ObjectAdapterMemento> function = new Function<String, ObjectAdapterMemento>() {
-
-            @Override
-            public ObjectAdapterMemento apply(final String input) {
+        final Function<String, ObjectAdapterMemento> function = (final String input) -> {
                 if(NULL_PLACEHOLDER.equals(input)) {
                     return null;
                 }
                 final RootOid oid = RootOid.deString(input);
                 final ObjectAdapterMemento oam = ObjectAdapterMemento.createPersistent(oid);
                 return oam;
-            }
         };
-
-        return Lists.newArrayList(Collections2.transform(ids, function));
+        return _NullSafe.stream(ids).map(function).collect(Collectors.toList());
+        
     }
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
index 4045f1b..7a27b00 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
@@ -39,6 +39,7 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -46,9 +47,11 @@ import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
-import com.google.common.base.Function;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public class ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete
 extends ObjectAdapterMementoProviderAbstract {
@@ -62,29 +65,25 @@ extends ObjectAdapterMementoProviderAbstract {
 
     @Override
     protected List<ObjectAdapterMemento> obtainMementos(String term) {
-        final List<ObjectAdapter> autoCompleteChoices = Lists.newArrayList();
+        final List<ObjectAdapter> autoCompleteChoices = _Lists.newArrayList();
         if (getScalarModel().hasAutoComplete()) {
             final List<ObjectAdapter> autoCompleteAdapters =
                     getScalarModel().getAutoComplete(term, getAuthenticationSession(), getDeploymentCategory());
             autoCompleteChoices.addAll(autoCompleteAdapters);
         }
-        return _Lists.transform(autoCompleteChoices, ObjectAdapterMemento.Functions.fromAdapter());
+        return _Lists.map(autoCompleteChoices, ObjectAdapterMemento.Functions.fromAdapter());
     }
 
     @Override
     public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
-        final Function<String, ObjectAdapterMemento> function = new Function<String, ObjectAdapterMemento>() {
-
-            @Override
-            public ObjectAdapterMemento apply(final String input) {
+        final Function<String, ObjectAdapterMemento> function = (final String input)->{
                 if(NULL_PLACEHOLDER.equals(input)) {
                     return null;
                 }
                 final RootOid oid = RootOid.deString(input);
                 return ObjectAdapterMemento.createPersistent(oid);
-            }
         };
-        return Lists.newArrayList(Collections2.transform(ids, function));
+        return _NullSafe.stream(ids).map(function).collect(Collectors.toList());
     }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
index 9715918..5d897c6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
@@ -41,7 +41,7 @@ import java.util.List;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
@@ -82,7 +82,7 @@ extends ObjectAdapterMementoProviderAbstract implements ObjectAdapterMementoProv
                 return ids.contains(id);
             }
         };
-        return Lists.newArrayList(FluentIterable.from(mementos).filter(lookupOam).toList());
+        return _Lists.newArrayList(FluentIterable.from(mementos).filter(lookupOam).toList());
     }
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
index a5e6fc4..da529f1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -220,7 +220,7 @@ public class ThemeChooser extends Panel {
                 }
             });
 
-            enabledThemes = Lists.newArrayList(enabled);
+            enabledThemes = _Lists.newArrayList(enabled);
         } else {
             enabledThemes = allThemes;
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/ExceptionModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/ExceptionModel.java
index 9d2c7f8..afb76f7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/ExceptionModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/ExceptionModel.java
@@ -23,7 +23,7 @@ import java.util.List;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.services.error.ErrorReportingService;
@@ -143,7 +143,7 @@ public class ExceptionModel extends ModelAbstract<List<StackTraceDetail>> {
     }
 
     private static List<StackTraceDetail> asStackTrace(Throwable ex) {
-        List<StackTraceDetail> stackTrace = Lists.newArrayList();
+        List<StackTraceDetail> stackTrace = _Lists.newArrayList();
         List<Throwable> causalChain = Throwables.getCausalChain(ex);
         boolean firstTime = true;
         for(Throwable cause: causalChain) {
@@ -160,11 +160,11 @@ public class ExceptionModel extends ModelAbstract<List<StackTraceDetail>> {
     }
 
     private static List<List<StackTraceDetail>> asStackTraces(Throwable ex) {
-        List<List<StackTraceDetail>> stackTraces = Lists.newArrayList();
+        List<List<StackTraceDetail>> stackTraces = _Lists.newArrayList();
 
         List<Throwable> causalChain = Throwables.getCausalChain(ex);
         for(Throwable cause: causalChain) {
-            List<StackTraceDetail> stackTrace = Lists.newArrayList();
+            List<StackTraceDetail> stackTrace = _Lists.newArrayList();
             append(cause, stackTrace);
             stackTraces.add(stackTrace);
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
index 90d54ed..f998013 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/errors/JGrowlBehaviour.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.viewer.wicket.ui.errors;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -52,7 +52,7 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
     @Override
     protected void respond(AjaxRequestTarget target) {
         String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
-        if(!Strings.isNullOrEmpty(feedbackMsg)) {
+        if(!_Strings.isNullOrEmpty(feedbackMsg)) {
             target.appendJavaScript(feedbackMsg);
         }
     }
@@ -68,7 +68,7 @@ public class JGrowlBehaviour extends AbstractDefaultAjaxBehavior {
         response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(JGrowlBehaviour.class, "js/bootstrap-growl.js")));
 
         String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
-        if(!Strings.isNullOrEmpty(feedbackMsg)) {
+        if(!_Strings.isNullOrEmpty(feedbackMsg)) {
             response.render(OnDomReadyHeaderItem.forScript(feedbackMsg));
         }
     }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
index e9314f9..87d72b2 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
@@ -21,16 +21,12 @@ package org.apache.isis.viewer.wicket.ui.pages.error;
 
 import java.util.List;
 
-import javax.annotation.Nullable;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Lists;
-
 import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 
 import org.apache.isis.applib.services.error.ErrorDetails;
 import org.apache.isis.applib.services.error.ErrorReportingService;
 import org.apache.isis.applib.services.error.Ticket;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
 import org.apache.isis.viewer.wicket.ui.errors.ExceptionModel;
 import org.apache.isis.viewer.wicket.ui.errors.ExceptionStackTracePanel;
@@ -65,7 +61,7 @@ public class ErrorPage extends PageAbstract {
             final List<String> stackDetailList = transform(stackTrace);
 
             final List<List<StackTraceDetail>> stackTraces = exceptionModel.getStackTraces();
-            final List<List<String>> stackDetailLists = Lists.newArrayList();
+            final List<List<String>> stackDetailLists = _Lists.newArrayList();
             for (List<StackTraceDetail> trace : stackTraces) {
                 stackDetailLists.add(transform(trace));
             }
@@ -86,11 +82,7 @@ public class ErrorPage extends PageAbstract {
     }
 
     protected List<String> transform(final List<StackTraceDetail> stackTrace) {
-        return Lists.transform(stackTrace, new Function<StackTraceDetail, String>() {
-            @Nullable @Override public String apply(final StackTraceDetail stackTraceDetail) {
-                return stackTraceDetail.getLine();
-            }
-        });
+        return _Lists.map(stackTrace, (final StackTraceDetail stackTraceDetail) -> stackTraceDetail.getLine());
     }
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
index bbeaaef..7dc0ca5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
@@ -22,7 +22,7 @@ package org.apache.isis.viewer.wicket.ui.pages.mmverror;
 import java.util.List;
 import java.util.Set;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import com.google.inject.name.Named;
 
 import org.apache.wicket.Application;
@@ -80,7 +80,7 @@ public class MmvErrorPage extends WebPage {
     private static final String ID_ERROR_MESSAGE = "errorMessage";
 
     public MmvErrorPage(Set<String> validationErrors) {
-        this(Model.ofList(Lists.newArrayList(validationErrors)));
+        this(Model.ofList(_Lists.newArrayList(validationErrors)));
     }
 
     public MmvErrorPage(final IModel<List<String>> model) {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index 4ddd22b..bdda286 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -21,7 +21,7 @@ import java.util.Objects;
 import java.util.concurrent.Callable;
 
 import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -336,8 +336,8 @@ implements FormExecutor {
 
 
     private void addComponentsToRedraw(final AjaxRequestTarget target) {
-        final List<Component> componentsToRedraw = Lists.newArrayList();
-        final List<Component> componentsNotToRedraw = Lists.newArrayList();
+        final List<Component> componentsToRedraw = _Lists.newArrayList();
+        final List<Component> componentsNotToRedraw = _Lists.newArrayList();
 
         final Page page = target.getPage();
         page.visitChildren(new IVisitor<Component, Object>() {
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
index 1c57f56..bc13735 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.viewer.wicket.ui.panels;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.attributes.AjaxCallListener;
@@ -71,7 +71,7 @@ public final class PanelUtil {
             return null;
         }
         String simpleName = cls.getSimpleName();
-        if(Strings.isNullOrEmpty(simpleName)) {
+        if(_Strings.isNullOrEmpty(simpleName)) {
             return null; // eg inner classes
         }
         String string;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
index 9236954..ef054ab 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormAbstract.java
@@ -54,7 +54,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 public abstract class PromptFormAbstract<T extends BookmarkableModel<ObjectAdapter>
 & ParentEntityModelProvider
@@ -70,7 +70,7 @@ implements ScalarModelSubscriber2 {
 
     private static final String ID_FEEDBACK = "feedback";
 
-    protected final List<ScalarPanelAbstract2> paramPanels = Lists.newArrayList();
+    protected final List<ScalarPanelAbstract2> paramPanels = _Lists.newArrayList();
 
     private final Component parentPanel;
     private final WicketViewerSettings settings;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
index d88a2f3..07f71e5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassAppender.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.util;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.markup.ComponentTag;
@@ -48,7 +48,7 @@ public class CssClassAppender extends AttributeAppender {
     public static void appendCssClassTo(
             final ComponentTag tag,
             final String cssClass) {
-        if(Strings.isNullOrEmpty(cssClass)) {
+        if(_Strings.isNullOrEmpty(cssClass)) {
             return;
         }
         tag.append("class", cssClass, " ");
@@ -60,7 +60,7 @@ public class CssClassAppender extends AttributeAppender {
     public static void appendCssClassTo(
             final MarkupContainer markupContainer,
             final String cssClass) {
-        if(Strings.isNullOrEmpty(cssClass)) {
+        if(_Strings.isNullOrEmpty(cssClass)) {
             return;
         }
         markupContainer.add(new CssClassAppender(cssClass));
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssIdAppender.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssIdAppender.java
index 1d78137..d1f8aa8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssIdAppender.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssIdAppender.java
@@ -19,7 +19,7 @@
 
 package org.apache.isis.viewer.wicket.ui.util;
 
-import com.google.common.base.Strings;
+import org.apache.isis.commons.internal.base._Strings;
 
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AttributeAppender;
@@ -49,7 +49,7 @@ public class CssIdAppender extends AttributeAppender {
     public static void appendCssIdTo(
             final ComponentTag tag,
             final String cssId) {
-        if(Strings.isNullOrEmpty(cssId)) {
+        if(_Strings.isNullOrEmpty(cssId)) {
             return;
         }
         tag.append("id", cssId, " ");
@@ -61,7 +61,7 @@ public class CssIdAppender extends AttributeAppender {
     public static void appendCssIdTo(
             final MarkupContainer markupContainer,
             final String cssClass) {
-        if(Strings.isNullOrEmpty(cssClass)) {
+        if(_Strings.isNullOrEmpty(cssClass)) {
             return;
         }
         markupContainer.add(new CssIdAppender(cssClass));
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index f4d91b5..7af509e 100644
--- a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -22,7 +22,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.jmock.Expectations;
 import org.junit.Assert;
@@ -54,7 +54,7 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
         mockMemento1 = mock("mockMemento1");
         mockMemento2 = mock("mockMemento2");
 
-        mementos = Lists.newArrayList(
+        mementos = _Lists.of(
                 mockMemento1, mockMemento2
         );
 
diff --git a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
index 1d6f798..0058997 100644
--- a/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
+++ b/core/webserver/src/main/java/org/apache/isis/core/webserver/WebServer.java
@@ -26,7 +26,7 @@ import java.util.Formatter;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
@@ -132,7 +132,7 @@ public class WebServer {
     }
 
     private static List<OptionHandler> standardHandlers() {
-        return Lists.newArrayList(
+        return _Lists.of(
                 new OptionHandlerConfiguration(),
                 new OptionHandlerFixture(),
                 new OptionHandlerAppManifest(),
@@ -202,7 +202,7 @@ public class WebServer {
      * Set of locations to search for config files.
      */
     private static List<ResourceStreamSource> resourceStreamSources() {
-        final List<ResourceStreamSource> rssList = Lists.newArrayList();
+        final List<ResourceStreamSource> rssList = _Lists.newArrayList();
         rssList.addAll(Arrays.asList(
                 ResourceStreamSourceFileSystem.create(ConfigurationConstants.DEFAULT_CONFIG_DIRECTORY),
                 ResourceStreamSourceFileSystem.create(ConfigurationConstants.WEBINF_FULL_DIRECTORY),
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/AbstractCollectionInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/AbstractCollectionInvocationHandler.java
index 352a43b..55b6434 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/AbstractCollectionInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/AbstractCollectionInvocationHandler.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.wrapper.handlers;
 import java.lang.reflect.Method;
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.apache.isis.applib.services.wrapper.events.CollectionMethodEvent;
 import org.apache.isis.applib.services.wrapper.events.InteractionEvent;
@@ -30,8 +30,8 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 
 abstract class AbstractCollectionInvocationHandler<T, C> extends DelegatingInvocationHandlerDefault<C> {
 
-    private final List<Method> interceptedMethods = Lists.newArrayList();
-    private final List<Method> vetoedMethods = Lists.newArrayList();
+    private final List<Method> interceptedMethods = _Lists.newArrayList();
+    private final List<Method> vetoedMethods = _Lists.newArrayList();
 
     private final String collectionName;
     private final OneToManyAssociation oneToManyAssociation;
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index e7d0c99..4d39e41 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -28,7 +28,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Stream;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.Where;
@@ -139,7 +139,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
             // legacy of ...
             //            dnPersistableMethods.addAll(
-            //                    Lists.newArrayList(
+            //                    _Lists.newArrayList(
             //                            Iterables.transform(
             //                                    Arrays.asList(Persistable.class.getDeclaredMethods()),
             //                                    new Function<Method, String>() {
@@ -625,7 +625,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             final Object contributee = args[contributeeParamPosition];
             contributeeAdapter = adapterFor(contributee);
 
-            final List<Object> argCopy = Lists.newArrayList(args);
+            final List<Object> argCopy = _Lists.of(args);
             argCopy.remove(contributeeParamPosition);
             contributeeArgs = argCopy.toArray();
         } else {
diff --git a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
index b6f90d9..0d33226 100644
--- a/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
+++ b/example/application/simpleapp/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
@@ -18,7 +18,7 @@ package domainapp.modules.simple.dom.impl;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -97,7 +97,7 @@ public class SimpleObjects_Test {
         public void happyCase() {
 
             // given
-            final List<SimpleObject> all = Lists.newArrayList();
+            final List<SimpleObject> all = _Lists.newArrayList();
 
             context.checking(new Expectations() {
                 {
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
index 3dc7fe2..3b75ad1 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/src/test/java/domainapp/modules/simple/dom/impl/SimpleObjects_Test.java
@@ -21,7 +21,7 @@ package domainapp.modules.simple.dom.impl;
 
 import java.util.List;
 
-import com.google.common.collect.Lists;
+import org.apache.isis.commons.internal.collections._Lists;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -100,7 +100,7 @@ public class SimpleObjects_Test {
         public void happyCase() {
 
             // given
-            final List<SimpleObject> all = Lists.newArrayList();
+            final List<SimpleObject> all = _Lists.newArrayList();
 
             context.checking(new Expectations() {
                 {