Compatibility with guava 21

- Objects.ToStringHelper has been moved to MoreObjects. We now
reimplement the functionality in order to be compatible with both guava
15 and guava 21
- com.google.common.base.Predicate now extends
java.util.Function.Predicate. As a result static imports of "and" and
"or" from Predicates are shadowed by java.util.function.Predicate
variants, preventing the statics from being called unless explicitely
qualified.

Change-Id: Ie33d5eedd9e1a6dbea8f4af2db9aa36ec8567cf5
diff --git a/org.eclipse.emf.compare-parent/targetPlatforms/fragments/orbit.tpd b/org.eclipse.emf.compare-parent/targetPlatforms/fragments/orbit.tpd
index 64b1b83..a023ca8 100644
--- a/org.eclipse.emf.compare-parent/targetPlatforms/fragments/orbit.tpd
+++ b/org.eclipse.emf.compare-parent/targetPlatforms/fragments/orbit.tpd
@@ -2,8 +2,8 @@
 
 with source, requirements
 
-location "http://download.eclipse.org/tools/orbit/downloads/drops/R20150519210750/repository/" {
-	com.google.guava [15.0.0,16.0.0)
+location "http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/" {
+	com.google.guava [15.0.0,22.0.0)
 	com.google.gson [2.2.4,3.0.0)
 	org.junit [4,5)
 	org.apache.log4j [1.2.0,1.3.0)
diff --git a/org.eclipse.emf.compare-parent/targetPlatforms/oxygen-sdk.target b/org.eclipse.emf.compare-parent/targetPlatforms/oxygen-sdk.target
index b3bd7c5..c814fdb 100644
--- a/org.eclipse.emf.compare-parent/targetPlatforms/oxygen-sdk.target
+++ b/org.eclipse.emf.compare-parent/targetPlatforms/oxygen-sdk.target
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="EMF Compare based on Oxygen SDK" sequenceNumber="1490198896">
+<target name="EMF Compare based on Oxygen SDK" sequenceNumber="1490198898">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.license.feature.group" version="1.0.1.v20140414-1359"/>
       <repository location="http://download.eclipse.org/cbi/updates/license"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="com.google.guava" version="15.0.0.v201403281430"/>
-      <unit id="com.google.gson" version="2.2.4.v201311231704"/>
+      <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
+      <unit id="com.google.gson" version="2.7.0.v20170129-0911"/>
       <unit id="org.junit" version="4.12.0.v201504281640"/>
       <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-      <unit id="javaewah" version="0.7.9.v201401101600"/>
+      <unit id="javaewah" version="1.1.6.v20160919-1400"/>
       <unit id="org.apache.commons.compress" version="1.6.0.v201310281400"/>
-      <unit id="org.kohsuke.args4j" version="2.0.21.v201301150030"/>
-      <unit id="org.mockito" version="1.9.5.v201311280930"/>
+      <unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
+      <unit id="org.mockito" version="1.9.5.v201605172210"/>
       <unit id="org.hamcrest" version="1.1.0.v20090501071000"/>
-      <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20150519210750/repository/"/>
+      <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.egit.feature.group" version="0.0.0"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.ecoretools.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ecoretools.tests/META-INF/MANIFEST.MF
index c300d82..47ee532 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ecoretools.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.ecoretools.tests/META-INF/MANIFEST.MF
@@ -13,8 +13,8 @@
  org.eclipse.gmf.runtime.emf.core;bundle-version="1.2.2",
  org.eclipse.gmf.runtime.notation;bundle-version="1.2.0",
  org.eclipse.ui;bundle-version="3.5.0"
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.compare.diagram.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.edit/META-INF/MANIFEST.MF
index a4e8771..ea6fa1e 100644
--- a/plugins/org.eclipse.emf.compare.diagram.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.edit/META-INF/MANIFEST.MF
@@ -18,8 +18,8 @@
  org.eclipse.gmf.runtime.notation;bundle-version="1.2.0",
  org.eclipse.gmf.runtime.notation.edit;bundle-version="1.4.0"
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.diagram.internal,
  org.eclipse.emf.compare.diagram.internal.extensions.provider;x-internal:=true,
  org.eclipse.emf.compare.diagram.internal.extensions.provider.spec;x-friends:="org.eclipse.emf.compare.diagram.papyrus.tests",
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ecoretools.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ide.ecoretools.tests/META-INF/MANIFEST.MF
index 1134d4c..e70cd5e 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ecoretools.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ecoretools.tests/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@
  org.eclipse.emf.compare.ide;bundle-version="3.0.0",
  org.eclipse.emf.compare.diagram.ide.ui;bundle-version="3.0.0",
  org.eclipse.emf.compare.rcp;bundle-version="2.1.0"
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/META-INF/MANIFEST.MF
index edc3bfe..60fa41d 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.papyrus/META-INF/MANIFEST.MF
@@ -33,9 +33,9 @@
  org.eclipse.emf.compare.edit,
  org.eclipse.emf.compare.diagram.papyrus;bundle-version="1.2.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.io;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.io;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="1.2.15"
 Export-Package: org.eclipse.emf.compare.diagram.ide.ui.papyrus.comparesource,
  org.eclipse.emf.compare.diagram.ide.ui.papyrus.dependency,
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius/META-INF/MANIFEST.MF
index 4b8e395..639b48d 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui.sirius/META-INF/MANIFEST.MF
@@ -17,10 +17,10 @@
  org.eclipse.emf.compare.ide.ui;bundle-version="4.1.0",
  org.eclipse.emf.compare.diagram.ide.ui;bundle-version="3.0.0",
  org.eclipse.sirius.diagram;bundle-version="3.0.0"
-Import-Package: com.google.common.annotations;version="[11.0.0,16.0.0)",
- com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.annotations;version="[15.0.0,22.0.0)",
+ com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.diagram.ide.ui.sirius.internal;x-friends:="org.eclipse.emf.compare.diagram.sirius.tests"
 Bundle-Activator: org.eclipse.emf.compare.diagram.ide.ui.sirius.CompareDiagramIDEUISiriusPlugin
 
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.ide.ui/META-INF/MANIFEST.MF
index 3815109..28088ce 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui/META-INF/MANIFEST.MF
@@ -25,5 +25,5 @@
  org.eclipse.emf.compare.diagram.ide.ui.internal.preferences;x-internal:=true,
  org.eclipse.emf.compare.diagram.ide.ui.internal.structuremergeviewer.filters;x-friends:="org.eclipse.emf.compare.diagram.papyrus.tests"
 Bundle-Vendor: %providerName
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/contentmergeviewer/diagram/DiagramContentMergeViewer.java b/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/contentmergeviewer/diagram/DiagramContentMergeViewer.java
index b4028e5..51c84c2 100644
--- a/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/contentmergeviewer/diagram/DiagramContentMergeViewer.java
+++ b/plugins/org.eclipse.emf.compare.diagram.ide.ui/src/org/eclipse/emf/compare/diagram/ide/ui/internal/contentmergeviewer/diagram/DiagramContentMergeViewer.java
@@ -21,6 +21,7 @@
 import static org.eclipse.emf.compare.utils.EMFComparePredicates.valueIs;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Iterables;
@@ -791,7 +792,7 @@
 		protected Predicate<Diff> goodCandidate() {
 			return new Predicate<Diff>() {
 				public boolean apply(Diff difference) {
-					return or(isAddOrDelete, isHideOrReveal).apply(difference)
+					return Predicates.or(isAddOrDelete, isHideOrReveal).apply(difference)
 							&& difference.getState() == DifferenceState.UNRESOLVED;
 				}
 			};
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/META-INF/MANIFEST.MF
index 098af40..324be06 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/META-INF/MANIFEST.MF
@@ -41,10 +41,10 @@
  org.eclipse.emf.compare.uml2.ide.tests
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)",
- com.google.common.io;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)",
+ com.google.common.io;version="[15.0.0,22.0.0)",
  org.eclipse.papyrus.infra.core.sashwindows.di,
  org.eclipse.papyrus.infra.core.sashwindows.di.util
 Export-Package: org.eclipse.emf.compare.diagram.papyrus.tests
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.papyrus/META-INF/MANIFEST.MF
index cae20cf..c4f1fa2 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus/META-INF/MANIFEST.MF
@@ -11,8 +11,8 @@
  org.eclipse.gmf.runtime.notation;bundle-version="1.8.0",
  org.eclipse.papyrus.infra.core;bundle-version="0.9.1"
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-Activator: org.eclipse.emf.compare.diagram.papyrus.internal.CompareDiagramPapyrusPlugin
 Bundle-Vendor: %providerName
 Export-Package: org.eclipse.emf.compare.diagram.papyrus,
diff --git a/plugins/org.eclipse.emf.compare.diagram.sirius/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram.sirius/META-INF/MANIFEST.MF
index 42e7143..a28abfd 100644
--- a/plugins/org.eclipse.emf.compare.diagram.sirius/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram.sirius/META-INF/MANIFEST.MF
@@ -7,10 +7,10 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Localization: plugin
-Import-Package: com.google.common.annotations;version="[11.0.0,16.0.0)",
- com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.annotations;version="[15.0.0,22.0.0)",
+ com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.compare;bundle-version="3.2.0",
  org.eclipse.emf.compare.diagram;bundle-version="2.3.0",
diff --git a/plugins/org.eclipse.emf.compare.diagram/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.diagram/META-INF/MANIFEST.MF
index b9f12ba..0d89172 100644
--- a/plugins/org.eclipse.emf.compare.diagram/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.diagram/META-INF/MANIFEST.MF
@@ -12,8 +12,8 @@
  org.eclipse.gmf.runtime.diagram.ui,
  org.eclipse.emf.compare;bundle-version="2.0.0",
  org.eclipse.emf.compare.ide;bundle-version="3.0.0"
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.compare.diagram.internal.CompareDiagramPlugin
 Export-Package: org.eclipse.emf.compare.diagram.internal;
diff --git a/plugins/org.eclipse.emf.compare.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.edit/META-INF/MANIFEST.MF
index 2c78a67..f7cf6fa 100644
--- a/plugins/org.eclipse.emf.compare.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.edit/META-INF/MANIFEST.MF
@@ -27,6 +27,6 @@
  org.eclipse.emf.transaction;bundle-version="1.3.0",
  org.eclipse.emf.ecore.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.annotations;version="[11.0.0,16.0.0)",
- com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.annotations;version="[15.0.0,22.0.0)",
+ com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.egit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.egit/META-INF/MANIFEST.MF
index 6693a49..899e5dd 100644
--- a/plugins/org.eclipse.emf.compare.egit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.egit/META-INF/MANIFEST.MF
@@ -12,7 +12,7 @@
  org.eclipse.emf.compare.rcp,
  org.eclipse.emf.compare,
  org.eclipse.egit.ui;bundle-version="4.2.0"
-Import-Package: com.google.common.collect;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.collect;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="[1.2.15,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.compare.ide.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide.tests/META-INF/MANIFEST.MF
index 9a0a61b..b6b2ccf 100644
--- a/plugins/org.eclipse.emf.compare.ide.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide.tests/META-INF/MANIFEST.MF
@@ -17,4 +17,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Import-Package: com.google.common.io;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.io;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.framework/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide.ui.tests.framework/META-INF/MANIFEST.MF
index b9ff195..c2170bf 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.framework/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.framework/META-INF/MANIFEST.MF
@@ -19,5 +19,5 @@
 Export-Package: org.eclipse.emf.compare.ide.ui.tests.framework,
  org.eclipse.emf.compare.ide.ui.tests.framework.annotations,
  org.eclipse.emf.compare.ide.ui.tests.framework.internal
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/META-INF/MANIFEST.MF
index 40b0e13..219a5ee 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests.git.framework/META-INF/MANIFEST.MF
@@ -28,4 +28,4 @@
  org.eclipse.emf.compare.ide.ui.tests.git.framework.annotations,
  org.eclipse.emf.compare.ide.ui.tests.git.framework.internal,
  org.eclipse.emf.compare.ide.ui.tests.git.framework.internal.statements
-Import-Package: com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.ide.ui.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide.ui.tests/META-INF/MANIFEST.MF
index d4428fc..6a72c25 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide.ui.tests/META-INF/MANIFEST.MF
@@ -27,10 +27,10 @@
  org.eclipse.core.filesystem,
  org.eclipse.emf.compare.ide.ui.tests.framework;bundle-version="[1.0.0,2.0.0)"
 Bundle-Activator: org.eclipse.emf.compare.ide.ui.tests.Activator
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)",
- com.google.common.util.concurrent;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)",
+ com.google.common.util.concurrent;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.ide.ui.tests,
  org.eclipse.emf.compare.ide.ui.tests.structuremergeviewer.actions,
  org.eclipse.emf.compare.ide.ui.tests.workspace
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide.ui/META-INF/MANIFEST.MF
index da5a467..baf2985 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide.ui/META-INF/MANIFEST.MF
@@ -54,11 +54,11 @@
  org.eclipse.emf.compare.ide.ui.logical,
  org.eclipse.emf.compare.ide.ui.mergeresolution,
  org.eclipse.emf.compare.ide.ui.source
-Import-Package: com.google.common.annotations;version="[11.0.0,16.0.0)",
- com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)",
- com.google.common.io;version="[11.0.0,16.0.0)",
- com.google.common.util.concurrent;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.annotations;version="[15.0.0,22.0.0)",
+ com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)",
+ com.google.common.io;version="[15.0.0,22.0.0)",
+ com.google.common.util.concurrent;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="[1.2.15,2.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.ide/META-INF/MANIFEST.MF
index a960009..6f6aa1c 100644
--- a/plugins/org.eclipse.emf.compare.ide/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.ide/META-INF/MANIFEST.MF
@@ -14,12 +14,12 @@
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Localization: plugin
-Import-Package: com.google.common.annotations;version="[11.0.0,16.0.0)", 
- com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.io;version="[11.0.0,16.0.0)",
- com.google.common.util.concurrent;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.annotations;version="[15.0.0,22.0.0)", 
+ com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.io;version="[15.0.0,22.0.0)",
+ com.google.common.util.concurrent;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.ide,
  org.eclipse.emf.compare.ide.internal.utils;x-friends:="org.eclipse.emf.compare.ide.ui,org.eclipse.emf.compare.uml2.ide.tests",
  org.eclipse.emf.compare.ide.internal.hook;x-friends:="org.eclipse.emf.compare.ide.ui",
diff --git a/plugins/org.eclipse.emf.compare.rcp.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.rcp.tests/META-INF/MANIFEST.MF
index 4cd65c1..4136f6f 100644
--- a/plugins/org.eclipse.emf.compare.rcp.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.rcp.tests/META-INF/MANIFEST.MF
@@ -8,6 +8,6 @@
  org.eclipse.emf.compare;bundle-version="3.3.0",
  org.eclipse.emf.compare.rcp;bundle-version="2.4.0",
  org.eclipse.emf.compare.tests;bundle-version="3.3.0"
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.rcp.ui.tests/META-INF/MANIFEST.MF
index ff5efa4..cb0552c 100644
--- a/plugins/org.eclipse.emf.compare.rcp.ui.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.rcp.ui.tests/META-INF/MANIFEST.MF
@@ -17,9 +17,9 @@
  org.eclipse.ui.workbench
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.rcp.ui.tests,
  org.eclipse.emf.compare.rcp.ui.tests.mergeviewer.item,
  org.eclipse.emf.compare.rcp.ui.tests.structuremergeviewer.groups.provider,
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.rcp.ui/META-INF/MANIFEST.MF
index a4ef1a1..b8a75eb 100644
--- a/plugins/org.eclipse.emf.compare.rcp.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.rcp.ui/META-INF/MANIFEST.MF
@@ -56,9 +56,9 @@
  org.eclipse.emf.compare.rcp.ui.structuremergeviewer.filters,
  org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups,
  org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.extender
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)",
- com.google.common.io;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)",
+ com.google.common.io;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="[1.2.15,2.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/mergeviewer/item/impl/MergeViewerItem.java b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/mergeviewer/item/impl/MergeViewerItem.java
index a65f130..485e759 100644
--- a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/mergeviewer/item/impl/MergeViewerItem.java
+++ b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/mergeviewer/item/impl/MergeViewerItem.java
@@ -23,7 +23,6 @@
 import static org.eclipse.emf.compare.utils.EMFComparePredicates.onFeature;
 
 import com.google.common.base.Function;
-import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
@@ -60,6 +59,7 @@
 import org.eclipse.emf.compare.rcp.ui.mergeviewer.IMergeViewer.MergeViewerSide;
 import org.eclipse.emf.compare.rcp.ui.mergeviewer.item.IMergeViewerItem;
 import org.eclipse.emf.compare.rcp.ui.structuremergeviewer.groups.IDifferenceGroupProvider;
+import org.eclipse.emf.compare.utils.Objects;
 import org.eclipse.emf.compare.utils.ReferenceUtil;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/filters/impl/CascadingDifferencesFilter.java b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/filters/impl/CascadingDifferencesFilter.java
index ce21108..ea7140d 100644
--- a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/filters/impl/CascadingDifferencesFilter.java
+++ b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/filters/impl/CascadingDifferencesFilter.java
@@ -10,8 +10,6 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.filters.impl;
 
-import static com.google.common.base.Predicates.and;
-import static com.google.common.base.Predicates.or;
 import static org.eclipse.emf.compare.ConflictKind.REAL;
 import static org.eclipse.emf.compare.DifferenceKind.ADD;
 import static org.eclipse.emf.compare.DifferenceKind.DELETE;
@@ -22,6 +20,7 @@
 import static org.eclipse.emf.compare.utils.EMFComparePredicates.ofKind;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
 import com.google.common.collect.UnmodifiableIterator;
@@ -73,9 +72,10 @@
 							Match parentMatch = (Match)parent.getData();
 							ret = isInsideAddOrDeleteTreeNode(diff, parent);
 							if (!ret && isAddOrDeleteMatch(parentMatch, diff.getSource())) {
-								ret = !and(
-										or(CONTAINMENT_REFERENCE_CHANGE, REFINED_BY_CONTAINMENT_REF_CHANGE),
-										ofKind(ADD, DELETE)).apply(diff);
+								ret = !Predicates
+										.and(Predicates.or(CONTAINMENT_REFERENCE_CHANGE,
+												REFINED_BY_CONTAINMENT_REF_CHANGE), ofKind(ADD, DELETE))
+										.apply(diff);
 							}
 						}
 					}
diff --git a/plugins/org.eclipse.emf.compare.rcp/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.rcp/META-INF/MANIFEST.MF
index 48b9dca..6f85b20 100644
--- a/plugins/org.eclipse.emf.compare.rcp/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.rcp/META-INF/MANIFEST.MF
@@ -25,6 +25,6 @@
  org.eclipse.emf.compare.rcp.internal.preferences;x-friends:="org.eclipse.emf.compare.rcp.ui,org.eclipse.emf.compare.ide.ui",
  org.eclipse.emf.compare.rcp.internal.tracer;x-friends:="org.eclipse.emf.compare.rcp.ui,org.eclipse.emf.compare.ide.ui",
  org.eclipse.emf.compare.rcp.policy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="[1.2.15,2.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.subversive/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.subversive/META-INF/MANIFEST.MF
index 3428348..b8a895d 100644
--- a/plugins/org.eclipse.emf.compare.subversive/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.subversive/META-INF/MANIFEST.MF
@@ -12,5 +12,5 @@
  org.eclipse.core.resources,
  org.eclipse.team.svn.core,
  org.eclipse.core.runtime
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.subversive.internal.adapter;x-internal:=true
diff --git a/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF
index 35d02da..6068226 100644
--- a/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF
@@ -55,7 +55,7 @@
  org.eclipse.emf.compare.tests.scope,
  org.eclipse.emf.compare.tests.suite,
  org.eclipse.emf.compare.tests.unit
-Import-Package: com.google.common.base;version="[12.0.0,16.0.0)",
- com.google.common.cache;version="[12.0.0,16.0.0)",
- com.google.common.collect;version="[12.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.compare.uml2.edit.papyrus/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.edit.papyrus/META-INF/MANIFEST.MF
index 0d398f4..d2bc0db 100644
--- a/plugins/org.eclipse.emf.compare.uml2.edit.papyrus/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.edit.papyrus/META-INF/MANIFEST.MF
@@ -20,8 +20,8 @@
  org.eclipse.emf.compare.diagram.ide.ui.papyrus
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
  org.eclipse.papyrus.emf.facet.efacet.metamodel.v0_2_0.efacet
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emf.compare.uml2.edit.papyrus,
diff --git a/plugins/org.eclipse.emf.compare.uml2.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.edit/META-INF/MANIFEST.MF
index 42bd00d..e1074a7 100644
--- a/plugins/org.eclipse.emf.compare.uml2.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.edit/META-INF/MANIFEST.MF
@@ -19,8 +19,8 @@
  org.eclipse.uml2.types;visibility:=reexport,
  org.eclipse.emf.compare.edit;bundle-version="4.2.0";visibility:=reexport
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
  org.eclipse.emf.compare.provider
 Export-Package: org.eclipse.emf.compare.uml2.internal,
  org.eclipse.emf.compare.uml2.internal.provider;x-internal:=true,
diff --git a/plugins/org.eclipse.emf.compare.uml2.ide.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.ide.tests/META-INF/MANIFEST.MF
index 969e725..e3a8f94 100644
--- a/plugins/org.eclipse.emf.compare.uml2.ide.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.ide.tests/META-INF/MANIFEST.MF
@@ -17,6 +17,6 @@
  org.eclipse.emf.compare.uml2.rcp
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.uml2.ide.tests.util
diff --git a/plugins/org.eclipse.emf.compare.uml2.ide.ui.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.ide.ui.tests/META-INF/MANIFEST.MF
index cedd230..42c616a 100644
--- a/plugins/org.eclipse.emf.compare.uml2.ide.ui.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.ide.ui.tests/META-INF/MANIFEST.MF
@@ -24,6 +24,6 @@
  org.eclipse.emf.compare.ide.ui.tests;bundle-version="4.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.uml2.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.ide/META-INF/MANIFEST.MF
index 93a5743..7a62ffd 100644
--- a/plugins/org.eclipse.emf.compare.uml2.ide/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.ide/META-INF/MANIFEST.MF
@@ -14,5 +14,5 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.uml2.papyrus.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.papyrus.tests/META-INF/MANIFEST.MF
index cb7f6c4..64983a0 100644
--- a/plugins/org.eclipse.emf.compare.uml2.papyrus.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.papyrus.tests/META-INF/MANIFEST.MF
@@ -27,5 +27,5 @@
  org.eclipse.papyrus.sysml;bundle-version="[1.0.2,2.0.0)",
  org.eclipse.emf.compare.uml2.papyrus
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
diff --git a/plugins/org.eclipse.emf.compare.uml2.papyrus/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.papyrus/META-INF/MANIFEST.MF
index cf138f5..48ea877 100644
--- a/plugins/org.eclipse.emf.compare.uml2.papyrus/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.papyrus/META-INF/MANIFEST.MF
@@ -14,11 +14,12 @@
  org.eclipse.jface;bundle-version="[3.10.2,4.0.0)",
  org.eclipse.papyrus.infra.emf;bundle-version="[1.0.2,4.0.0)",
  org.eclipse.emf.transaction;bundle-version="[1.8.0,2.0.0)",
- com.google.guava;bundle-version="[15.0.0,16.0.0)",
  org.apache.commons.lang;bundle-version="[2.6.0,3.0.0)",
  org.eclipse.emf.compare.uml2;bundle-version="2.5.0",
  org.eclipse.emf.compare.ide;bundle-version="3.3.0"
 Export-Package: org.eclipse.emf.compare.uml2.papyrus.internal.hook,
  org.eclipse.emf.compare.uml2.papyrus.internal.hook.migration
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.compare.uml2.papyrus.internal.UMLPapyrusComparePlugin
diff --git a/plugins/org.eclipse.emf.compare.uml2.rcp.ui.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.rcp.ui.tests/META-INF/MANIFEST.MF
index b8a5dda..57036e0 100644
--- a/plugins/org.eclipse.emf.compare.uml2.rcp.ui.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.rcp.ui.tests/META-INF/MANIFEST.MF
@@ -21,7 +21,7 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.uml2.rcp.ui.tests.groups
diff --git a/plugins/org.eclipse.emf.compare.uml2.rcp.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.rcp.ui/META-INF/MANIFEST.MF
index 9e400d0..410abd9 100644
--- a/plugins/org.eclipse.emf.compare.uml2.rcp.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.rcp.ui/META-INF/MANIFEST.MF
@@ -13,8 +13,8 @@
  org.eclipse.core.runtime;bundle-version="3.5.0",
  org.eclipse.uml2.uml;bundle-version="5.0.0",
  org.eclipse.emf.compare.edit;bundle-version="3.0.0"
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
 Export-Package: org.eclipse.emf.compare.uml2.rcp.ui.internal.accessor;x-internal:=true,
diff --git a/plugins/org.eclipse.emf.compare.uml2.rcp.ui/src/org/eclipse/emf/compare/uml2/rcp/ui/internal/accessor/UMLStereotypeApplicationChangeFeatureAccessor.java b/plugins/org.eclipse.emf.compare.uml2.rcp.ui/src/org/eclipse/emf/compare/uml2/rcp/ui/internal/accessor/UMLStereotypeApplicationChangeFeatureAccessor.java
index ead5011..56300b5 100644
--- a/plugins/org.eclipse.emf.compare.uml2.rcp.ui/src/org/eclipse/emf/compare/uml2/rcp/ui/internal/accessor/UMLStereotypeApplicationChangeFeatureAccessor.java
+++ b/plugins/org.eclipse.emf.compare.uml2.rcp.ui/src/org/eclipse/emf/compare/uml2/rcp/ui/internal/accessor/UMLStereotypeApplicationChangeFeatureAccessor.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.uml2.rcp.ui.internal.accessor;
 
-import static com.google.common.base.Predicates.and;
 import static com.google.common.base.Predicates.instanceOf;
 import static com.google.common.base.Predicates.not;
 import static com.google.common.collect.Iterables.filter;
@@ -18,6 +17,7 @@
 import static org.eclipse.emf.compare.utils.EMFComparePredicates.hasState;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
@@ -225,7 +225,7 @@
 					final Match match = comparison.getMatch((EObject)element);
 					if (match != null) {
 						return Iterables.any(match.getDifferences(),
-								and(instanceOf(StereotypeApplicationChange.class),
+								Predicates.and(instanceOf(StereotypeApplicationChange.class),
 										hasState(DifferenceState.UNRESOLVED)));
 					}
 				}
diff --git a/plugins/org.eclipse.emf.compare.uml2.rcp/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.rcp/META-INF/MANIFEST.MF
index cb848ff..3ac18f2 100644
--- a/plugins/org.eclipse.emf.compare.uml2.rcp/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.rcp/META-INF/MANIFEST.MF
@@ -11,6 +11,6 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)"
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)"
 Export-Package: org.eclipse.emf.compare.uml2.rcp.internal.policy;x-friends:="org.eclipse.emf.compare.uml2.ide"
diff --git a/plugins/org.eclipse.emf.compare.uml2.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2.tests/META-INF/MANIFEST.MF
index 85f6939..ddee781 100644
--- a/plugins/org.eclipse.emf.compare.uml2.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2.tests/META-INF/MANIFEST.MF
@@ -32,7 +32,7 @@
  org.eclipse.emf.compare.ide;bundle-version="3.3.0",
  org.eclipse.papyrus.sysml;bundle-version="[1.0.2,2.0.0)"
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
  org.eclipse.emf.compare.rcp
 Bundle-Activator: org.eclipse.emf.compare.uml2.profile.test.uml2comparetestprofile.provider.UML2CompareTestProfileEditPlugin$Implementation
diff --git a/plugins/org.eclipse.emf.compare.uml2/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.uml2/META-INF/MANIFEST.MF
index 2eb2b3e..f72d734 100644
--- a/plugins/org.eclipse.emf.compare.uml2/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare.uml2/META-INF/MANIFEST.MF
@@ -14,9 +14,9 @@
  org.eclipse.emf.compare;bundle-version="3.4.0";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.eclipse.emf.compare.uml2.internal.UMLComparePlugin
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.primitives;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.primitives;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="1.2.15"
 Export-Package: org.eclipse.emf.compare.uml2.internal;
   x-friends:="org.eclipse.emf.compare.uml2.edit,
diff --git a/plugins/org.eclipse.emf.compare/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare/META-INF/MANIFEST.MF
index 6afdfe3..3af758f 100644
--- a/plugins/org.eclipse.emf.compare/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.compare/META-INF/MANIFEST.MF
@@ -40,9 +40,9 @@
 Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.5.0"
 Bundle-ActivationPolicy: lazy
-Import-Package: com.google.common.base;version="[11.0.0,16.0.0)",
- com.google.common.cache;version="[11.0.0,16.0.0)",
- com.google.common.collect;version="[11.0.0,16.0.0)",
- com.google.common.eventbus;version="[11.0.0,16.0.0)",
- com.google.common.util.concurrent;version="[11.0.0,16.0.0)",
+Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
+ com.google.common.cache;version="[15.0.0,22.0.0)",
+ com.google.common.collect;version="[15.0.0,22.0.0)",
+ com.google.common.eventbus;version="[15.0.0,22.0.0)",
+ com.google.common.util.concurrent;version="[15.0.0,22.0.0)",
  org.apache.log4j;version="[1.2.15,2.0.0)"
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/AttributeChangeSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/AttributeChangeSpec.java
index 346c374..2b1af59 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/AttributeChangeSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/AttributeChangeSpec.java
@@ -10,8 +10,6 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.internal.spec;
 
-import com.google.common.base.Objects;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.BasicMonitor;
 import org.eclipse.emf.common.util.EList;
@@ -21,6 +19,7 @@
 import org.eclipse.emf.compare.Match;
 import org.eclipse.emf.compare.impl.AttributeChangeImpl;
 import org.eclipse.emf.compare.merge.IMerger;
+import org.eclipse.emf.compare.utils.Objects;
 import org.eclipse.emf.ecore.EDataType;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/FeatureMapChangeSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/FeatureMapChangeSpec.java
index 30abeda..29e57e3 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/FeatureMapChangeSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/FeatureMapChangeSpec.java
@@ -10,8 +10,6 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.internal.spec;
 
-import com.google.common.base.Objects;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.compare.ComparePackage;
@@ -19,6 +17,7 @@
 import org.eclipse.emf.compare.DifferenceState;
 import org.eclipse.emf.compare.Match;
 import org.eclipse.emf.compare.impl.FeatureMapChangeImpl;
+import org.eclipse.emf.compare.utils.Objects;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
index f4d5a07..b189c60 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/MatchSpec.java
@@ -14,7 +14,6 @@
 import static com.google.common.collect.Iterables.transform;
 
 import com.google.common.base.Function;
-import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
 
 import java.util.List;
@@ -24,6 +23,7 @@
 import org.eclipse.emf.compare.Match;
 import org.eclipse.emf.compare.impl.MatchImpl;
 import org.eclipse.emf.compare.internal.SubMatchIterable;
+import org.eclipse.emf.compare.utils.Objects;
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -98,8 +98,9 @@
 		// @formatter:off
 		return Objects.toStringHelper(this).add("left", EObjectUtil.getLabel(getLeft()))
 				.add("right", EObjectUtil.getLabel(getRight()))
-				.add("origin", EObjectUtil.getLabel(getOrigin())).add("#differences", getDifferences().size())
-				.add("#submatches", getSubmatches().size()).toString();
+				.add("origin", EObjectUtil.getLabel(getOrigin()))
+				.add("#differences", Integer.valueOf(getDifferences().size()))
+				.add("#submatches", Integer.valueOf(getSubmatches().size())).toString();
 		// @formatter:on
 	}
 }
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ReferenceChangeSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ReferenceChangeSpec.java
index 3d41a38..c56b39f 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ReferenceChangeSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ReferenceChangeSpec.java
@@ -10,8 +10,6 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.internal.spec;
 
-import com.google.common.base.Objects;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.BasicMonitor;
 import org.eclipse.emf.common.util.EList;
@@ -21,6 +19,7 @@
 import org.eclipse.emf.compare.Match;
 import org.eclipse.emf.compare.impl.ReferenceChangeImpl;
 import org.eclipse.emf.compare.merge.IMerger;
+import org.eclipse.emf.compare.utils.Objects;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 /**
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ResourceLocationChangeSpec.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ResourceLocationChangeSpec.java
index 125f7f3..bf9c8a6 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ResourceLocationChangeSpec.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/spec/ResourceLocationChangeSpec.java
@@ -10,11 +10,10 @@
  *******************************************************************************/
 package org.eclipse.emf.compare.internal.spec;
 
-import com.google.common.base.Objects;
-
 import org.eclipse.emf.compare.DifferenceState;
 import org.eclipse.emf.compare.Match;
 import org.eclipse.emf.compare.impl.ResourceLocationChangeImpl;
+import org.eclipse.emf.compare.utils.Objects;
 
 /**
  * This specialization of the {@link ResourceLocationChangeImpl} class allows us to define the derived
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/Objects.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/Objects.java
new file mode 100644
index 0000000..58e55cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/utils/Objects.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.utils;
+
+import com.google.common.base.Joiner;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * Utility method useable on any {@link Object}.
+ * <p>
+ * Mostly answers the same interfaces as Guava's "Objects", but re-implemented here to avoid deprecation
+ * issues.
+ * </p>
+ * 
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ * @since 3.5
+ */
+public final class Objects {
+	/** hides default constructor. */
+	private Objects() {
+		// prevents instantiation
+	}
+
+	/**
+	 * Creates a builder for the {@code toString()} of the given object.
+	 * 
+	 * @param object
+	 *            The object we'll need a string representation of.
+	 * @return A builder for the {@code toString()} of the given object.
+	 */
+	public static ToStringHelper toStringHelper(Object object) {
+		return new ToStringHelper(object);
+	}
+
+	/**
+	 * Fluent interface to build a String representation of an object following the same format as guava's
+	 * Objects.toStringHelper().
+	 * <p>
+	 * Resulting toString() will look like &lt;className>{attribute=value, attribute1=value1} according to the
+	 * number of attributes that have been {@link #add(String, String) added}.
+	 * </p>
+	 */
+	public static class ToStringHelper {
+		/** Target of this toString builder. */
+		private Object target;
+
+		/** attribute=>value mappings that we'll add to the string representation. */
+		private Map<String, String> values;
+
+		/**
+		 * Builds a toStringHelper for the given target object.
+		 * 
+		 * @param target
+		 *            Object for which we'll need a string representation.
+		 */
+		public ToStringHelper(Object target) {
+			this.target = target;
+			this.values = new LinkedHashMap<>();
+		}
+
+		/**
+		 * Adds the given key/value pair that needs to appear in the final string representation.
+		 * <p>
+		 * Key/value pairs will appear in the final representation in the same order they have been added
+		 * through here.
+		 * </p>
+		 * 
+		 * @param name
+		 *            Name of the pair.
+		 * @param value
+		 *            Value of the pair.
+		 * @return {@code this} instance.
+		 */
+		public ToStringHelper add(String name, Object value) {
+			if (value == null) {
+				values.put(name, "null");
+			} else {
+				values.put(name, value.toString());
+			}
+			return this;
+		}
+
+		@Override
+		public String toString() {
+			StringBuilder result = new StringBuilder();
+			result.append(target.getClass().getName());
+			result.append('{');
+			Joiner.on(',').withKeyValueSeparator("=").appendTo(result, values);
+			result.append('}');
+			return result.toString();
+		}
+	}
+}