Merge changes from topic 'upgrade-mockito-2.7.13' am: 55c52fc184
am: 9a76153826

Change-Id: I32c32b34cdbd26aaf651cefebaccc7b28be34740
diff --git a/README.version b/README.version
index 23dbea4..a010c10 100644
--- a/README.version
+++ b/README.version
@@ -9,4 +9,4 @@
 The source can be updated using the update_source.sh script.
 
 Local Modifications:
-        None
+        Add compatibility classes to aid in upgrade from 1.10.19
diff --git a/src/main/java/org/mockito/compat/ArgumentMatcher.java b/src/main/java/org/mockito/compat/ArgumentMatcher.java
new file mode 100644
index 0000000..a1d26fa
--- /dev/null
+++ b/src/main/java/org/mockito/compat/ArgumentMatcher.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.mockito.compat;
+
+import org.hamcrest.Description;
+import org.mockito.internal.util.Decamelizer;
+
+/**
+ * Base class for code that has to compile against Mockito 1.x and Mockito 2.x.
+ */
+public abstract class ArgumentMatcher<T> implements org.mockito.ArgumentMatcher<T> {
+
+    @Override
+    public boolean matches(T argument) {
+        return matchesObject(argument);
+    }
+
+    public abstract boolean matchesObject(Object o);
+
+    public final void describeTo(Description description) {
+      description.appendText(toString());
+    }
+
+    @Override
+    public String toString() {
+        String className = getClass().getSimpleName();
+        return Decamelizer.decamelizeMatcher(className);
+    }
+}
diff --git a/src/main/java/org/mockito/compat/CapturingMatcher.java b/src/main/java/org/mockito/compat/CapturingMatcher.java
new file mode 100644
index 0000000..782eff6
--- /dev/null
+++ b/src/main/java/org/mockito/compat/CapturingMatcher.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.mockito.compat;
+
+import org.hamcrest.Description;
+import org.mockito.internal.util.Decamelizer;
+
+/**
+ * Base class for code that has to compile against Mockito 1.x and Mockito 2.x.
+ */
+public abstract class CapturingMatcher<T> extends org.mockito.internal.matchers.CapturingMatcher<T> {
+
+    @Override
+    public boolean matches(Object argument) {
+        return matchesObject(argument);
+    }
+
+    public abstract boolean matchesObject(Object o);
+
+    public final void describeTo(Description description) {
+        description.appendText(toString());
+    }
+
+    @Override
+    public String toString() {
+        String className = getClass().getSimpleName();
+        return Decamelizer.decamelizeMatcher(className);
+    }
+}