From 559b32a22fd293272cc2ff964667a041b1b6ca29 Mon Sep 17 00:00:00 2001 From: Winston Li Date: Fri, 11 Mar 2016 09:46:03 +0000 Subject: [PATCH] Integrate slf4j simple logger and change some messages. Declare some exceptions in tests --- services/git-bridge/pom.xml | 15 ++-- .../wlgitbridge/application/GitBridgeApp.java | 33 +++++--- .../ac/ic/wlgitbridge/data/ShutdownHook.java | 11 ++- .../wlgitbridge/server/GitBridgeServer.java | 20 ++--- .../java/uk/ac/ic/wlgitbridge/util/Log.java | 84 +++++++++++++++++++ .../data/model/ResourceFetcherTest.java | 17 ++-- .../servermock/util/FileUtilTest.java | 2 +- 7 files changed, 140 insertions(+), 42 deletions(-) create mode 100644 services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Log.java diff --git a/services/git-bridge/pom.xml b/services/git-bridge/pom.xml index 8443da4f9c..aef616873b 100644 --- a/services/git-bridge/pom.xml +++ b/services/git-bridge/pom.xml @@ -88,11 +88,6 @@ sqlite-jdbc 3.8.7 - - org.slf4j - slf4j-nop - 1.7.9 - joda-time joda-time @@ -118,6 +113,16 @@ commons-lang 2.6 + + org.slf4j + slf4j-api + 1.7.13 + + + org.slf4j + slf4j-simple + 1.7.13 + org.mock-server mockserver-netty diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/application/GitBridgeApp.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/application/GitBridgeApp.java index 11ef4ef2e5..fdb0aa44ef 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/application/GitBridgeApp.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/application/GitBridgeApp.java @@ -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); } } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/data/ShutdownHook.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/data/ShutdownHook.java index 2f92a23bbf..9b7b6b247b 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/data/ShutdownHook.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/data/ShutdownHook.java @@ -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..."); } } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/server/GitBridgeServer.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/server/GitBridgeServer.java index 01f8a63d7d..f185a530f7 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/server/GitBridgeServer.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/server/GitBridgeServer.java @@ -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); } } diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Log.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Log.java new file mode 100644 index 0000000000..3b586957fa --- /dev/null +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/util/Log.java @@ -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); + } + +} diff --git a/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/data/model/ResourceFetcherTest.java b/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/data/model/ResourceFetcherTest.java index 66bd4c87db..2872755c2c 100644 --- a/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/data/model/ResourceFetcherTest.java +++ b/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/data/model/ResourceFetcherTest.java @@ -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"; diff --git a/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/snapshot/servermock/util/FileUtilTest.java b/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/snapshot/servermock/util/FileUtilTest.java index 6218e0464d..12ead45330 100644 --- a/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/snapshot/servermock/util/FileUtilTest.java +++ b/services/git-bridge/src/test/java/uk/ac/ic/wlgitbridge/snapshot/servermock/util/FileUtilTest.java @@ -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;