Fix a typo in BeforeClass
Update Surefire plugin from 2.16 to 2.17.

Keep the plugin up-to-date.

Plugin changes: http://jira.codehaus.org/browse/SUREFIRE/fixforversion/19536
Small fixes, mainly in throws signatures
fixes #177

null check for test class in ErrorReportingRunner
fixes #875

Fixes https://github.com/junit-team/junit/issues/875

In versions 4.7 through 4.11 setting up a Timeout @Rule with a value of
0 would result in no timeout. In 4.12 FailOnTimeout switched to using
FutureTask.get(timeout). That method treats non-positive timeouts to
mean "timeout right now".

This fix checks that the timeout value is positive before using it,
and otherwise will wait indefinitely.
Move TestClassTest to package org.junit.runners.model.

It is common to add tests to the same package as the class under test.
Create a class TestWithParameters.

This class keeps the data together that are needed for creating a runner for a single data set of a parameterized test. This makes it also clear, that the computation of the name is not the responsibility of the runner but of the Parameterized class.
Extract BlockJUnit4ClassRunnerWithParameters.

Separate the class from the Parameterized runner. Makes it clear, that it is designed for reuse.
Use a ParametersRunnerFactory for creating the test for a set of parameters.

There's now an explicit component for creating the runner of a single set of parameters. IMHO this is a better extension point than overriding a method.

The factory can be specified by the @UseParametersRunnerFactory
annotation or you can subclass the Parameterized class and provide
the factory to its constructor.
Add the default 'Implementation-*' headers to the manifest

Added headers are:
Implementation-Title:     ${project.name}
Implementation-Version:   ${project.version}
Implementation-Vendor-Id: ${project.groupId}
Implementation-Vendor:    ${project.organization.name}

Related to #878

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
Extending and Modifying sorting feature of JUnit4.

Adding SortWith Annotation to JUnit4 such that test methods defined in a
test class or test classes defined in a test suite can be executed in a
predefined order.

There are four sorting methods available currently for choosing. They are
default, jvm, name ascending and random. First three methods works exactly
as same as their ancestors defined in MethodSorter class. Random sorting
method is added due to the request of adding randomness to tests
execution. A test class annotated with random sorting method executes its
test methods in a random order. A test suites annotated with random
sorting method executes its test classes in a random order.

User still could specify sorting method manually by designating a sorting
request. Also the manually specified sorting method will override all
declarative sorting method defined previously.

Currently I disabled MethodSorter class temporarily because I think if
this patch was accepted, it would no longer be useful.

BTW this is my first attempt to be part of an open source project hence I
might omit something important. Please spare me in advance if I did
something wrong.
Merge branch 'master' of https://github.com/fshepherd/junit