diff --git a/src/main/java/org/junit/Assume.java b/src/main/java/org/junit/Assume.java
index 73f8b5a2af10e..a1e4f5884b4a2 100644
--- a/src/main/java/org/junit/Assume.java
+++ b/src/main/java/org/junit/Assume.java
@@ -7,7 +7,6 @@
import static org.hamcrest.CoreMatchers.nullValue;
import org.hamcrest.Matcher;
-import org.junit.internal.AssumptionViolatedException;
/**
* A set of methods useful for stating assumptions about the conditions in which a test is meaningful.
diff --git a/src/main/java/org/junit/AssumptionViolatedException.java b/src/main/java/org/junit/AssumptionViolatedException.java
new file mode 100644
index 0000000000000..fc4e91e21b3aa
--- /dev/null
+++ b/src/main/java/org/junit/AssumptionViolatedException.java
@@ -0,0 +1,48 @@
+package org.junit;
+
+import org.hamcrest.Matcher;
+
+/**
+ * An exception class used to implement assumptions (state in which a given test
+ * is meaningful and should or should not be executed). A test for which an assumption
+ * fails should not generate a test case failure.
+ *
+ * @see org.junit.Assume
+ */
+public class AssumptionViolatedException extends org.junit.internal.AssumptionViolatedException {
+ private static final long serialVersionUID = 1L;
+
+ public AssumptionViolatedException(String assumption, boolean valueMatcher, Object value, Matcher> matcher) {
+ super(assumption, valueMatcher, value, matcher);
+ }
+
+ /**
+ * An assumption exception with the given value (String or
+ * Throwable) and an additional failing {@link Matcher}.
+ */
+ public AssumptionViolatedException(Object value, Matcher> matcher) {
+ super(value, matcher);
+ }
+
+ /**
+ * An assumption exception with the given value (String or
+ * Throwable) and an additional failing {@link Matcher}.
+ */
+ public AssumptionViolatedException(String assumption, Object value, Matcher> matcher) {
+ super(assumption, value, matcher);
+ }
+
+ /**
+ * An assumption exception with the given message only.
+ */
+ public AssumptionViolatedException(String assumption) {
+ super(assumption);
+ }
+
+ /**
+ * An assumption exception with the given message and a cause.
+ */
+ public AssumptionViolatedException(String assumption, Throwable t) {
+ super(assumption, t);
+ }
+}
diff --git a/src/main/java/org/junit/experimental/theories/Theories.java b/src/main/java/org/junit/experimental/theories/Theories.java
index 29a86d893e5eb..f2663a07fa3c3 100644
--- a/src/main/java/org/junit/experimental/theories/Theories.java
+++ b/src/main/java/org/junit/experimental/theories/Theories.java
@@ -10,9 +10,9 @@
import org.junit.Assert;
import org.junit.Assume;
+import org.junit.AssumptionViolatedException;
import org.junit.experimental.theories.internal.Assignments;
import org.junit.experimental.theories.internal.ParameterizedAssertionError;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
diff --git a/src/main/java/org/junit/internal/AssumptionViolatedException.java b/src/main/java/org/junit/internal/AssumptionViolatedException.java
index 8196cd1d7bb5b..66ffbdfa94caf 100644
--- a/src/main/java/org/junit/internal/AssumptionViolatedException.java
+++ b/src/main/java/org/junit/internal/AssumptionViolatedException.java
@@ -10,8 +10,11 @@
* is meaningful and should or should not be executed). A test for which an assumption
* fails should not generate a test case failure.
*
- * @see Assume
+ * @see org.junit.Assume
+ *
+ * @deprecated Please use {@link org.junit.AssumptionViolatedException} instead.
*/
+@Deprecated
public class AssumptionViolatedException extends RuntimeException implements SelfDescribing {
private static final long serialVersionUID = 2L;
diff --git a/src/main/java/org/junit/internal/runners/ClassRoadie.java b/src/main/java/org/junit/internal/runners/ClassRoadie.java
index 0e2694a26ab1b..9078b58a0fad5 100644
--- a/src/main/java/org/junit/internal/runners/ClassRoadie.java
+++ b/src/main/java/org/junit/internal/runners/ClassRoadie.java
@@ -59,7 +59,7 @@ private void runBefores() throws FailedBefore {
} catch (InvocationTargetException e) {
throw e.getTargetException();
}
- } catch (org.junit.internal.AssumptionViolatedException e) {
+ } catch (org.junit.AssumptionViolatedException e) {
throw new FailedBefore();
} catch (Throwable e) {
addFailure(e);
diff --git a/src/main/java/org/junit/internal/runners/MethodRoadie.java b/src/main/java/org/junit/internal/runners/MethodRoadie.java
index d1c1e48436c45..2488f433cf046 100644
--- a/src/main/java/org/junit/internal/runners/MethodRoadie.java
+++ b/src/main/java/org/junit/internal/runners/MethodRoadie.java
@@ -10,7 +10,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
diff --git a/src/main/java/org/junit/internal/runners/model/EachTestNotifier.java b/src/main/java/org/junit/internal/runners/model/EachTestNotifier.java
index cb31c19e47292..a465c3f4ac558 100644
--- a/src/main/java/org/junit/internal/runners/model/EachTestNotifier.java
+++ b/src/main/java/org/junit/internal/runners/model/EachTestNotifier.java
@@ -1,6 +1,6 @@
package org.junit.internal.runners.model;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
diff --git a/src/main/java/org/junit/internal/runners/statements/ExpectException.java b/src/main/java/org/junit/internal/runners/statements/ExpectException.java
index b4b7172a67b90..e86623002d035 100644
--- a/src/main/java/org/junit/internal/runners/statements/ExpectException.java
+++ b/src/main/java/org/junit/internal/runners/statements/ExpectException.java
@@ -1,6 +1,6 @@
package org.junit.internal.runners.statements;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runners.model.Statement;
public class ExpectException extends Statement {
diff --git a/src/main/java/org/junit/rules/ExpectedException.java b/src/main/java/org/junit/rules/ExpectedException.java
index a1435a0998f74..1303fa9e9b871 100644
--- a/src/main/java/org/junit/rules/ExpectedException.java
+++ b/src/main/java/org/junit/rules/ExpectedException.java
@@ -9,7 +9,7 @@
import static org.junit.internal.matchers.ThrowableMessageMatcher.hasMessage;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runners.model.Statement;
/**
diff --git a/src/main/java/org/junit/rules/Stopwatch.java b/src/main/java/org/junit/rules/Stopwatch.java
index 2434071cb77f1..0c38e92ca9f90 100644
--- a/src/main/java/org/junit/rules/Stopwatch.java
+++ b/src/main/java/org/junit/rules/Stopwatch.java
@@ -1,6 +1,6 @@
package org.junit.rules;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/org/junit/rules/TestWatcher.java b/src/main/java/org/junit/rules/TestWatcher.java
index 46f728061306e..d8cdb38ab24b6 100644
--- a/src/main/java/org/junit/rules/TestWatcher.java
+++ b/src/main/java/org/junit/rules/TestWatcher.java
@@ -3,7 +3,7 @@
import java.util.ArrayList;
import java.util.List;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runners.model.MultipleFailureException;
import org.junit.runners.model.Statement;
diff --git a/src/main/java/org/junit/rules/TestWatchman.java b/src/main/java/org/junit/rules/TestWatchman.java
index 57b8394732af4..53aa0e3f48de3 100644
--- a/src/main/java/org/junit/rules/TestWatchman.java
+++ b/src/main/java/org/junit/rules/TestWatchman.java
@@ -1,6 +1,6 @@
package org.junit.rules;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.Statement;
diff --git a/src/main/java/org/junit/runner/notification/RunListener.java b/src/main/java/org/junit/runner/notification/RunListener.java
index 0212409d94cd9..8b08a8030e45c 100644
--- a/src/main/java/org/junit/runner/notification/RunListener.java
+++ b/src/main/java/org/junit/runner/notification/RunListener.java
@@ -6,7 +6,7 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.Result;
diff --git a/src/main/java/org/junit/runner/notification/RunNotifier.java b/src/main/java/org/junit/runner/notification/RunNotifier.java
index 1cdeea81b3c91..d163affb239cc 100644
--- a/src/main/java/org/junit/runner/notification/RunNotifier.java
+++ b/src/main/java/org/junit/runner/notification/RunNotifier.java
@@ -6,7 +6,7 @@
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
import org.junit.runner.Description;
import org.junit.runner.Result;
diff --git a/src/main/java/org/junit/runners/ParentRunner.java b/src/main/java/org/junit/runners/ParentRunner.java
index 8d9bf8ac79394..8c2a4f0346ab2 100755
--- a/src/main/java/org/junit/runners/ParentRunner.java
+++ b/src/main/java/org/junit/runners/ParentRunner.java
@@ -13,11 +13,11 @@
import java.util.List;
import org.junit.AfterClass;
+import org.junit.AssumptionViolatedException;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Rule;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.internal.runners.model.EachTestNotifier;
import org.junit.internal.runners.statements.RunAfters;
import org.junit.internal.runners.statements.RunBefores;
diff --git a/src/test/java/org/junit/tests/experimental/AssumptionTest.java b/src/test/java/org/junit/tests/experimental/AssumptionTest.java
index 6b65cd42b4306..952cd31977d1b 100644
--- a/src/test/java/org/junit/tests/experimental/AssumptionTest.java
+++ b/src/test/java/org/junit/tests/experimental/AssumptionTest.java
@@ -18,10 +18,10 @@
import java.util.List;
import org.junit.Assume;
+import org.junit.AssumptionViolatedException;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
diff --git a/src/test/java/org/junit/tests/experimental/AssumptionViolatedExceptionTest.java b/src/test/java/org/junit/tests/experimental/AssumptionViolatedExceptionTest.java
index 892226f2dbcc8..96d0699e0f9e5 100644
--- a/src/test/java/org/junit/tests/experimental/AssumptionViolatedExceptionTest.java
+++ b/src/test/java/org/junit/tests/experimental/AssumptionViolatedExceptionTest.java
@@ -8,11 +8,11 @@
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
+import org.junit.AssumptionViolatedException;
import org.junit.Test;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.runner.RunWith;
@RunWith(Theories.class)
diff --git a/src/test/java/org/junit/tests/experimental/rules/StopwatchTest.java b/src/test/java/org/junit/tests/experimental/rules/StopwatchTest.java
index 35630e2b46040..d03014406bc62 100644
--- a/src/test/java/org/junit/tests/experimental/rules/StopwatchTest.java
+++ b/src/test/java/org/junit/tests/experimental/rules/StopwatchTest.java
@@ -1,9 +1,9 @@
package org.junit.tests.experimental.rules;
+import org.junit.AssumptionViolatedException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.rules.Stopwatch;
import org.junit.runner.Description;
import org.junit.runner.JUnitCore;
diff --git a/src/test/java/org/junit/tests/experimental/rules/TestRuleTest.java b/src/test/java/org/junit/tests/experimental/rules/TestRuleTest.java
index b7546336f7bc4..97db9fe535d17 100644
--- a/src/test/java/org/junit/tests/experimental/rules/TestRuleTest.java
+++ b/src/test/java/org/junit/tests/experimental/rules/TestRuleTest.java
@@ -15,10 +15,10 @@
import org.junit.After;
import org.junit.Assume;
+import org.junit.AssumptionViolatedException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.rules.TestName;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
diff --git a/src/test/java/org/junit/tests/experimental/rules/TestWatcherTest.java b/src/test/java/org/junit/tests/experimental/rules/TestWatcherTest.java
index 7b28147c60818..47beff186f21e 100644
--- a/src/test/java/org/junit/tests/experimental/rules/TestWatcherTest.java
+++ b/src/test/java/org/junit/tests/experimental/rules/TestWatcherTest.java
@@ -9,10 +9,10 @@
import static org.junit.experimental.results.ResultMatchers.hasFailureContaining;
import static org.junit.runner.JUnitCore.runClasses;
+import org.junit.AssumptionViolatedException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.results.PrintableResult;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
diff --git a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/Guesser.java b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/Guesser.java
index e57a3b3206166..feed0c561b064 100644
--- a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/Guesser.java
+++ b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/Guesser.java
@@ -11,7 +11,7 @@
import org.hamcrest.BaseDescription;
import org.hamcrest.Description;
-import org.junit.internal.AssumptionViolatedException;
+import org.junit.AssumptionViolatedException;
public class Guesser extends ReguessableValue {
static class GuessMap extends HashMap implements
diff --git a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/GuesserQueue.java b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/GuesserQueue.java
index 272263133ddbd..03b37a96cb435 100644
--- a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/GuesserQueue.java
+++ b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/GuesserQueue.java
@@ -4,8 +4,8 @@
import java.util.Collections;
import java.util.List;
+import org.junit.AssumptionViolatedException;
import org.junit.experimental.theories.PotentialAssignment;
-import org.junit.internal.AssumptionViolatedException;
public class GuesserQueue extends ArrayList {
static class ReguessableDecorator extends ReguessableValue {
diff --git a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/ReguessableValue.java b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/ReguessableValue.java
index 6c1fe75739f67..d0490fd6ee8c0 100644
--- a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/ReguessableValue.java
+++ b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/ReguessableValue.java
@@ -2,8 +2,8 @@
import java.util.List;
+import org.junit.AssumptionViolatedException;
import org.junit.experimental.theories.PotentialAssignment;
-import org.junit.internal.AssumptionViolatedException;
public abstract class ReguessableValue extends PotentialAssignment {
diff --git a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/StubbedTheories.java b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/StubbedTheories.java
index 1b68da858c5af..754e20137a47b 100644
--- a/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/StubbedTheories.java
+++ b/src/test/java/org/junit/tests/experimental/theories/extendingwithstubs/StubbedTheories.java
@@ -4,10 +4,10 @@
import java.util.ArrayList;
import java.util.List;
+import org.junit.AssumptionViolatedException;
import org.junit.experimental.theories.ParameterSignature;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.internal.Assignments;
-import org.junit.internal.AssumptionViolatedException;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.Statement;