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


The following commit(s) were added to refs/heads/v2 by this push:
     new b2d9ae0  ISIS-2049: Remove guava from core
b2d9ae0 is described below

commit b2d9ae06eba3dc09f35df03f47fae6bd1490f218
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Wed Dec 12 10:56:55 2018 +0100

    ISIS-2049: Remove guava from core
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2049
---
 .../ServiceInstantiatorTestUsingCodegenPlugin.java | 10 ++-
 .../BidirectionalRelationshipContractTestAll.java  |  4 +-
 .../comparable/CategorizedDomainObject.java        | 31 +++-----
 core/viewer-restfulobjects-applib/pom.xml          |  5 --
 .../services/acceptheader/AcceptHeaderService.java |  2 +-
 .../viewer/restfulobjects/applib/util/Parser.java  | 83 +++++++++++-----------
 .../restfulobjects/applib/util/PathNode.java       | 10 +--
 .../viewer/restfulobjects/applib/JsonFixture.java  | 12 ++--
 .../JsonRepresentationTest_asInputStream.java      | 26 ++++---
 .../restfulobjects/applib/util/Parser_Test.java    | 54 ++++++++------
 .../rendering/ReprRendererAbstract.java            |  5 +-
 .../rendering/domainobjects/JsonValueEncoder.java  |  4 +-
 .../rendering/domainobjects/MemberType.java        | 17 +++--
 .../domainobjects/ObjectActionReprRenderer.java    |  6 +-
 .../acceptheader/AcceptHeaderServiceForRest.java   | 45 +++++-------
 .../restfulobjects/rendering/util/MapUtils.java    |  4 +-
 .../viewer/restfulobjects/rendering/util/Util.java | 10 +--
 .../AuthenticationSessionStrategyHeader.java       |  7 +-
 .../server/mappers/ExceptionMapperAbstract.java    | 31 +++++---
 .../resources/DomainObjectResourceServerside.java  | 15 ++--
 .../server/resources/ImageResourceServerside.java  |  9 +--
 .../server/resources/VersionReprRenderer.java      | 10 ++-
 .../server/ResourceContextTest_getArg.java         |  5 +-
 ..._ensureCompatibleAcceptHeader_ContractTest.java |  5 +-
 24 files changed, 201 insertions(+), 209 deletions(-)

diff --git 
a/core/detached-tests/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
 
b/core/detached-tests/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
index 40c69c3..7131c20 100644
--- 
a/core/detached-tests/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
+++ 
b/core/detached-tests/src/test/java/org/apache/isis/core/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
@@ -26,15 +26,13 @@ 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.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.metamodel.services.ServicesInjector;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
@@ -145,7 +143,7 @@ public class ServiceInstantiatorTestUsingCodegenPlugin {
 
         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++) {
@@ -182,7 +180,7 @@ public class ServiceInstantiatorTestUsingCodegenPlugin {
 
         ((RequestScopedService)consumer).__isis_endRequest();
 
-        assertEquals(0, 
FluentIterable.from(allTheNumbers).filter(Predicates.<Integer>notNull()).size());
+        assertEquals(0L, 
_NullSafe.stream(allTheNumbers).filter(_NullSafe::isPresent).count());
     }
 
     public static class SingletonCalculator {
diff --git 
a/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/bidir/BidirectionalRelationshipContractTestAll.java
 
b/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/bidir/BidirectionalRelationshipContractTestAll.java
index 9b1f50c..3284d87 100644
--- 
a/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/bidir/BidirectionalRelationshipContractTestAll.java
+++ 
b/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/bidir/BidirectionalRelationshipContractTestAll.java
@@ -18,13 +18,13 @@
  */
 package org.apache.isis.core.unittestsupport.bidir;
 
-import com.google.common.collect.ImmutableMap;
+import org.apache.isis.commons.internal.collections._Maps;
 
 public class BidirectionalRelationshipContractTestAll extends 
BidirectionalRelationshipContractTestAbstract {
 
     public BidirectionalRelationshipContractTestAll() {
         super("org.apache.isis.core.unittestsupport.bidir",
-                ImmutableMap.<Class<?>,Instantiator>of(
+                _Maps.<Class<?>,Instantiator>unmodifiable(
                         // no instantiator need be registered for 
ParentDomainObject.class;
                         // will default to using new 
InstantiatorSimple(AgreementForTesting.class),
                         ChildDomainObject.class, new 
InstantiatorForChildDomainObject(),
diff --git 
a/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/comparable/CategorizedDomainObject.java
 
b/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/comparable/CategorizedDomainObject.java
index de361dd..c31616e 100644
--- 
a/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/comparable/CategorizedDomainObject.java
+++ 
b/core/detached-tests/src/test/java/org/apache/isis/core/unittestsupport/comparable/CategorizedDomainObject.java
@@ -16,11 +16,12 @@
  */
 package org.apache.isis.core.unittestsupport.comparable;
 
-import com.google.common.collect.Ordering;
-
+import static 
org.apache.isis.commons.internal.base._NullSafe.compareNullsFirst;
 
 public class CategorizedDomainObject implements 
Comparable<CategorizedDomainObject> {
 
+    // --
+
     private Integer category;
 
     public Integer getCategory() {
@@ -31,7 +32,7 @@ public class CategorizedDomainObject implements 
Comparable<CategorizedDomainObje
         this.category = category;
     }
 
-
+    // --
 
     private Integer subcategory;
 
@@ -43,28 +44,16 @@ public class CategorizedDomainObject implements 
Comparable<CategorizedDomainObje
         this.subcategory = subcategory;
     }
 
-
+    // --
 
     @Override
     public int compareTo(CategorizedDomainObject other) {
-        return ORDER_BY_CATEGORY.compound(ORDER_BY_SUBCATEGORY).compare(this, 
other);
-    }
-
-    private static Ordering<CategorizedDomainObject> ORDER_BY_CATEGORY = new 
Ordering<CategorizedDomainObject>() {
-        @Override
-        public int compare(CategorizedDomainObject left, 
CategorizedDomainObject right) {
-            return Ordering.natural().nullsFirst().compare(left.getCategory(), 
right.getCategory());
+        int c = compareNullsFirst(this.getCategory(), other.getCategory());
+        if(c!=0) {
+            return c;
         }
-    };
-
-    private static Ordering<CategorizedDomainObject> ORDER_BY_SUBCATEGORY = 
new Ordering<CategorizedDomainObject>() {
-        @Override
-        public int compare(CategorizedDomainObject left, 
CategorizedDomainObject right) {
-            return 
Ordering.natural().nullsFirst().compare(left.getSubcategory(), 
right.getSubcategory());
-        }
-
-    };
-
+        return compareNullsFirst(this.getSubcategory(), 
other.getSubcategory());        
+    }
 
 
 }
diff --git a/core/viewer-restfulobjects-applib/pom.xml 
b/core/viewer-restfulobjects-applib/pom.xml
index 325c6e0..34271b0 100644
--- a/core/viewer-restfulobjects-applib/pom.xml
+++ b/core/viewer-restfulobjects-applib/pom.xml
@@ -35,11 +35,6 @@
     </properties>
 
     <dependencies>
-        <!-- [ahuber] there is still the goal of removing guava from ro-applib 
-->    
-       <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>log4j</groupId>
diff --git 
a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
 
b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
index 017604c..8072669 100644
--- 
a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
+++ 
b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
@@ -20,7 +20,7 @@ package org.apache.isis.applib.services.acceptheader;
 
 import java.util.List;
 
-import com.google.common.net.MediaType;
+import javax.ws.rs.core.MediaType;
 
 import org.apache.isis.applib.annotation.Programmatic;
 
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 bb0ec13..95a8468 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,9 +29,6 @@ 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;
@@ -152,23 +149,23 @@ public abstract class Parser<T> {
         };
     }
 
-    @Deprecated // [ahuber] MediaType is in standard API! proposing removal
-    public static Parser<com.google.common.net.MediaType> forGuavaMediaType() {
-        return new Parser<com.google.common.net.MediaType>() {
-            @Override
-            public com.google.common.net.MediaType valueOf(final String str) {
-                if (str == null) {
-                    return null;
-                }
-                return com.google.common.net.MediaType.parse(str);
-            }
-
-            @Override
-            public String asString(final com.google.common.net.MediaType t) {
-                return t.toString();
-            }
-        };
-    }
+//    @Deprecated // [ahuber] MediaType is in standard API! proposing removal
+//    public static Parser<com.google.common.net.MediaType> 
forGuavaMediaType() {
+//        return new Parser<com.google.common.net.MediaType>() {
+//            @Override
+//            public com.google.common.net.MediaType valueOf(final String str) 
{
+//                if (str == null) {
+//                    return null;
+//                }
+//                return com.google.common.net.MediaType.parse(str);
+//            }
+//
+//            @Override
+//            public String asString(final com.google.common.net.MediaType t) {
+//                return t.toString();
+//            }
+//        };
+//    }
 
     public static Parser<Boolean> forBoolean() {
         return new Parser<Boolean>() {
@@ -372,29 +369,29 @@ public abstract class Parser<T> {
         };
     }
 
-    @Deprecated // [ahuber] MediaType is in standard API! proposing removal
-    public static Parser<List<com.google.common.net.MediaType>> 
forListOfGuavaMediaTypes() {
-        return new Parser<List<com.google.common.net.MediaType>>() {
-
-            @Override
-            public List<com.google.common.net.MediaType> valueOf(final String 
str) {
-                if (str == null) {
-                    return Collections.emptyList();
-                }
-                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.map(listOfMediaTypes, 
-                        (final com.google.common.net.MediaType 
input)->input.toString());
-                return Joiner.on(",").join(strings);
-            }
-        };
-    }
+//    @Deprecated // [ahuber] MediaType is in standard API! proposing removal
+//    public static Parser<List<com.google.common.net.MediaType>> 
forListOfGuavaMediaTypes() {
+//        return new Parser<List<com.google.common.net.MediaType>>() {
+//
+//            @Override
+//            public List<com.google.common.net.MediaType> valueOf(final 
String str) {
+//                if (str == null) {
+//                    return Collections.emptyList();
+//                }
+//                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.map(listOfMediaTypes, 
+//                        (final com.google.common.net.MediaType 
input)->input.toString());
+//                return Joiner.on(",").join(strings);
+//            }
+//        };
+//    }
 
     @Deprecated // [ahuber] what is this? since it does nothing marking it 
deprecated
     public static Parser<String> forETag() {
diff --git 
a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/PathNode.java
 
b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/PathNode.java
index 42e4c25..9a343fe 100644
--- 
a/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/PathNode.java
+++ 
b/core/viewer-restfulobjects-applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/util/PathNode.java
@@ -31,8 +31,6 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 
-import com.google.common.base.Splitter;
-
 public class PathNode {
     private static final Pattern NODE = 
Pattern.compile("^([^\\[]*)(\\[(.+)\\])?$");
     private static final Pattern WHITESPACE = Pattern.compile("\\s+");
@@ -84,8 +82,9 @@ public class PathNode {
         final Map<String, String> criteria = _Maps.newHashMap();
         final String criteriaStr = nodeMatcher.group(3);
         if (criteriaStr != null) {
-
-            for (final String criterium : 
Splitter.on(WHITESPACE).split(criteriaStr)) {
+            
+            _Strings.splitThenStream(criteriaStr, WHITESPACE)
+            .forEach(criterium->{
                 final Matcher keyValueMatcher = 
LIST_CRITERIA_SYNTAX.matcher(criterium);
                 if (keyValueMatcher.matches()) {
                     criteria.put(keyValueMatcher.group(1), 
keyValueMatcher.group(2));
@@ -93,7 +92,8 @@ public class PathNode {
                     // take content as a map criteria
                     criteria.put(criterium, null);
                 }
-            }
+            });
+            
         }
 
         return new PathNode(key, criteria);
diff --git 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonFixture.java
 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonFixture.java
index 4ac440c..79562b4 100644
--- 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonFixture.java
+++ 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonFixture.java
@@ -19,22 +19,26 @@
 package org.apache.isis.viewer.restfulobjects.applib;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
+import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.viewer.restfulobjects.applib.util.JsonMapper;
 
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.base.Charsets;
-import com.google.common.io.Resources;
 
 public class JsonFixture {
 
     private JsonFixture() {
     }
 
-    public static JsonNode readJson(final String resourceName) throws 
JsonParseException, JsonMappingException, IOException {
-        return 
JsonMapper.instance().read(Resources.toString(Resources.getResource(JsonFixture.class,
 resourceName), Charsets.UTF_8), JsonNode.class);
+    public static JsonNode readJson(final String resourceName) 
+            throws JsonParseException, JsonMappingException, IOException {
+        
+        String json = _Resources.loadAsString(JsonFixture.class, resourceName, 
StandardCharsets.UTF_8);
+        
+        return JsonMapper.instance().read(json, JsonNode.class);
     }
 
 }
diff --git 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonRepresentationTest_asInputStream.java
 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonRepresentationTest_asInputStream.java
index 42c0a62..b916523 100644
--- 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonRepresentationTest_asInputStream.java
+++ 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/JsonRepresentationTest_asInputStream.java
@@ -18,20 +18,21 @@
  */
 package org.apache.isis.viewer.restfulobjects.applib;
 
-import static 
org.apache.isis.viewer.restfulobjects.applib.JsonFixture.readJson;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.junit.Assert.assertThat;
-
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.base.Charsets;
+import org.apache.isis.commons.internal.base._Bytes;
+import org.apache.isis.commons.internal.base._Strings;
+
+import static 
org.apache.isis.viewer.restfulobjects.applib.JsonFixture.readJson;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
 
 public class JsonRepresentationTest_asInputStream {
 
@@ -45,12 +46,9 @@ public class JsonRepresentationTest_asInputStream {
     @Test
     public void asInputStream() throws IOException {
         final InputStream array = jsonRepresentation.asInputStream();
-
-        final ByteArrayOutputStream to = new ByteArrayOutputStream();
-        com.google.common.io.ByteStreams.copy(array, to);
-
-        final String jsonStr = to.toString(Charsets.UTF_8.name());
-
+                
+        final String jsonStr = _Strings.ofBytes(_Bytes.of(array), 
StandardCharsets.UTF_8);
+        
         assertThat(jsonStr, is(not(nullValue())));
     }
 
diff --git 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser_Test.java
 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser_Test.java
index 14d1b5c..14fcb49 100644
--- 
a/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser_Test.java
+++ 
b/core/viewer-restfulobjects-applib/src/test/java/org/apache/isis/viewer/restfulobjects/applib/util/Parser_Test.java
@@ -23,10 +23,6 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
-import javax.ws.rs.core.CacheControl;
-
-import com.google.common.net.MediaType;
-
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
@@ -112,25 +108,37 @@ public class Parser_Test {
         assertThat(valueOf.get(2).get(2), is("f"));
     }
 
-    @Test
-    public void forGuavaMediaTypes() {
-        final Parser<MediaType> parser = Parser.forGuavaMediaType();
-        final MediaType mediaType = MediaType.parse("application/json");
-        final String asString = parser.asString(mediaType);
-        final MediaType valueOf = parser.valueOf(asString);
-
-        assertThat(valueOf, is(mediaType));
-    }
-
-    @Test
-    public void forListOfMediaTypes() {
-        final Parser<List<MediaType>> parser = 
Parser.forListOfGuavaMediaTypes();
-        final List<MediaType> list = 
Arrays.asList(MediaType.parse("application/xml"), 
MediaType.parse("application/json"));
-        final String asString = parser.asString(list);
-        final List<MediaType> valueOf = parser.valueOf(asString);
-
-        assertThat(list, sameContentsAs(valueOf));
-    }
+//    @Test
+//    public void forGuavaMediaTypes() {
+//        final Parser<MediaType> parser = Parser.forGuavaMediaType();
+//        final MediaType mediaType = MediaType.parse("application/json");
+//        final String asString = parser.asString(mediaType);
+//        final MediaType valueOf = parser.valueOf(asString);
+//
+//        assertThat(valueOf, is(mediaType));
+//    }
+//
+//    @Test
+//    public void forListOfMediaTypes() {
+//        final Parser<List<MediaType>> parser = 
Parser.forListOfGuavaMediaTypes();
+//        final List<MediaType> list = 
Arrays.asList(MediaType.parse("application/xml"), 
MediaType.parse("application/json"));
+//        final String asString = parser.asString(list);
+//        final List<MediaType> valueOf = parser.valueOf(asString);
+//
+//        assertThat(list, sameContentsAs(valueOf));
+//    }
+//    
+//    @Test
+//    public void forMediaTypeJson() {
+//        final MediaType mediaType = MediaType.valueOf("application/json");
+//        assertEquals(MediaType.APPLICATION_JSON_TYPE, mediaType);
+//    }
+//
+//    @Test
+//    public void forMediaTypeXml() {
+//        final MediaType mediaType = MediaType.valueOf("application/xml");
+//        assertEquals(MediaType.APPLICATION_XML_TYPE, mediaType);
+//    }
 
     @Test
     public void forDate() {
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 668915b..a7e11f9 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
@@ -24,9 +24,8 @@ import java.util.stream.Stream;
 
 import javax.ws.rs.core.MediaType;
 
-import com.google.common.collect.Maps;
-
 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.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -42,7 +41,7 @@ public abstract class ReprRendererAbstract<R extends 
ReprRendererAbstract<R, T>,
     private final LinkFollowSpecs linkFollower;
     private final RepresentationType representationType;
     protected final JsonRepresentation representation;
-    private final Map<String,String> mediaTypeParams = Maps.newLinkedHashMap();
+    private final Map<String,String> mediaTypeParams = 
_Maps.newLinkedHashMap();
 
     private final InteractionInitiatedBy interactionInitiatedBy;
 
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 cc2830b..94600b3 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
@@ -26,7 +26,6 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import com.fasterxml.jackson.databind.node.NullNode;
-import com.google.common.collect.Maps;
 
 import org.joda.time.DateTime;
 import org.joda.time.LocalDate;
@@ -36,6 +35,7 @@ import org.joda.time.format.DateTimeFormatter;
 import org.joda.time.format.ISODateTimeFormat;
 
 import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.collections._Maps;
 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;
@@ -94,7 +94,7 @@ public final class JsonValueEncoder {
         }
     }
 
-    private static Map<ObjectSpecId, JsonValueConverter> converterBySpec = 
Maps.newLinkedHashMap();
+    private static Map<ObjectSpecId, JsonValueConverter> converterBySpec = 
_Maps.newLinkedHashMap();
 
     private static void putConverter(JsonValueConverter jvc) {
         final List<ObjectSpecId> specIds = jvc.getSpecIds();
diff --git 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
index a478b07..36b1654 100644
--- 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
+++ 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/MemberType.java
@@ -21,31 +21,30 @@ package 
org.apache.isis.viewer.restfulobjects.rendering.domainobjects;
 import java.util.Map;
 
 import org.apache.isis.applib.util.Enums;
+import org.apache.isis.commons.internal.collections._Maps;
 import 
org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
+import 
org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFacet;
 import 
org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import 
org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemoveFromFacet;
+import 
org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateAddToFacet;
+import 
org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
 import 
org.apache.isis.core.metamodel.facets.properties.update.clear.PropertyClearFacet;
 import 
org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySetterFacet;
+import 
org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectFeature;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import 
org.apache.isis.core.metamodel.facets.actions.validate.ActionValidationFacet;
-import 
org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateAddToFacet;
-import 
org.apache.isis.core.metamodel.facets.collections.validate.CollectionValidateRemoveFromFacet;
-import 
org.apache.isis.core.metamodel.facets.properties.validating.PropertyValidateFacet;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
 import org.apache.isis.viewer.restfulobjects.applib.RestfulHttpMethod;
 
-import com.google.common.collect.ImmutableMap;
-
 public enum MemberType {
 
     PROPERTY("properties/", RepresentationType.OBJECT_PROPERTY,
-            ImmutableMap.of(
+            _Maps.unmodifiable(
                     "modify", MutatorSpec.of(Rel.MODIFY, 
PropertyValidateFacet.class, PropertySetterFacet.class, RestfulHttpMethod.PUT, 
BodyArgs.ONE),
                     "clear", MutatorSpec.of(Rel.CLEAR, 
PropertyValidateFacet.class, PropertyClearFacet.class, 
RestfulHttpMethod.DELETE, BodyArgs.NONE))) {
         @Override
@@ -58,7 +57,7 @@ public enum MemberType {
      * {@link CollectionSemantics#getAddToKey()}
      */
     COLLECTION("collections/", RepresentationType.OBJECT_COLLECTION,
-            ImmutableMap.of(
+            _Maps.unmodifiable(
                     "addToSet", MutatorSpec.of(Rel.ADD_TO, 
CollectionValidateAddToFacet.class, CollectionAddToFacet.class, 
RestfulHttpMethod.PUT, BodyArgs.ONE),
                     "addToList", MutatorSpec.of(Rel.ADD_TO, 
CollectionValidateAddToFacet.class, CollectionAddToFacet.class, 
RestfulHttpMethod.POST, BodyArgs.ONE), "removeFrom", 
MutatorSpec.of(Rel.REMOVE_FROM, CollectionValidateRemoveFromFacet.class, 
CollectionRemoveFromFacet.class, RestfulHttpMethod.DELETE, BodyArgs.ONE))) {
         @Override
@@ -71,7 +70,7 @@ public enum MemberType {
      * {@link ActionSemantics#getInvokeKey()}
      */
     ACTION("actions/", RepresentationType.OBJECT_ACTION,
-            ImmutableMap.of(
+            _Maps.unmodifiable(
                     "invokeQueryOnly", MutatorSpec.of(Rel.INVOKE, 
ActionValidationFacet.class, ActionInvocationFacet.class, 
RestfulHttpMethod.GET, BodyArgs.MANY, "invoke"),
                     "invokeIdempotent", MutatorSpec.of(Rel.INVOKE, 
ActionValidationFacet.class, ActionInvocationFacet.class, 
RestfulHttpMethod.PUT, BodyArgs.MANY, "invoke"),
                     "invoke", MutatorSpec.of(Rel.INVOKE, 
ActionValidationFacet.class, ActionInvocationFacet.class, 
RestfulHttpMethod.POST, BodyArgs.MANY, "invoke"))) {
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 a4b7317..d1a1ac2 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
@@ -21,11 +21,11 @@ import java.util.Map;
 import java.util.stream.Stream;
 
 import com.fasterxml.jackson.databind.node.NullNode;
-import org.apache.isis.commons.internal.collections._Lists;
-import com.google.common.collect.Maps;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
+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.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -146,7 +146,7 @@ public class ObjectActionReprRenderer extends 
AbstractObjectMemberReprRenderer<O
             }
             representation.mapPut("parameters", parameters);
         } else {
-            final Map<String,Object> parameters = Maps.newLinkedHashMap();
+            final Map<String,Object> parameters = _Maps.newLinkedHashMap();
             for (int i = 0; i < objectMember.getParameterCount(); i++) {
                 final ObjectActionParameter param = 
objectMember.getParameters().get(i);
                 final Object paramDetails = paramDetails(param, 
getInteractionInitiatedBy());
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 6f938be..3c62c6b 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
@@ -18,22 +18,23 @@ package 
org.apache.isis.viewer.restfulobjects.rendering.service.acceptheader;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collectors;
 
-import javax.annotation.Nullable;
 import javax.enterprise.context.RequestScoped;
 import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
 import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.core.MediaType;
 import javax.ws.rs.ext.Provider;
 
-import com.google.common.collect.Multimaps;
-import com.google.common.collect.SetMultimap;
-import com.google.common.net.MediaType;
-
 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;
+import org.apache.isis.commons.internal.base._NullSafe;
+
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
 @DomainService(
         nature = NatureOfService.DOMAIN,
@@ -66,36 +67,26 @@ public class AcceptHeaderServiceForRest implements 
AcceptHeaderService {
 
 
     @Provider
-    public static class RequestFilter implements 
javax.ws.rs.container.ContainerRequestFilter
-    {
+    public static class RequestFilter implements ContainerRequestFilter  {
         @Override
         public void filter(final ContainerRequestContext requestContext) 
throws IOException {
-            List<javax.ws.rs.core.MediaType> acceptableMediaTypes = 
requestContext.getAcceptableMediaTypes();
-
-            final List<MediaType> mediaTypes =
-                    _Lists.newArrayList(
-                            _Lists.map(acceptableMediaTypes, (
-                                        @Nullable
-                                        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);
-                            })
-                            );
+            final List<MediaType> acceptableMediaTypes = 
requestContext.getAcceptableMediaTypes();
+            
+            final List<MediaType> mediaTypes = stream(acceptableMediaTypes)
+            .filter(_NullSafe::isPresent)
+            .collect(Collectors.toList());
+            
             setMediaTypes(mediaTypes);
         }
     }
 
     @Provider
-    public static class ResponseFilter implements 
javax.ws.rs.container.ContainerResponseFilter
-    {
+    public static class ResponseFilter implements ContainerResponseFilter {
         @Override
         public void filter(
-                final ContainerRequestContext requestContext, final 
ContainerResponseContext responseContext)
-                        throws IOException {
+                final ContainerRequestContext requestContext, 
+                final ContainerResponseContext responseContext) throws 
IOException {
+            
             removeMediaTypes();
         }
     }
diff --git 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/MapUtils.java
 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/MapUtils.java
index 915d504..cfd6ed8 100644
--- 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/MapUtils.java
+++ 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/MapUtils.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.restfulobjects.rendering.util;
 import java.util.Collections;
 import java.util.Map;
 
-import com.google.common.collect.Maps;
+import org.apache.isis.commons.internal.collections._Maps;
 
 public final class MapUtils {
 
@@ -32,7 +32,7 @@ public final class MapUtils {
         if (keyOrValues.length % 2 != 0) {
             throw new IllegalArgumentException("Must provide an even number of 
arguments");
         }
-        final Map<String, String> map = Maps.newLinkedHashMap();
+        final Map<String, String> map = _Maps.newLinkedHashMap();
         String key = null;
         for (final String keyOrValue : keyOrValues) {
             if (key != null) {
diff --git 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
index 33037bb..5217be7 100644
--- 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
+++ 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/Util.java
@@ -18,11 +18,14 @@ package 
org.apache.isis.viewer.restfulobjects.rendering.util;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
+
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
-import com.google.common.base.Charsets;
-import com.google.common.io.ByteStreams;
+
+import org.apache.isis.commons.internal.base._Bytes;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
 import org.apache.isis.viewer.restfulobjects.applib.util.JsonMapper;
@@ -41,8 +44,7 @@ public final class Util {
      */
     public static String asStringUtf8(final InputStream body) {
         try {
-            final byte[] byteArray = ByteStreams.toByteArray(body);
-            return new String(byteArray, Charsets.UTF_8);
+            return _Strings.ofBytes(_Bytes.of(body), StandardCharsets.UTF_8);
         } catch (final IOException e) {
             throw 
RestfulObjectsApplicationException.createWithCauseAndMessage(RestfulResponse.HttpStatusCode.BAD_REQUEST,
 e, "could not read body");
         }
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 70b3a2a..4f4a8e0 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
@@ -20,15 +20,13 @@ package 
org.apache.isis.viewer.restfulobjects.server.authentication;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import com.google.common.base.Splitter;
 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;
 import org.apache.isis.core.webapp.auth.AuthenticationSessionStrategyAbstract;
@@ -61,6 +59,7 @@ public class AuthenticationSessionStrategyHeader extends 
AuthenticationSessionSt
         if (rolesStr == null) {
             return Collections.emptyList();
         }
-        return _Lists.newArrayList(Splitter.on(",").split(rolesStr));
+        return _Strings.splitThenStream(rolesStr, ",")
+                .collect(Collectors.toList());
     }
 }
diff --git 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/ExceptionMapperAbstract.java
 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/ExceptionMapperAbstract.java
index c1cde1d..f581bda 100644
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/ExceptionMapperAbstract.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/mappers/ExceptionMapperAbstract.java
@@ -19,6 +19,7 @@
 package org.apache.isis.viewer.restfulobjects.server.mappers;
 
 import java.util.List;
+import java.util.Optional;
 
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
@@ -28,19 +29,18 @@ import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.ext.ExceptionMapper;
 
 import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
 import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
-import org.apache.isis.viewer.restfulobjects.server.IsisJaxrsServerPlugin;
 import org.apache.isis.viewer.restfulobjects.rendering.ExceptionWithBody;
 import 
org.apache.isis.viewer.restfulobjects.rendering.ExceptionWithHttpStatusCode;
+import org.apache.isis.viewer.restfulobjects.server.IsisJaxrsServerPlugin;
 import 
org.apache.isis.viewer.restfulobjects.server.mappers.entity.ExceptionDetail;
 import 
org.apache.isis.viewer.restfulobjects.server.mappers.entity.ExceptionPojo;
 import 
org.apache.isis.viewer.restfulobjects.server.resources.serialization.SerializationStrategy;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Throwables;
-import com.google.common.collect.FluentIterable;
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
 public abstract class ExceptionMapperAbstract<T extends Throwable> implements 
ExceptionMapper<T> {
 
@@ -87,7 +87,6 @@ public abstract class ExceptionMapperAbstract<T extends 
Throwable> implements Ex
     }
 
     private RestfulResponse.HttpStatusCode determineStatusCode(final T ex) {
-        final List<Throwable> chain = Throwables.getCausalChain(ex);
 
         RestfulResponse.HttpStatusCode statusCode;
 
@@ -95,8 +94,10 @@ public abstract class ExceptionMapperAbstract<T extends 
Throwable> implements Ex
         if(statusCode!=null) {
             return statusCode;
         }
+        
+        final Optional<RecoverableException> recoverableIfAny = 
recoverableFor(ex);
 
-        
if(!FluentIterable.from(chain).filter(RecoverableException.class).isEmpty()) {
+        if(recoverableIfAny.isPresent()) {
             statusCode = RestfulResponse.HttpStatusCode.OK;
         } else if(ex instanceof ExceptionWithHttpStatusCode) {
             ExceptionWithHttpStatusCode exceptionWithHttpStatusCode = 
(ExceptionWithHttpStatusCode) ex;
@@ -108,12 +109,24 @@ public abstract class ExceptionMapperAbstract<T extends 
Throwable> implements Ex
     }
 
     private static String messageFor(final Throwable ex) {
-        final List<Throwable> chain = Throwables.getCausalChain(ex);
-        final Optional<RecoverableException> recoverableIfAny =
-                
FluentIterable.from(chain).filter(RecoverableException.class).first();
+        
+        final Optional<RecoverableException> recoverableIfAny = 
recoverableFor(ex);
+                
         return (recoverableIfAny.isPresent() ? recoverableIfAny.get() : 
ex).getMessage();
     }
 
+    private static Optional<RecoverableException> recoverableFor(final 
Throwable ex) {
+        final List<Throwable> chain = _Exceptions.getCausalChain(ex);
+        
+        final Optional<RecoverableException> recoverableIfAny = stream(chain)
+        .filter(t->t instanceof RecoverableException)
+        .map(t->(RecoverableException)t)
+        .findFirst();
+        
+        return recoverableIfAny;
+    }
+    
+    
     private ExceptionDetail detailIfRequired(
             final RestfulResponse.HttpStatusCode httpStatusCode,
             final Throwable ex) {
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 59826be..9c934ae 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
@@ -18,7 +18,6 @@ package 
org.apache.isis.viewer.restfulobjects.server.resources;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URL;
 import java.util.List;
 
 import javax.ws.rs.Consumes;
@@ -33,9 +32,6 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-import org.apache.isis.commons.internal.base._Strings;
-import com.google.common.io.Resources;
-
 import org.apache.log4j.Logger;
 
 import org.apache.isis.applib.annotation.Where;
@@ -46,6 +42,9 @@ import 
org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.grid.Grid;
 import org.apache.isis.applib.layout.links.Link;
 import org.apache.isis.applib.services.command.Command;
+import org.apache.isis.commons.internal.base._Bytes;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.core.commons.url.UrlDecoderUtil;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -243,12 +242,16 @@ public class DomainObjectResourceServerside extends 
ResourceAbstract implements
 
         byte[] toBytes() {
             String imageName =  getImageName();
-            URL resource = Resources.getResource(domainClass, imageName);
+            
             try {
-                return Resources.toByteArray(resource);
+                
+                final InputStream resource = _Resources.load(domainClass, 
imageName);
+                return _Bytes.of(resource);
+                
             } catch (IOException e) {
                 return null;
             }
+            
         }
     }
 
diff --git 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ImageResourceServerside.java
 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ImageResourceServerside.java
index e2569b7..764ddf9 100644
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ImageResourceServerside.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ImageResourceServerside.java
@@ -19,14 +19,15 @@
 package org.apache.isis.viewer.restfulobjects.server.resources;
 
 import java.io.IOException;
-import java.net.URL;
+import java.io.InputStream;
 
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
 
-import com.google.common.io.Resources;
+import org.apache.isis.commons.internal.base._Bytes;
+import org.apache.isis.commons.internal.resources._Resources;
 
 @Path("/image")
 public class ImageResourceServerside extends ResourceAbstract {
@@ -36,8 +37,8 @@ public class ImageResourceServerside extends ResourceAbstract 
{
     @Produces("image/png")
     public Response image() throws IOException {
 
-        URL resource = Resources.getResource(getClass(), "SimpleObject.png");
-        byte[] bytes = Resources.toByteArray(resource);
+        final InputStream resource = _Resources.load(getClass(), 
"SimpleObject.png");
+        final byte[] bytes = _Bytes.of(resource);
 
         //        Response.ResponseBuilder response = Response.ok(file);
         //        response.header("Content-Disposition",
diff --git 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
index 7668d95..5b81a83 100644
--- 
a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
+++ 
b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/VersionReprRenderer.java
@@ -18,12 +18,10 @@
  */
 package org.apache.isis.viewer.restfulobjects.server.resources;
 
-import java.net.URL;
-import java.nio.charset.Charset;
+import java.io.InputStream;
 import java.util.Properties;
 
-import com.google.common.io.Resources;
-
+import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
 import org.apache.isis.viewer.restfulobjects.applib.RepresentationType;
@@ -88,9 +86,9 @@ public class VersionReprRenderer extends 
ReprRendererAbstract<VersionReprRendere
 
     private static String versionFromManifest() {
         try {
-            URL resource = Resources.getResource(META_INF_POM_PROPERTIES);
+            final InputStream resource = 
_Resources.load(VersionReprRenderer.class, META_INF_POM_PROPERTIES);
             Properties p = new Properties();
-            p.load(Resources.asCharSource(resource, 
Charset.defaultCharset()).openStream());
+            p.load(resource);
             return p.getProperty("version");
         } catch (final Exception ex) {
             return "UNKNOWN";
diff --git 
a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
 
b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
index 323cd01..8cb7a01 100644
--- 
a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
+++ 
b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContextTest_getArg.java
@@ -24,14 +24,13 @@ import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.HttpHeaders;
 
-import com.google.common.collect.Maps;
-
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -151,7 +150,7 @@ public class ResourceContextTest_getArg {
 
 
     private void givenServletRequestParameterMapEmpty() {
-        final HashMap<Object, Object> parameterMap = Maps.newHashMap();
+        final HashMap<Object, Object> parameterMap = _Maps.newHashMap();
         context.checking(new Expectations() {
             {
                 oneOf(mockHttpServletRequest).getParameterMap();
diff --git 
a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
 
b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
index 204003b..deeabb3 100644
--- 
a/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
+++ 
b/core/viewer-restfulobjects-server/src/test/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
@@ -27,14 +27,13 @@ import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 
-import com.google.common.collect.Maps;
-
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -193,7 +192,7 @@ public abstract class 
ResourceContext_ensureCompatibleAcceptHeader_ContractTest
     }
 
     private void givenServletRequestParameterMapEmpty() {
-        final HashMap<Object, Object> parameterMap = Maps.newHashMap();
+        final HashMap<Object, Object> parameterMap = _Maps.newHashMap();
         context.checking(new Expectations() {
             {
                 oneOf(mockHttpServletRequest).getParameterMap();

Reply via email to