From 3f5b8f5d9203aa7ffb7fbe9cdbaf9dba3da6cae6 Mon Sep 17 00:00:00 2001 From: Hybris95 <hybris_95@hotmail.com> Date: Thu, 01 May 2014 16:14:15 -0400 Subject: [PATCH] Fixes sort, page building and search functions on "my tickets" page. --- src/main/java/com/gitblit/FederationClient.java | 111 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 76 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/gitblit/FederationClient.java b/src/main/java/com/gitblit/FederationClient.java index 6b2161c..c3dcd9d 100644 --- a/src/main/java/com/gitblit/FederationClient.java +++ b/src/main/java/com/gitblit/FederationClient.java @@ -17,13 +17,23 @@ import java.io.File; import java.util.ArrayList; +import java.util.Collection; import java.util.List; -import com.beust.jcommander.JCommander; -import com.beust.jcommander.Parameter; -import com.beust.jcommander.ParameterException; -import com.beust.jcommander.Parameters; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; +import org.kohsuke.args4j.Option; + +import com.gitblit.manager.FederationManager; +import com.gitblit.manager.GitblitManager; +import com.gitblit.manager.IGitblit; +import com.gitblit.manager.INotificationManager; +import com.gitblit.manager.RepositoryManager; +import com.gitblit.manager.RuntimeManager; +import com.gitblit.manager.UserManager; import com.gitblit.models.FederationModel; +import com.gitblit.models.Mailing; +import com.gitblit.service.FederationPullService; import com.gitblit.utils.FederationUtils; import com.gitblit.utils.StringUtils; @@ -37,11 +47,11 @@ public static void main(String[] args) { Params params = new Params(); - JCommander jc = new JCommander(params); + CmdLineParser parser = new CmdLineParser(params); try { - jc.parse(args); - } catch (ParameterException t) { - usage(jc, t); + parser.parseArgument(args); + } catch (CmdLineException t) { + usage(parser, t); } System.out.println("Gitblit Federation Client v" + Constants.getVersion() + " (" + Constants.getBuildDate() + ")"); @@ -53,7 +63,7 @@ } File regFile = com.gitblit.utils.FileUtils.resolveParameter(Constants.baseFolder$, baseFolder, params.registrationsFile); - IStoredSettings settings = new FileSettings(regFile.getAbsolutePath()); + FileSettings settings = new FileSettings(regFile.getAbsolutePath()); List<FederationModel> registrations = new ArrayList<FederationModel>(); if (StringUtils.isEmpty(params.url)) { registrations.addAll(FederationUtils.getFederationRegistrations(settings)); @@ -67,7 +77,6 @@ model.token = params.token; model.mirror = params.mirror; model.bare = params.bare; - model.frequency = params.frequency; model.folder = ""; registrations.add(model); } @@ -83,16 +92,26 @@ } // configure the Gitblit singleton for minimal, non-server operation - GitBlit.self().configureContext(settings, baseFolder, false); - FederationPullExecutor executor = new FederationPullExecutor(registrations, params.isDaemon); - executor.run(); - if (!params.isDaemon) { - System.out.println("Finished."); - System.exit(0); - } + RuntimeManager runtime = new RuntimeManager(settings, baseFolder).start(); + NoopNotificationManager notifications = new NoopNotificationManager().start(); + UserManager users = new UserManager(runtime).start(); + RepositoryManager repositories = new RepositoryManager(runtime, users).start(); + FederationManager federation = new FederationManager(runtime, notifications, repositories).start(); + IGitblit gitblit = new GitblitManager(runtime, null, notifications, users, null, null, repositories, null, federation); + + FederationPullService puller = new FederationPullService(gitblit, federation.getFederationRegistrations()) { + @Override + public void reschedule(FederationModel registration) { + // NOOP + } + }; + puller.run(); + + System.out.println("Finished."); + System.exit(0); } - private static void usage(JCommander jc, ParameterException t) { + private static void usage(CmdLineParser parser, CmdLineException t) { System.out.println(Constants.getGitBlitVersion()); System.out.println(); if (t != null) { @@ -100,44 +119,66 @@ System.out.println(); } - if (jc != null) { - jc.usage(); + if (parser != null) { + parser.printUsage(System.out); } System.exit(0); } /** - * JCommander Parameters class for FederationClient. + * Parameters class for FederationClient. */ - @Parameters(separators = " ") private static class Params { - @Parameter(names = { "--registrations" }, description = "Gitblit Federation Registrations File", required = false) + @Option(name = "--registrations", usage = "Gitblit Federation Registrations File", metaVar = "FILE") public String registrationsFile = "${baseFolder}/federation.properties"; - @Parameter(names = { "--daemon" }, description = "Runs in daemon mode to schedule and pull repositories", required = false) - public boolean isDaemon; - - @Parameter(names = { "--url" }, description = "URL of Gitblit instance to mirror from", required = false) + @Option(name = "--url", usage = "URL of Gitblit instance to mirror from", metaVar = "URL") public String url; - @Parameter(names = { "--mirror" }, description = "Mirror repositories", required = false) + @Option(name = "--mirror", usage = "Mirror repositories") public boolean mirror; - @Parameter(names = { "--bare" }, description = "Create bare repositories", required = false) + @Option(name = "--bare", usage = "Create bare repositories") public boolean bare; - @Parameter(names = { "--token" }, description = "Federation Token", required = false) + @Option(name = "--token", usage = "Federation Token", metaVar = "TOKEN") public String token; - @Parameter(names = { "--frequency" }, description = "Period to wait between pull attempts (requires --daemon)", required = false) - public String frequency = "60 mins"; - - @Parameter(names = { "--baseFolder" }, description = "Base folder for received data", required = false) + @Option(name = "--baseFolder", usage = "Base folder for received data", metaVar = "PATH") public String baseFolder; - @Parameter(names = { "--repositoriesFolder" }, description = "Destination folder for cloned repositories", required = false) + @Option(name = "--repositoriesFolder", usage = "Destination folder for cloned repositories", metaVar = "PATH") public String repositoriesFolder; } + + private static class NoopNotificationManager implements INotificationManager { + + @Override + public NoopNotificationManager start() { + return this; + } + + @Override + public NoopNotificationManager stop() { + return this; + } + + @Override + public void sendMailToAdministrators(String subject, String message) { + } + + @Override + public void sendMail(String subject, String message, Collection<String> toAddresses) { + } + + @Override + public void sendHtmlMail(String subject, String message, Collection<String> toAddresses) { + } + + @Override + public void send(Mailing mailing) { + } + } } -- Gitblit v1.9.1