// Path: westty-api/src/main/java/org/deephacks/westty/Westty.java
// public class Westty {
//     private static final String WESTTY_CORE = "org.deephacks.westty.internal.core.WesttyCore";
//     private static Object WESTTY;
//     private String serverName;
//     public static void main(String[] args) throws Throwable {
//         Westty westty = new Westty();
//         westty.startup();
//     }
//     public Westty() {
//         if (WESTTY == null) {
//             ClassLoader cl = Thread.currentThread().getContextClassLoader();
//             try {
//                 WESTTY = cl.loadClass(WESTTY_CORE).newInstance();
//             } catch (Exception e) {
//                 throw new RuntimeException(e);
//             }
//         }
//     }
// 
//     public Westty(String serverName){
//         this();
//         this.serverName = serverName;
//     }
// 
//     public synchronized void startup() throws Throwable {
//         if(serverName != null){
//             call("setServerName", serverName);
//         }
//         call("startup");
//     }
// 
//     public synchronized void shutdown() throws Throwable {
//         call("shutdown");
//     }
// 
//     public synchronized <V> V getInstance(Class<V> cls) throws Throwable {
//         return (V) call("getInstance", cls);
//     }
// 
//     public synchronized void stop() throws Throwable {
//         call("shutdown");
//     }
// 
//     private Object call(String method, Object... args) throws Throwable {
//         try {
//             Class<?> cls = WESTTY.getClass();
//             if (args == null || args.length == 0) {
//                 return cls.getMethod(method).invoke(WESTTY);
//             } else {
//                 Class<?>[] classes = new Class<?>[args.length];
//                 for (int i = 0; i < args.length; i++) {
//                     classes[i] = args[i].getClass();
//                 }
//                 Method m = cls.getMethod(method, classes);
//                 return m.invoke(WESTTY, args);
//             }
//         } catch (InvocationTargetException e) {
//             Throwable t = e.getTargetException();
//             if (t instanceof ExceptionInInitializerError) {
//                 ExceptionInInitializerError err = (ExceptionInInitializerError) t;
//                 throw err.getCause();
//             }
//             throw t;
// 
//         } catch (Exception e) {
//             throw new RuntimeException(e);
//         }
//     }
// }


import org.deephacks.westty.Westty;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
package org.deephacks.westty.test;



public class WesttyJUnit4Runner extends BlockJUnit4ClassRunner {

    private final Class<?> cls;
// Path: westty-api/src/main/java/org/deephacks/westty/Westty.java
// public class Westty {
//     private static final String WESTTY_CORE = "org.deephacks.westty.internal.core.WesttyCore";
//     private static Object WESTTY;
//     private String serverName;
//     public static void main(String[] args) throws Throwable {
//         Westty westty = new Westty();
//         westty.startup();
//     }
//     public Westty() {
//         if (WESTTY == null) {
//             ClassLoader cl = Thread.currentThread().getContextClassLoader();
//             try {
//                 WESTTY = cl.loadClass(WESTTY_CORE).newInstance();
//             } catch (Exception e) {
//                 throw new RuntimeException(e);
//             }
//         }
//     }
// 
//     public Westty(String serverName){
//         this();
//         this.serverName = serverName;
//     }
// 
//     public synchronized void startup() throws Throwable {
//         if(serverName != null){
//             call("setServerName", serverName);
//         }
//         call("startup");
//     }
// 
//     public synchronized void shutdown() throws Throwable {
//         call("shutdown");
//     }
// 
//     public synchronized <V> V getInstance(Class<V> cls) throws Throwable {
//         return (V) call("getInstance", cls);
//     }
// 
//     public synchronized void stop() throws Throwable {
//         call("shutdown");
//     }
// 
//     private Object call(String method, Object... args) throws Throwable {
//         try {
//             Class<?> cls = WESTTY.getClass();
//             if (args == null || args.length == 0) {
//                 return cls.getMethod(method).invoke(WESTTY);
//             } else {
//                 Class<?>[] classes = new Class<?>[args.length];
//                 for (int i = 0; i < args.length; i++) {
//                     classes[i] = args[i].getClass();
//                 }
//                 Method m = cls.getMethod(method, classes);
//                 return m.invoke(WESTTY, args);
//             }
//         } catch (InvocationTargetException e) {
//             Throwable t = e.getTargetException();
//             if (t instanceof ExceptionInInitializerError) {
//                 ExceptionInInitializerError err = (ExceptionInInitializerError) t;
//                 throw err.getCause();
//             }
//             throw t;
// 
//         } catch (Exception e) {
//             throw new RuntimeException(e);
//         }
//     }
// }


// Path: westty-core/src/test/java/org/deephacks/westty/test/WesttyJUnit4Runner.java
import org.deephacks.westty.Westty;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

package org.deephacks.westty.test;



public class WesttyJUnit4Runner extends BlockJUnit4ClassRunner {

    private final Class<?> cls;
    private Westty westty;