mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
Class and package refactoring with unit tests.
This commit is contained in:
@@ -1,120 +1,14 @@
|
||||
package uk.ac.ic;
|
||||
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.eclipse.jgit.api.AddCommand;
|
||||
import org.eclipse.jgit.api.CommitCommand;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.errors.RepositoryNotFoundException;
|
||||
import org.eclipse.jgit.http.server.GitServlet;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
|
||||
import org.eclipse.jgit.transport.ReceivePack;
|
||||
import org.eclipse.jgit.transport.ServiceMayNotContinueException;
|
||||
import org.eclipse.jgit.transport.UploadPack;
|
||||
import org.eclipse.jgit.transport.resolver.*;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
import uk.ac.ic.application.WLGitBridgeApplication;
|
||||
|
||||
/**
|
||||
* Created by Winston on 01/11/14.
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Server server = new Server(8080);
|
||||
final ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
servletContextHandler.setContextPath("/");
|
||||
server.setHandler(servletContextHandler);
|
||||
GitServlet servlet = new GitServlet();
|
||||
servlet.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
|
||||
@Override
|
||||
public Repository open(HttpServletRequest httpServletRequest, String s) throws RepositoryNotFoundException, ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
|
||||
System.out.println(s);
|
||||
|
||||
|
||||
File workspace = new File("/Users/Roxy/git-test/hello");
|
||||
workspace.mkdirs();
|
||||
Repository r = null;
|
||||
try {
|
||||
r = new FileRepositoryBuilder().setWorkTree(workspace).build();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// if the repository doesn't exist, create it
|
||||
if (!r.getObjectDatabase().exists()) {
|
||||
try {
|
||||
r.create();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
// import initial content
|
||||
Git git = new Git(r);
|
||||
AddCommand cmd = git.add();
|
||||
cmd.addFilepattern(".");
|
||||
cmd.call();
|
||||
|
||||
CommitCommand co = git.commit();
|
||||
co.setAuthor("Winston","wl3912@ic.ac.uk");
|
||||
co.setMessage("Initial import of the existing contents");
|
||||
co.call();
|
||||
} catch (GitAPIException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
});
|
||||
|
||||
servlet.setReceivePackFactory(new ReceivePackFactory<HttpServletRequest>() {
|
||||
@Override
|
||||
public ReceivePack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
|
||||
return new ReceivePack(repository);
|
||||
}
|
||||
});
|
||||
|
||||
servlet.setUploadPackFactory(new UploadPackFactory<HttpServletRequest>() {
|
||||
@Override
|
||||
public UploadPack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
|
||||
return new UploadPack(repository);
|
||||
}
|
||||
});
|
||||
servlet.init(new ServletConfig() {
|
||||
@Override
|
||||
public String getServletName() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletContext getServletContext() {
|
||||
return servletContextHandler.getServletContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInitParameter(String s) {
|
||||
return "default_init_parameter";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getInitParameterNames() {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
servletContextHandler.addServlet(new ServletHolder(servlet), "/*");
|
||||
server.start();
|
||||
server.join();
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
new WLGitBridgeApplication(args).run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
package uk.ac.ic;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WGBServer {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package uk.ac.ic.application;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLGitBridgeApplication {
|
||||
|
||||
public WLGitBridgeApplication(String[] args) {
|
||||
parseArguments(args);
|
||||
}
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
new WLGitBridgeServer(8080).start();
|
||||
} catch (ServletException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void parseArguments(String[] args) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package uk.ac.ic.application;
|
||||
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import uk.ac.ic.git.WLGitServlet;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import java.net.BindException;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLGitBridgeServer {
|
||||
|
||||
private final Server jettyServer;
|
||||
private final int port;
|
||||
|
||||
public WLGitBridgeServer(final int port) throws ServletException {
|
||||
this.port = port;
|
||||
jettyServer = new Server(port);
|
||||
configureJettyServer();
|
||||
|
||||
}
|
||||
|
||||
public void start() {
|
||||
try {
|
||||
jettyServer.start();
|
||||
} catch (BindException e) {
|
||||
e.printStackTrace();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
jettyServer.join();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void configureJettyServer() throws ServletException {
|
||||
final ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
servletContextHandler.setContextPath("/");
|
||||
servletContextHandler.addServlet(new ServletHolder(new WLGitServlet(servletContextHandler)), "/*");
|
||||
jettyServer.setHandler(servletContextHandler);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package uk.ac.ic.git;
|
||||
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jgit.http.server.GitServlet;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLGitServlet extends GitServlet {
|
||||
|
||||
public WLGitServlet(ServletContextHandler servletContextHandler) throws ServletException {
|
||||
setRepositoryResolver(new WLRepositoryResolver());
|
||||
setReceivePackFactory(new WLReceivePackFactory());
|
||||
setUploadPackFactory(new WLUploadPackFactory());
|
||||
init(new WLGitServletConfig(servletContextHandler));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package uk.ac.ic.git;
|
||||
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletContext;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLGitServletConfig implements ServletConfig {
|
||||
|
||||
private static final String SERVLET_NAME = "git-servlet";
|
||||
|
||||
private ServletContext servletContext;
|
||||
|
||||
public WLGitServletConfig(ServletContextHandler servletContextHandler) {
|
||||
servletContext = servletContextHandler.getServletContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServletName() {
|
||||
return SERVLET_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletContext getServletContext() {
|
||||
return servletContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInitParameter(String s) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getInitParameterNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package uk.ac.ic.git;
|
||||
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.transport.ReceivePack;
|
||||
import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLReceivePackFactory implements ReceivePackFactory<HttpServletRequest> {
|
||||
|
||||
@Override
|
||||
public ReceivePack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
|
||||
return new ReceivePack(repository);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package uk.ac.ic.git;
|
||||
|
||||
import org.eclipse.jgit.api.AddCommand;
|
||||
import org.eclipse.jgit.api.CommitCommand;
|
||||
import org.eclipse.jgit.api.Git;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.errors.RepositoryNotFoundException;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
|
||||
import org.eclipse.jgit.transport.ServiceMayNotContinueException;
|
||||
import org.eclipse.jgit.transport.resolver.RepositoryResolver;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLRepositoryResolver implements RepositoryResolver<HttpServletRequest> {
|
||||
|
||||
@Override
|
||||
public Repository open(HttpServletRequest httpServletRequest, String s) throws RepositoryNotFoundException, ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
|
||||
System.out.println(s);
|
||||
|
||||
|
||||
File workspace = new File("/Users/Roxy/git-test/hello");
|
||||
workspace.mkdirs();
|
||||
Repository r = null;
|
||||
try {
|
||||
r = new FileRepositoryBuilder().setWorkTree(workspace).build();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// if the repository doesn't exist, create it
|
||||
if (!r.getObjectDatabase().exists()) {
|
||||
try {
|
||||
r.create();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
// import initial content
|
||||
Git git = new Git(r);
|
||||
AddCommand cmd = git.add();
|
||||
cmd.addFilepattern(".");
|
||||
cmd.call();
|
||||
|
||||
CommitCommand co = git.commit();
|
||||
co.setAuthor("Winston", "wl3912@ic.ac.uk");
|
||||
co.setMessage("Initial import of the existing contents");
|
||||
co.call();
|
||||
} catch (GitAPIException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package uk.ac.ic.git;
|
||||
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.transport.UploadPack;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
|
||||
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
|
||||
import org.eclipse.jgit.transport.resolver.UploadPackFactory;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* Created by Winston on 02/11/14.
|
||||
*/
|
||||
public class WLUploadPackFactory implements UploadPackFactory<HttpServletRequest> {
|
||||
@Override
|
||||
public UploadPack create(HttpServletRequest httpServletRequest, Repository repository) throws ServiceNotEnabledException, ServiceNotAuthorizedException {
|
||||
return new UploadPack(repository);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user