// Path: src/main/java/uk/ac/ic/wlgitbridge/util/Log.java
// public class Log {
// 
//     private static Logger logger = LoggerFactory.getLogger(GitBridgeApp.class);
// 
//     public static void trace(String msg) {
//         logger.trace(msg);
//     }
// 
//     public static void trace(String msg, Throwable t) {
//         logger.trace(msg, t);
//     }
// 
//     public static void debug(String msg) {
//         logger.debug(msg);
//     }
// 
//     public static void debug(String msg, Throwable t) {
//         logger.debug(msg, t);
//     }
// 
//     public static void info(String msg) {
//         logger.info(msg);
//     }
// 
//     public static void info(String format, Object arg) {
//         logger.info(format, arg);
//     }
// 
//     public static void info(String format, Object arg1, Object arg2) {
//         logger.info(format, arg1, arg2);
//     }
// 
//     public static void info(String format, Object... args) {
//         logger.info(format, args);
//     }
// 
//     public static void info(String msg, Throwable t) {
//         logger.info(msg, t);
//     }
// 
//     public static void warn(String msg) {
//         logger.warn(msg);
//     }
// 
//     public static void warn(String msg, Object arg) {
//         logger.warn(msg, arg);
//     }
// 
//     public static void warn(String msg, Object arg1, Object arg2) {
//         logger.warn(msg, arg1, arg2);
//     }
// 
//     public static void warn(String msg, Object... args) {
//         logger.warn(msg, args);
//     }
// 
//     public static void warn(String msg, Throwable t) {
//         logger.warn(msg, t);
//     }
// 
//     public static void error(String msg) {
//         logger.error(msg);
//     }
// 
//     public static void error(String msg, Object... args) {
//         logger.error(msg, args);
//     }
// 
//     public static void error(String msg, Throwable t) {
//         logger.error(msg, t);
//     }
// 
// }


import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.ning.http.client.AsyncHttpClient;
import uk.ac.ic.wlgitbridge.util.Log;
import java.io.IOException;
import java.io.Reader;
import java.util.concurrent.ExecutionException;
package uk.ac.ic.wlgitbridge.snapshot.servermock.server;



/**
 * Created by Winston on 10/01/15.
 */
public class PostbackThread extends Thread {

    private String url;
    private String postback;

    public PostbackThread(Reader reader, String postback) {
        if (postback != null) {
            url = new Gson().fromJson(
                    reader,
                    JsonObject.class
            ).get("postbackUrl").getAsString();
            this.postback = postback;
        }
    }

    @Override
    public void run() {
        try {
            new AsyncHttpClient().preparePost(
                    url
            ).setBody(postback).execute().get().getResponseBody();
        } catch (IOException e) {
            Log.warn(
                    "IOException on postback, url: " +
                            url +
                            ", postback: " +
                            postback,
                    e
            );
        } catch (InterruptedException e) {
// Path: src/main/java/uk/ac/ic/wlgitbridge/util/Log.java
// public class Log {
// 
//     private static Logger logger = LoggerFactory.getLogger(GitBridgeApp.class);
// 
//     public static void trace(String msg) {
//         logger.trace(msg);
//     }
// 
//     public static void trace(String msg, Throwable t) {
//         logger.trace(msg, t);
//     }
// 
//     public static void debug(String msg) {
//         logger.debug(msg);
//     }
// 
//     public static void debug(String msg, Throwable t) {
//         logger.debug(msg, t);
//     }
// 
//     public static void info(String msg) {
//         logger.info(msg);
//     }
// 
//     public static void info(String format, Object arg) {
//         logger.info(format, arg);
//     }
// 
//     public static void info(String format, Object arg1, Object arg2) {
//         logger.info(format, arg1, arg2);
//     }
// 
//     public static void info(String format, Object... args) {
//         logger.info(format, args);
//     }
// 
//     public static void info(String msg, Throwable t) {
//         logger.info(msg, t);
//     }
// 
//     public static void warn(String msg) {
//         logger.warn(msg);
//     }
// 
//     public static void warn(String msg, Object arg) {
//         logger.warn(msg, arg);
//     }
// 
//     public static void warn(String msg, Object arg1, Object arg2) {
//         logger.warn(msg, arg1, arg2);
//     }
// 
//     public static void warn(String msg, Object... args) {
//         logger.warn(msg, args);
//     }
// 
//     public static void warn(String msg, Throwable t) {
//         logger.warn(msg, t);
//     }
// 
//     public static void error(String msg) {
//         logger.error(msg);
//     }
// 
//     public static void error(String msg, Object... args) {
//         logger.error(msg, args);
//     }
// 
//     public static void error(String msg, Throwable t) {
//         logger.error(msg, t);
//     }
// 
// }


// Path: src/main/java/uk/ac/ic/wlgitbridge/snapshot/servermock/server/PostbackThread.java
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.ning.http.client.AsyncHttpClient;
import uk.ac.ic.wlgitbridge.util.Log;
import java.io.IOException;
import java.io.Reader;
import java.util.concurrent.ExecutionException;

package uk.ac.ic.wlgitbridge.snapshot.servermock.server;



/**
 * Created by Winston on 10/01/15.
 */
public class PostbackThread extends Thread {

    private String url;
    private String postback;

    public PostbackThread(Reader reader, String postback) {
        if (postback != null) {
            url = new Gson().fromJson(
                    reader,
                    JsonObject.class
            ).get("postbackUrl").getAsString();
            this.postback = postback;
        }
    }

    @Override
    public void run() {
        try {
            new AsyncHttpClient().preparePost(
                    url
            ).setBody(postback).execute().get().getResponseBody();
        } catch (IOException e) {
            Log.warn(
                    "IOException on postback, url: " +
                            url +
                            ", postback: " +
                            postback,
                    e
            );
        } catch (InterruptedException e) {
            Log.warn(