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:14 UTC

[isis] 02/03: ISIS-1976: removing guava Sets

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 199c3f009271516c7daa547de26d5fc714ea4ecd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Sep 17 10:58:19 2018 +0200

    ISIS-1976: removing guava Sets
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/commons/internal/collections/_Sets.java     | 19 +++++++++++++++++++
 .../isis/core/metamodel/facets/CollectionUtils.java  |  4 ++--
 .../members/cssclassfa/CssClassFaFacetAbstract.java  |  4 ++--
 .../isis/core/metamodel/layout/DeweyOrderSet.java    |  4 ++--
 .../services/metamodel/DomainMemberDefault.java      | 10 +++++-----
 .../services/swagger/internal/Generation.java        |  8 ++++----
 .../classsubstitutor/ClassSubstitutor.java           |  6 +++---
 .../specloader/validator/ValidationFailures.java     |  6 +++---
 .../core/runtime/threadpool/ThreadPoolSupport.java   |  4 +---
 ...acetForCollectionLayoutAnnotationFactoryTest.java |  6 +++---
 .../apache/isis/security/shiro/IsisLdapRealm.java    | 20 ++++++++++----------
 .../isis/core/runtime/services/DeweyOrderUtil.java   |  6 +++---
 .../core/runtime/services/ServiceInstantiator.java   |  4 ++--
 .../runtime/services/ServicesInstallerUtils.java     |  6 +++---
 .../isis/core/runtime/services/i18n/po/PoReader.java |  4 ++--
 .../isis/core/runtime/services/i18n/po/PoWriter.java |  4 ++--
 .../menubars/bootstrap3/MenuBarsServiceBS3.java      |  4 ++--
 .../systemusinginstallers/IsisComponentProvider.java |  6 +++---
 .../core/runtime/services/DeweyOrderUtilTest.java    |  4 ++--
 .../IsisComponentProvider_within_Test.java           | 10 +++++-----
 .../restfulobjects/server/ResourceContext.java       |  4 ++--
 .../viewer/IsisWicketApplication_Experimental.java   |  4 ++--
 .../components/widgets/themepicker/ThemeChooser.java |  8 +++++---
 .../isis/viewer/wicket/ui/util/CssClassRemover.java  |  4 ++--
 .../handlers/DomainObjectInvocationHandler.java      |  4 ++--
 .../application/DomainAppApplicationModule.java      |  2 +-
 26 files changed, 92 insertions(+), 73 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
index 9d1d08e..4266d58 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
@@ -30,6 +30,7 @@ import java.util.Set;
 import java.util.TreeSet;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentHashMap.KeySetView;
+import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -183,6 +184,24 @@ public final class _Sets {
         return _Collections.collectFromIterable(iterable, _Sets::newConcurrentHashSet,
                 ()->Collectors.<T, KeySetView<T, Boolean>>toCollection(ConcurrentHashMap::newKeySet) );
     }
+    
+    // -- COPY ON WRITE ARRAY SET
+
+    public static <T> CopyOnWriteArraySet<T> newCopyOnWriteArraySet() {
+        return new CopyOnWriteArraySet<T>();
+    }
+
+    public static <T> CopyOnWriteArraySet<T> newCopyOnWriteArraySet(@Nullable Collection<T> collection) {
+        if(collection==null) {
+            return newCopyOnWriteArraySet();
+        }
+        return new CopyOnWriteArraySet<T>(collection);
+    }
+
+    public static <T> CopyOnWriteArraySet<T> newCopyOnWriteArraySet(@Nullable Iterable<T> iterable) {
+        return _Collections.collectFromIterable(iterable, _Sets::newCopyOnWriteArraySet,
+                ()->Collectors.<T, CopyOnWriteArraySet<T>>toCollection(CopyOnWriteArraySet::new) );
+    }
 
 
     // -- SET OPERATIONS
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 2c71a76..9d7e8e0 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,7 +35,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.function.Function;
 
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.base._With;
@@ -72,7 +72,7 @@ public final class CollectionUtils {
                 map.put(AbstractList.class, _Lists::newArrayList);
 
                 // specific set implementations
-                map.put(CopyOnWriteArraySet.class, Sets::newCopyOnWriteArraySet);
+                map.put(CopyOnWriteArraySet.class, _Sets::newCopyOnWriteArraySet);
                 map.put(LinkedHashSet.class, _Sets::newLinkedHashSet);
                 map.put(HashSet.class, _Sets::newHashSet);
                 map.put(TreeSet.class, _Sets::newTreeSet);
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 a41dce2..bddbdc9 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,7 +22,7 @@ import java.util.regex.Pattern;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
-import com.google.common.collect.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;
@@ -54,7 +54,7 @@ public class CssClassFaFacetAbstract extends SingleStringValueFacetAbstract impl
      */
     static String sanitize(final String value) {
         final Iterable<String> classes = Splitter.on(WHITESPACE).split(value.trim());
-        final Set<String> cssClassesSet = Sets.newLinkedHashSet();
+        final Set<String> cssClassesSet = _Sets.newLinkedHashSet();
         cssClassesSet.add("fa");
         cssClassesSet.add("fa-fw");
         for (final String cssClass : classes) {
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 8fdb746..3397dee 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
@@ -30,7 +30,7 @@ import java.util.StringTokenizer;
 import java.util.TreeSet;
 
 import org.apache.isis.commons.internal.collections._Maps;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
@@ -77,7 +77,7 @@ public class DeweyOrderSet implements Comparable<DeweyOrderSet>, Iterable<Object
     public static DeweyOrderSet createOrderSet(final List<? extends IdentifiedHolder> identifiedHolders) {
 
         final SortedMap<String, SortedSet<IdentifiedHolder>> sortedMembersByGroup = _Maps.newTreeMap();
-        final SortedSet<IdentifiedHolder> nonAnnotatedGroup = Sets.newTreeSet(new MemberIdentifierComparator());
+        final SortedSet<IdentifiedHolder> nonAnnotatedGroup = _Sets.newTreeSet(new MemberIdentifierComparator());
 
         // spin over all the members and put them into a Map of SortedSets
         // any non-annotated members go into additional nonAnnotatedGroup set.
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 bcc6e70..0e6eeb7 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
@@ -25,7 +25,7 @@ import java.util.SortedSet;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.services.metamodel.DomainMember;
 import org.apache.isis.core.commons.lang.StringExtensions;
@@ -152,7 +152,7 @@ public class DomainMemberDefault implements DomainMember {
             return "";
         default:
             final List<ObjectActionParameter> parameters = this.action.getParameters();
-            final SortedSet<String> interpretations = Sets.newTreeSet();
+            final SortedSet<String> interpretations = _Sets.newTreeSet();
             for (ObjectActionParameter param : parameters) {
                 final ActionParameterChoicesFacet facet = param.getFacet(ActionParameterChoicesFacet.class);
                 addIfNotEmpty(interpretFacet(facet), interpretations);
@@ -169,7 +169,7 @@ public class DomainMemberDefault implements DomainMember {
             return "";
         } else {
             final List<ObjectActionParameter> parameters = this.action.getParameters();
-            final SortedSet<String> interpretations = Sets.newTreeSet();
+            final SortedSet<String> interpretations = _Sets.newTreeSet();
             for (ObjectActionParameter param : parameters) {
                 final ActionParameterAutoCompleteFacet facet = param.getFacet(ActionParameterAutoCompleteFacet.class);
                 addIfNotEmpty(interpretFacet(facet), interpretations);
@@ -184,7 +184,7 @@ public class DomainMemberDefault implements DomainMember {
             return "";
         } else {
             final List<ObjectActionParameter> parameters = this.action.getParameters();
-            final SortedSet<String> interpretations = Sets.newTreeSet();
+            final SortedSet<String> interpretations = _Sets.newTreeSet();
             for (ObjectActionParameter param : parameters) {
                 final ActionParameterDefaultsFacet facet = param.getFacet(ActionParameterDefaultsFacet.class);
                 addIfNotEmpty(interpretFacet(facet), interpretations);
@@ -196,7 +196,7 @@ public class DomainMemberDefault implements DomainMember {
         if(memberType == MemberType.PROPERTY) {
             return interpretRowAndFacet(PropertyValidateFacet.class);
         } else if(memberType == MemberType.COLLECTION) {
-            final SortedSet<String> interpretations = Sets.newTreeSet();
+            final SortedSet<String> interpretations = _Sets.newTreeSet();
             addIfNotEmpty(interpretRowAndFacet(CollectionValidateAddToFacet.class), interpretations);
             addIfNotEmpty(interpretRowAndFacet(CollectionValidateRemoveFromFacet.class), interpretations);
             return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : "";
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 c14c811..ea9d7dc 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
@@ -30,7 +30,7 @@ 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 com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -75,8 +75,8 @@ class Generation {
     private final Tagger tagger;
     private final ClassExcluder classExcluder;
 
-    private final Set<String> references = Sets.newLinkedHashSet();
-    private final Set<String> definitions = Sets.newLinkedHashSet();
+    private final Set<String> references = _Sets.newLinkedHashSet();
+    private final Set<String> definitions = _Sets.newLinkedHashSet();
     private Swagger swagger;
 
     public Generation(
@@ -854,7 +854,7 @@ class Generation {
     }
 
     Set<String> getReferencesWithoutDefinition() {
-        LinkedHashSet<String> referencesCopy = Sets.newLinkedHashSet(references);
+        LinkedHashSet<String> referencesCopy = _Sets.newLinkedHashSet(references);
         referencesCopy.removeAll(definitions);
         return referencesCopy;
     }
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 f87caff..f122dc2 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,7 +21,7 @@ package org.apache.isis.core.metamodel.specloader.classsubstitutor;
 
 import java.util.Set;
 
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.commons.lang.ClassUtil;
@@ -86,8 +86,8 @@ public class ClassSubstitutor {
 
     // -- helpers
 
-    private final Set<Class<?>> classesToIgnore = Sets.newHashSet();
-    private final Set<String> classNamesToIgnore = Sets.newHashSet();
+    private final Set<Class<?>> classesToIgnore = _Sets.newHashSet();
+    private final Set<String> classNamesToIgnore = _Sets.newHashSet();
 
     /**
      * For any classes registered as ignored, {@link #getClass(Class)} will
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/ValidationFailures.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/ValidationFailures.java
index 1503d6a..5e96baf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/ValidationFailures.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/ValidationFailures.java
@@ -23,11 +23,11 @@ import java.util.Iterator;
 import java.util.Set;
 import java.util.SortedSet;
 
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 public final class ValidationFailures implements Iterable<String> {
 
-    private final Set<String> messages = Sets.newLinkedHashSet();
+    private final Set<String> messages = _Sets.newLinkedHashSet();
 
     public void add(final String pattern, final Object... arguments) {
         final String message = String.format(pattern, arguments);
@@ -48,7 +48,7 @@ public final class ValidationFailures implements Iterable<String> {
         if (!occurred()) {
             return;
         }
-        final SortedSet<String> sortedMessages = Sets.newTreeSet(messages);
+        final SortedSet<String> sortedMessages = _Sets.newTreeSet(messages);
         throw new MetaModelInvalidException(sortedMessages);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
index 6e5de76..0264b20 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
@@ -36,8 +36,6 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Nullable;
 
-import com.google.common.collect.Lists;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -182,7 +180,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
 
         final long t0 = System.currentTimeMillis();
         try{
-            final List<Object> returnValues = Lists.newArrayList();
+            final List<Object> returnValues = _Lists.newArrayList();
             for (Future<Object> future : futures) {
                 final Object result;
                 try {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
index 9712b4c..e8aeb40 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.core.metamodel.facets.collections.layout.annotation;
 import java.lang.reflect.Method;
 import java.util.Set;
 import java.util.SortedSet;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
@@ -51,7 +51,7 @@ public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
             @SuppressWarnings("unused")
             @CollectionLayout(named = "1st names")
             public SortedSet<String> getFirstNames() {
-                return Sets.newTreeSet();
+                return _Sets.newTreeSet();
             }
         }
         final Method method = findMethod(Customer.class, "getFirstNames");
@@ -76,7 +76,7 @@ public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
             @SuppressWarnings("unused")
             @CollectionLayout(named = "1st names", namedEscaped = false)
             public Set<String> getFirstNames() {
-                return Sets.newTreeSet();
+                return _Sets.newTreeSet();
             }
         }
         final Method method = findMethod(Customer.class, "getFirstNames");
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 355db96..9641e85 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
@@ -35,7 +35,7 @@ import javax.naming.ldap.LdapContext;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.shiro.authz.AuthorizationInfo;
 import org.apache.shiro.authz.SimpleAuthorizationInfo;
@@ -153,24 +153,24 @@ public class IsisLdapRealm extends JndiLdapRealm {
     /**
      * For Group Extracted attribute name with mapping name in parenthesis. Ex: street,country
      */
-    protected Set<String> groupExtractedAttribute = Sets.newConcurrentHashSet();
+    protected Set<String> groupExtractedAttribute = _Sets.newConcurrentHashSet();
 
     /**
      * For User Extracted attribute name with mapping name in parenthesis. Ex: street,country
      */
-    protected Set<String> userExtractedAttribute = Sets.newConcurrentHashSet();
+    protected Set<String> userExtractedAttribute = _Sets.newConcurrentHashSet();
 
     /**
      * For Group Mapping of attributes. Ex:
      * attribute:Folder.{street}:Read,attribute:Portfolio.{country}:*
      */
-    protected Set<String> permissionByGroupAttribute = Sets.newConcurrentHashSet();
+    protected Set<String> permissionByGroupAttribute = _Sets.newConcurrentHashSet();
 
     /**
      * For User Mapping of attributes. Ex:
      * attribute:Folder.{street}:Read,attribute:Portfolio.{country}:*
      */
-    protected Set<String> permissionByUserAttribute = Sets.newConcurrentHashSet();
+    protected Set<String> permissionByUserAttribute = _Sets.newConcurrentHashSet();
 
     /**
      * For search ldap on user
@@ -224,7 +224,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
     private Set<String>
     getPermissionForRole(String username, LdapContext ldapContext)
             throws NamingException {
-        final Set<String> permissions = Sets.newLinkedHashSet();
+        final Set<String> permissions = _Sets.newLinkedHashSet();
 
         Set<String> groups = groupFor(username, ldapContext);
         final NamingEnumeration<SearchResult> searchResultEnum = ldapContext.search(searchBase,
@@ -240,7 +240,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
 
     protected Set<String> groupFor(final String userName, final LdapContext ldapCtx)
             throws NamingException {
-        final Set<String> roleNames = Sets.newLinkedHashSet();
+        final Set<String> roleNames = _Sets.newLinkedHashSet();
         final NamingEnumeration<SearchResult> searchResultEnum = ldapCtx.search(searchBase,
                 "objectClass=" + groupObjectClass, SUBTREE_SCOPE);
         while (searchResultEnum.hasMore()) {
@@ -269,7 +269,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
 
     private Collection<String> permUser(String username, LdapContext systemLdapCtx)
             throws NamingException {
-        final Set<String> permissions = Sets.newLinkedHashSet();
+        final Set<String> permissions = _Sets.newLinkedHashSet();
         final NamingEnumeration<SearchResult> searchResultEnum = systemLdapCtx.search(
                 searchUserBase, "objectClass=" + userObjectClass, SUBTREE_SCOPE);
         while (searchResultEnum.hasMore()) {
@@ -323,7 +323,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
     }
 
     private Set<String> rolesFor(final String userName, final LdapContext ldapCtx) throws NamingException {
-        final Set<String> roleNames = Sets.newLinkedHashSet();
+        final Set<String> roleNames = _Sets.newLinkedHashSet();
         final NamingEnumeration<SearchResult> searchResultEnum = ldapCtx.search(searchBase, "objectClass=" + groupObjectClass, SUBTREE_SCOPE);
         while (searchResultEnum.hasMore()) {
             final SearchResult group = searchResultEnum.next();
@@ -360,7 +360,7 @@ public class IsisLdapRealm extends JndiLdapRealm {
     }
 
     private Set<String> permsFor(Set<String> roleNames) {
-        Set<String> perms = Sets.newLinkedHashSet(); // preserve order
+        Set<String> perms = _Sets.newLinkedHashSet(); // preserve order
         for (String role : roleNames) {
             List<String> permsForRole = getPermissionsByRole().get(role);
             if (permsForRole != null) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
index b9f370e..092aab4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/DeweyOrderUtil.java
@@ -29,7 +29,7 @@ import com.google.common.base.Splitter;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 class DeweyOrderUtil  {
 
@@ -45,7 +45,7 @@ class DeweyOrderUtil  {
     private DeweyOrderUtil() {}
 
     static <V> List<Map.Entry<String, V>> deweySorted(Map<String, V> map) {
-        Set<Map.Entry<String, V>> set = Sets.newLinkedHashSet();
+        Set<Map.Entry<String, V>> set = _Sets.newLinkedHashSet();
         for (Map.Entry<String, V> entry : map.entrySet()) {
             set.add(entry);
         }
@@ -64,7 +64,7 @@ class DeweyOrderUtil  {
             }
         });
 
-        final SortedSet<Parsed<V>> parseds = Sets.newTreeSet(parsedIter);
+        final SortedSet<Parsed<V>> parseds = _Sets.newTreeSet(parsedIter);
         final Iterable<Map.Entry<String, V>> transform = Iterables.transform(parseds, DeweyOrderUtil.<V>toMapEntry());
         return Lists.newArrayList(transform);
     }
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 487c184..610d646 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
@@ -41,7 +41,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 //import javassist.util.proxy.MethodFilter;
 //import javassist.util.proxy.MethodHandler;
@@ -221,7 +221,7 @@ public final class ServiceInstantiator {
         return proxyFactory.createInstance(handler, false);
     }
 
-    private Set<Class<?>> cached = Sets.newHashSet();
+    private Set<Class<?>> cached = _Sets.newHashSet();
     private Map<Class<?>, Method> postConstructMethodsByServiceClass = Maps.newConcurrentMap();
     private Map<Class<?>, Method> preDestroyMethodsByServiceClass = Maps.newConcurrentMap();
 
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 2321dcc..706f98f 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
@@ -29,7 +29,7 @@ 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 com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,7 +42,7 @@ final class ServicesInstallerUtils  {
     private ServicesInstallerUtils (){}
 
     static <V extends Comparable<V>> LinkedHashSet<V> flatten(SortedMap<String, SortedSet<V>> positionedServices) {
-        final LinkedHashSet<V> serviceList = Sets.newLinkedHashSet();
+        final LinkedHashSet<V> serviceList = _Sets.newLinkedHashSet();
         final Set<String> keys = positionedServices.keySet();
         for (String position : keys) {
             final SortedSet<V> list = positionedServices.get(position);
@@ -57,7 +57,7 @@ final class ServicesInstallerUtils  {
         }
         SortedSet<String> serviceList = positionedServices.get(position);
         if(serviceList == null) {
-            serviceList = Sets.newTreeSet();
+            serviceList = _Sets.newTreeSet();
             positionedServices.put(position, serviceList);
         }
         serviceList.add(service);
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 4a8cca7..07f6661 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
@@ -27,7 +27,7 @@ import java.util.Set;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -254,7 +254,7 @@ class PoReader extends PoAbstract {
         }
     }
 
-    private final Set<String> loggedInfoMessages = Sets.newConcurrentHashSet();
+    private final Set<String> loggedInfoMessages = _Sets.newConcurrentHashSet();
 
 
 }
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 0a1c0a4..aa53808 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
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.services.i18n.po;
 import java.util.SortedMap;
 import java.util.SortedSet;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.joda.time.LocalDateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,7 +34,7 @@ class PoWriter extends PoAbstract {
 
     private static class Block {
         private final String msgId;
-        private final SortedSet<String> contexts = Sets.newTreeSet();
+        private final SortedSet<String> contexts = _Sets.newTreeSet();
         private String msgIdPlural;
 
         private Block(final String msgId) {
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 16a0bd4..da71bd1 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
@@ -32,7 +32,7 @@ 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 com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -289,7 +289,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
     private static Set<String> serviceNamesInOrder(
             final List<ObjectAdapter> serviceAdapters,
             final List<ServiceAndAction> serviceActions) {
-        final Set<String> serviceNameOrder = Sets.newLinkedHashSet();
+        final Set<String> serviceNameOrder = _Sets.newLinkedHashSet();
 
         // first, order as defined in isis.properties
         for (ObjectAdapter serviceAdapter : serviceAdapters) {
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 41c5c40..b8834f9 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
@@ -62,7 +62,7 @@ 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 com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 /**
  *
@@ -140,7 +140,7 @@ public abstract class IsisComponentProvider {
         final Set<Class<?>> persistenceCapableTypes = PersistenceCapableTypeFinder.find(discovery);
         final Set<Class<? extends FixtureScript>> fixtureScriptTypes = discovery.getSubTypesOf(FixtureScript.class);
 
-        final Set<Class<?>> mixinTypes = Sets.newHashSet();
+        final Set<Class<?>> mixinTypes = _Sets.newHashSet();
         mixinTypes.addAll(discovery.getTypesAnnotatedWith(Mixin.class));
 
         final Set<Class<?>> domainObjectTypes = discovery.getTypesAnnotatedWith(DomainObject.class);
@@ -178,7 +178,7 @@ public abstract class IsisComponentProvider {
     static <T> Set<Class<? extends T>> within(
             final List<String> packagesWithDotSuffix,
             final Set<Class<? extends T>> classes) {
-        Set<Class<? extends T>> classesWithin = Sets.newLinkedHashSet();
+        Set<Class<? extends T>> classesWithin = _Sets.newLinkedHashSet();
         for (Class<? extends T> clz : classes) {
             final String className = clz.getName();
             if(containedWithin(packagesWithDotSuffix, className)) {
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 db256dc..2c20c1f 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
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
@@ -91,7 +91,7 @@ public class DeweyOrderUtilTest {
 
 
     private static Set<Map.Entry<String, Object>> ofS(String[]... str) {
-        final Set seq = Sets.<Map.Entry<String,Object>>newLinkedHashSet();
+        final Set<Map.Entry<String,Object>> seq = _Sets.newLinkedHashSet();
         for (String[] strings : str) {
             if(strings.length != 2) {
                 throw new IllegalArgumentException("array must have 2 elements");
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider_within_Test.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider_within_Test.java
index 23ca76d..56ac042 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider_within_Test.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider_within_Test.java
@@ -18,19 +18,19 @@
  */
 package org.apache.isis.core.runtime.systemusinginstallers;
 
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+
 import java.util.Arrays;
 import java.util.Set;
 
-import com.google.common.collect.Sets;
-
 import org.junit.Assert;
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.core.runtime.systemusinginstallers.fixture.budget.SomeServiceToInclude;
 import org.apache.isis.core.runtime.systemusinginstallers.fixture.budgetassignment.SomeServiceNotToInclude;
 
-import static org.hamcrest.CoreMatchers.*;
-
 public class IsisComponentProvider_within_Test {
 
     @Test
@@ -41,7 +41,7 @@ public class IsisComponentProvider_within_Test {
                 SomeServiceNotToInclude.class.getPackage().getName()  + ".";
 
         final Set<Class<?>> within = IsisComponentProvider.within(Arrays.asList(budgetPackageWithDot),
-                Sets.newHashSet(SomeServiceToInclude.class, SomeServiceNotToInclude.class));
+                _Sets.of(SomeServiceToInclude.class, SomeServiceNotToInclude.class));
 
         Assert.assertThat(within.size(), is(equalTo(1)));
     }
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 4f01ccd..d5567ae 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
@@ -33,7 +33,7 @@ import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.Providers;
 
 import com.google.common.base.Strings;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -306,7 +306,7 @@ public class ResourceContext implements RendererContext6 {
     }
 
     // -- canEagerlyRender
-    private Set<Oid> rendered = Sets.newHashSet();
+    private Set<Oid> rendered = _Sets.newHashSet();
     @Override
     public boolean canEagerlyRender(ObjectAdapter objectAdapter) {
         final Oid oid = objectAdapter.getOid();
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java
index c0f0449..2d30819 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication_Experimental.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.viewer;
 import java.util.Map;
 import java.util.Set;
 
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.Page;
@@ -83,7 +83,7 @@ final class IsisWicketApplication_Experimental {
     private Set<CssResourceReference> cssResourceReferencesForAllComponents() {
         // TODO mgrigorov: ISIS-537 temporary disabled to not mess up with Bootstrap styles
         //        Collection<ComponentFactory> componentFactories = getComponentFactoryRegistry().listComponentFactories();
-        return Sets.newLinkedHashSet(
+        return _Sets.newLinkedHashSet(
                 //                Iterables.concat(
                 //                        Iterables.transform(
                 //                                componentFactories,
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 193a821..a5e6fc4 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
@@ -20,13 +20,13 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.themepicker;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -41,6 +41,7 @@ import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
@@ -209,7 +210,8 @@ public class ThemeChooser extends Panel {
 
         final String[] enabledThemesArray = getConfiguration().getList(ENABLED_THEMES_KEY);
         if (enabledThemesArray.length > 0) {
-            final HashSet<String> enabledThemesSet = Sets.newHashSet(enabledThemesArray);
+            final Set<String> enabledThemesSet = _NullSafe.stream(enabledThemesArray)
+                    .collect(Collectors.toSet());
 
             Iterable<String> enabled = Iterables.filter(allThemes, new Predicate<String>() {
                 @Override
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassRemover.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassRemover.java
index af45a06..daf0113 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassRemover.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/CssClassRemover.java
@@ -23,7 +23,7 @@ import java.util.Set;
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Splitter;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.behavior.AttributeAppender;
@@ -45,7 +45,7 @@ public class CssClassRemover extends AttributeModifier {
     protected String newValue(String currentValue, String valueToRemove) {
         if (currentValue == null) return "";
 
-        Set<String> classes = Sets.newHashSet(Splitter.on(" ").split(currentValue));
+        Set<String> classes = _Sets.newHashSet(Splitter.on(" ").split(currentValue));
         classes.remove(valueToRemove);
         return Joiner.on(" ").join(classes);
     }
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 19c15ce..e7d0c99 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
@@ -29,7 +29,7 @@ import java.util.Set;
 import java.util.stream.Stream;
 
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.wrapper.DisabledException;
@@ -103,7 +103,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
      */
     protected Method __isis_executionMode;
 
-    protected final Set<String> jdoMethodsProvidedByEnhancement = Sets.newHashSet();
+    protected final Set<String> jdoMethodsProvidedByEnhancement = _Sets.newHashSet();
 
     public DomainObjectInvocationHandler(
             final T delegate,
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java
index 342d795..f21e030 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/src/main/java/domainapp/application/DomainAppApplicationModule.java
@@ -25,7 +25,7 @@ import java.util.Set;
 
 import javax.xml.bind.annotation.XmlRootElement;
 
-import com.google.common.collect.Sets;
+import org.apache.isis.commons.internal.collections._Sets;
 
 import org.apache.isis.applib.Module;
 import org.apache.isis.applib.ModuleAbstract;