Annotation List
public interface AnnotationList{
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Order {
int value();
}
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTest {
static class None extends Throwable {
    private static final long serialVersionUID = 1L;
    private None() {
   }}
JUNITLink class 
public class JunitLink extends BlockJUnit4ClassRunner {
public JunitLink(Class<?> klass) throws InitializationError {
    super(klass);
}
@Override
protected List<FrameworkMethod> computeTestMethods() {
List<FrameworkMethod> classMethods = getTestClass().getAnnotatedMethods(AnnotationList.MyTest.class);
SortedMap<Integer, FrameworkMethod> sortedTestMethodList = new TreeMap<Integer, FrameworkMethod>();
    for (FrameworkMethod seleniumTest : classMethods) {
        if (seleniumTest.getAnnotation(AnnotationList.Order.class) != null)          {   
        sortedTestMethodList.put(seleniumTest.getAnnotation(AnnotationList.Order.class).value(),seleniumTest);
        }
    }
    return new ArrayList<FrameworkMethod>(sortedTestMethodList.values());
}
@Override
protected void runChild(FrameworkMethod method, RunNotifier notifier) {
    EachTestNotifier eachNotifier = makeNotifier(method, notifier);
if (method.getAnnotation(Ignore.class) != null) {
        runIgnored(eachNotifier);
    } else {
        runNotIgnored(method, eachNotifier);
}
}
private int runNotIgnored(FrameworkMethod method,EachTestNotifier eachNotifier) {
    int failures = 0;
    eachNotifier.fireTestStarted();
try {
        methodBlock(method).evaluate();
} 
catch (AssumptionViolatedException e) {
        eachNotifier.addFailedAssumption(e);
        failures++;
} 
    catch (Throwable e) {
        eachNotifier.addFailure(e);
        failures++;
} finally {
        eachNotifier.fireTestFinished();
    }
    return failures;
}
    private void runIgnored(EachTestNotifier eachNotifier) {
    eachNotifier.fireTestIgnored();
}
    private EachTestNotifier makeNotifier(FrameworkMethod method,RunNotifier notifier) {
    Description description = describeChild(method);
return new EachTestNotifier(notifier, description);
}
}
StartUp Tests
@RunWith(JunitLink.class)
public class StartUp extends SeleneseTestBase {
  public static WebDriver driver;
@Override
@Before
public void setUp()
{
}
@Override
@After
public void tearDown() {
}
TestCases This should extend StartUp class created above
public class Testcase extends StartUp{
public SmokeTest() throws Exception {
}
@Test
@Order(1)
// Wrire test method
}
@Test
@Order(2)
// Test Case 2
}
@Test
@Order(3)
//Test case 3
}