Integrate slf4j simple logger and change some messages. Declare some exceptions in tests

This commit is contained in:
Winston Li
2016-03-11 09:46:03 +00:00
parent 0669f53fcb
commit 559b32a22f
7 changed files with 140 additions and 42 deletions
+10 -5
View File
@@ -88,11 +88,6 @@
<artifactId>sqlite-jdbc</artifactId>
<version>3.8.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.9</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
@@ -118,6 +113,16 @@
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-netty</artifactId>
@@ -1,11 +1,11 @@
package uk.ac.ic.wlgitbridge.application;
import uk.ac.ic.wlgitbridge.application.config.Config;
import uk.ac.ic.wlgitbridge.application.exception.ConfigFileException;
import uk.ac.ic.wlgitbridge.application.exception.ArgsException;
import uk.ac.ic.wlgitbridge.application.exception.ConfigFileException;
import uk.ac.ic.wlgitbridge.git.exception.InvalidRootDirectoryPathException;
import uk.ac.ic.wlgitbridge.server.GitBridgeServer;
import uk.ac.ic.wlgitbridge.util.Util;
import uk.ac.ic.wlgitbridge.util.Log;
import javax.servlet.ServletException;
import java.io.IOException;
@@ -15,12 +15,14 @@ import java.io.IOException;
*/
/**
* Class that represents the application. Parses arguments and gives them to the server, or dies with a usage message.
* Class that represents the application. Parses arguments and gives them to the
* server, or dies with a usage message.
*/
public class GitBridgeApp implements Runnable {
public static final int EXIT_CODE_FAILED = 1;
private static final String USAGE_MESSAGE = "usage: writelatex-git-bridge config_file";
private static final String USAGE_MESSAGE =
"usage: writelatex-git-bridge config_file";
private String configFilePath;
private Config config;
@@ -34,28 +36,39 @@ public class GitBridgeApp implements Runnable {
try {
parseArguments(args);
loadConfigFile();
Log.info("Config file loaded");
} catch (ArgsException e) {
printUsage();
System.exit(EXIT_CODE_FAILED);
} catch (ConfigFileException e) {
System.err.println("The property for " + e.getMissingMember() + " is invalid. Check your config file.");
Log.error(
"The property for " +
e.getMissingMember() +
" is invalid. Check your config file."
);
System.exit(EXIT_CODE_FAILED);
} catch (IOException e) {
System.err.println("Invalid config file. Check the file path.");
Log.error("Invalid config file. Check the file path.");
System.exit(EXIT_CODE_FAILED);
}
try {
server = new GitBridgeServer(config);
} catch (ServletException e) {
Util.printStackTrace(e);
Log.error(
"Servlet exception when instantiating GitBridgeServer",
e
);
} catch (InvalidRootDirectoryPathException e) {
System.out.println("Invalid root git directory path. Check your config file.");
Log.error(
"Invalid root git directory path. Check your config file."
);
System.exit(EXIT_CODE_FAILED);
}
}
/**
* Starts the server with the port number and root directory path given in the command-line arguments.
* Starts the server with the port number and root directory path given in
* the command-line arguments.
*/
@Override
public void run() {
@@ -88,7 +101,7 @@ public class GitBridgeApp implements Runnable {
}
private void printUsage() {
System.out.println(USAGE_MESSAGE);
System.err.println(USAGE_MESSAGE);
}
}
@@ -1,6 +1,6 @@
package uk.ac.ic.wlgitbridge.data;
import uk.ac.ic.wlgitbridge.util.Util;
import uk.ac.ic.wlgitbridge.util.Log;
/**
* Created by Winston on 21/02/15.
@@ -16,16 +16,15 @@ public class ShutdownHook extends Thread implements LockAllWaiter {
@Override
public void run() {
Util.sout("Shutdown received.");
Log.info("Shutdown received.");
projectLock.lockAll();
Util.sout("No projects to wait for.");
Util.sout("Bye");
Util.sout();
Log.info("No projects to wait for.");
Log.info("Bye");
}
@Override
public void threadsRemaining(int threads) {
Util.sout("Waiting for " + threads + " projects...");
Log.info("Waiting for " + threads + " projects...");
}
}
@@ -7,13 +7,13 @@ import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.log.Log;
import uk.ac.ic.wlgitbridge.application.config.Config;
import uk.ac.ic.wlgitbridge.application.jetty.NullLogger;
import uk.ac.ic.wlgitbridge.bridge.BridgeAPI;
import uk.ac.ic.wlgitbridge.git.exception.InvalidRootDirectoryPathException;
import uk.ac.ic.wlgitbridge.git.servlet.WLGitServlet;
import uk.ac.ic.wlgitbridge.snapshot.base.SnapshotAPIRequest;
import uk.ac.ic.wlgitbridge.util.Log;
import uk.ac.ic.wlgitbridge.util.Util;
import javax.servlet.DispatcherType;
@@ -41,7 +41,7 @@ public class GitBridgeServer {
private String apiBaseURL;
public GitBridgeServer(Config config) throws ServletException, InvalidRootDirectoryPathException {
Log.setLog(new NullLogger());
org.eclipse.jetty.util.log.Log.setLog(new NullLogger());
this.port = config.getPort();
this.rootGitDirectoryPath = config.getRootGitDirectory();
bridgeAPI = new BridgeAPI(rootGitDirectoryPath);
@@ -61,15 +61,15 @@ public class GitBridgeServer {
public void start() {
try {
jettyServer.start();
Util.sout(Util.getServiceName() + "-Git Bridge server started");
Util.sout("Listening on port: " + port);
Util.sout("Bridged to: " + apiBaseURL);
Util.sout("Postback base URL: " + Util.getPostbackURL());
Util.sout("Root git directory path: " + rootGitDirectoryPath);
Log.info(Util.getServiceName() + "-Git Bridge server started");
Log.info("Listening on port: " + port);
Log.info("Bridged to: " + apiBaseURL);
Log.info("Postback base URL: " + Util.getPostbackURL());
Log.info("Root git directory path: " + rootGitDirectoryPath);
} catch (BindException e) {
Util.printStackTrace(e);
Log.error("Failed to bind Jetty", e);
} catch (Exception e) {
Util.printStackTrace(e);
Log.error("Failed to start Jetty", e);
}
}
@@ -77,7 +77,7 @@ public class GitBridgeServer {
try {
jettyServer.stop();
} catch (Exception e) {
Util.printStackTrace(e);
Log.error("Failed to stop Jetty", e);
}
}
@@ -0,0 +1,84 @@
package uk.ac.ic.wlgitbridge.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.impl.SimpleLogger;
import uk.ac.ic.wlgitbridge.application.GitBridgeApp;
/**
* Created by winston on 19/01/2016.
*/
public class Log {
static {
System.setProperty(SimpleLogger.SHOW_DATE_TIME_KEY, "true");
System.setProperty(SimpleLogger.DATE_TIME_FORMAT_KEY, "yyyy-MM-dd HH:mm:ss:SSS Z");
}
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, Throwable t) {
logger.error(msg, t);
}
}
@@ -1,28 +1,25 @@
package uk.ac.ic.wlgitbridge.data.model;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
import org.eclipse.jgit.lib.*;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.hamcrest.TypeSafeMatcher;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.mockserver.client.server.MockServerClient;
import org.mockserver.junit.MockServerRule;
import uk.ac.ic.wlgitbridge.data.model.db.PersistentStore;
import uk.ac.ic.wlgitbridge.snapshot.push.exception.SnapshotPostException;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
/**
* Created by m on 20/11/15.
*/
@@ -33,7 +30,7 @@ public class ResourceFetcherTest {
private MockServerClient mockServerClient;
@Test
public void fetchesFilesThatAreMissingFromUrlStoreCache() throws IOException {
public void fetchesFilesThatAreMissingFromUrlStoreCache() throws IOException, SnapshotPostException {
final String testProjectName = "123abc";
final String testUrl = "http://localhost:" + mockServerRule.getHttpPort() + "/123abc";
final String oldTestPath = "testPath";
@@ -1,6 +1,6 @@
package uk.ac.ic.wlgitbridge.snapshot.servermock.util;
import junit.framework.Assert;
import org.junit.Assert;
import org.junit.Test;
import java.net.URISyntaxException;