From edeab95cac16e5f17cfcd75a9969d8708bf360ab Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 12 May 2014 09:22:04 -0400 Subject: [PATCH] Documentation --- src/main/java/com/gitblit/FederationClient.java | 88 +++++++++++++++++++++++++++++--------------- 1 files changed, 58 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/gitblit/FederationClient.java b/src/main/java/com/gitblit/FederationClient.java index 66b378a..c3dcd9d 100644 --- a/src/main/java/com/gitblit/FederationClient.java +++ b/src/main/java/com/gitblit/FederationClient.java @@ -17,18 +17,22 @@ 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.NotificationManager; +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; @@ -43,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() + ")"); @@ -73,7 +77,6 @@ model.token = params.token; model.mirror = params.mirror; model.bare = params.bare; - model.frequency = params.frequency; model.folder = ""; registrations.add(model); } @@ -89,14 +92,14 @@ } // configure the Gitblit singleton for minimal, non-server operation - RuntimeManager runtime = new RuntimeManager(settings); - runtime.setBaseFolder(baseFolder); - NotificationManager notifications = new NotificationManager(settings).start(); + 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, users, repositories).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(federation.getFederationRegistrations()) { + FederationPullService puller = new FederationPullService(gitblit, federation.getFederationRegistrations()) { @Override public void reschedule(FederationModel registration) { // NOOP @@ -108,7 +111,7 @@ 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) { @@ -116,41 +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 = { "--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