From 01e0b59d5d5c8933eef21e0842c1439084b3f936 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gmail.com> Date: Tue, 29 Jan 2013 11:35:15 -0500 Subject: [PATCH] Merge pull request #70 --- tests/de/akquinet/devops/GitBlitServer4UITests.java | 62 ++++++++++++++++++++ tests/de/akquinet/devops/test/ui/TestUISuite.java | 2 src/com/gitblit/GitBlit.java | 21 ++++++ tests/de/akquinet/devops/GitBlit4UITests.java | 25 ++++++++ src/com/gitblit/GitBlitServer.java | 32 ++++++---- tests/de/akquinet/devops/test/ui/cases/UI_MultiAdminSupportTest.java | 2 tests/de/akquinet/devops/GitblitRunnable.java | 2 tests/de/akquinet/devops/test/ui/view/RepoEditView.java | 10 +- 8 files changed, 133 insertions(+), 23 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 6bf75d7..4cfd61e 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -3096,8 +3096,8 @@ } // schedule lucene engine - logger.info("Lucene executor is scheduled to process indexed branches every 2 minutes."); - scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES); + enableLuceneIndexing(); + // schedule gc engine if (gcExecutor.isReady()) { @@ -3178,6 +3178,23 @@ } } + protected void enableLuceneIndexing() { + scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES); + logger.info("Lucene executor is scheduled to process indexed branches every 2 minutes."); + } + + protected final Logger getLogger() { + return logger; + } + + protected final ScheduledExecutorService getScheduledExecutor() { + return scheduledExecutor; + } + + protected final LuceneExecutor getLuceneExecutor() { + return luceneExecutor; + } + private void logTimezone(String type, TimeZone zone) { SimpleDateFormat df = new SimpleDateFormat("z Z"); df.setTimeZone(zone); diff --git a/src/com/gitblit/GitBlitServer.java b/src/com/gitblit/GitBlitServer.java index feddb93..08c0d2a 100644 --- a/src/com/gitblit/GitBlitServer.java +++ b/src/com/gitblit/GitBlitServer.java @@ -84,6 +84,8 @@ private static Logger logger; public static void main(String... args) { + GitBlitServer server = new GitBlitServer(); + // filter out the baseFolder parameter List<String> filtered = new ArrayList<String>(); String folder = "data"; @@ -108,16 +110,16 @@ try { jc.parse(filtered.toArray(new String[filtered.size()])); if (params.help) { - usage(jc, null); + server.usage(jc, null); } } catch (ParameterException t) { - usage(jc, t); + server.usage(jc, t); } if (params.stop) { - stop(params); + server.stop(params); } else { - start(params); + server.start(params); } } @@ -127,7 +129,7 @@ * @param jc * @param t */ - private static void usage(JCommander jc, ParameterException t) { + protected final void usage(JCommander jc, ParameterException t) { System.out.println(Constants.BORDER); System.out.println(Constants.getGitBlitVersion()); System.out.println(Constants.BORDER); @@ -147,7 +149,7 @@ /** * Stop Gitblt GO. */ - public static void stop(Params params) { + public void stop(Params params) { try { Socket s = new Socket(InetAddress.getByName("127.0.0.1"), params.shutdownPort); OutputStream out = s.getOutputStream(); @@ -165,7 +167,7 @@ /** * Start Gitblit GO. */ - private static void start(Params params) { + protected final void start(Params params) { final File baseFolder = new File(Params.baseFolder).getAbsoluteFile(); FileSettings settings = params.FILESETTINGS; if (!StringUtils.isEmpty(params.settingsfile)) { @@ -378,7 +380,7 @@ server.setHandler(rootContext); // Setup the GitBlit context - GitBlit gitblit = GitBlit.self(); + GitBlit gitblit = getGitBlitInstance(); gitblit.configureContext(settings, baseFolder, true); rootContext.addEventListener(gitblit); @@ -397,6 +399,10 @@ System.exit(100); } } + + protected GitBlit getGitBlitInstance() { + return GitBlit.self(); + } /** * Creates an http connector. @@ -405,7 +411,7 @@ * @param port * @return an http connector */ - private static Connector createConnector(boolean useNIO, int port) { + private Connector createConnector(boolean useNIO, int port) { Connector connector; if (useNIO) { logger.info("Setting up NIO SelectChannelConnector on port " + port); @@ -440,7 +446,7 @@ * @param requireClientCertificates * @return an https connector */ - private static Connector createSSLConnector(String certAlias, File keyStore, File clientTrustStore, + private Connector createSSLConnector(String certAlias, File keyStore, File clientTrustStore, String storePassword, File caRevocationList, boolean useNIO, int port, boolean requireClientCertificates) { GitblitSslContextFactory factory = new GitblitSslContextFactory(certAlias, @@ -474,7 +480,7 @@ * @param port * @return an ajp connector */ - private static Connector createAJPConnector(int port) { + private Connector createAJPConnector(int port) { logger.info("Setting up AJP Connector on port " + port); Ajp13SocketConnector ajp = new Ajp13SocketConnector(); ajp.setPort(port); @@ -489,7 +495,7 @@ * * @return true if this is a windows machine */ - private static boolean isWindows() { + private boolean isWindows() { return System.getProperty("os.name").toLowerCase().indexOf("windows") > -1; } @@ -548,7 +554,7 @@ * JCommander Parameters class for GitBlitServer. */ @Parameters(separators = " ") - private static class Params { + public static class Params { public static String baseFolder; diff --git a/tests/de/akquinet/devops/GitBlit4UITests.java b/tests/de/akquinet/devops/GitBlit4UITests.java new file mode 100644 index 0000000..130f2c9 --- /dev/null +++ b/tests/de/akquinet/devops/GitBlit4UITests.java @@ -0,0 +1,25 @@ +package de.akquinet.devops; + +import java.util.concurrent.TimeUnit; + +import com.gitblit.GitBlit; + +public class GitBlit4UITests extends GitBlit { + + private boolean luceneIndexingEnabled; + + public GitBlit4UITests(boolean luceneIndexingEnabled) { + this.luceneIndexingEnabled = luceneIndexingEnabled; + } + + @Override + protected void enableLuceneIndexing() { + if (luceneIndexingEnabled) { + getScheduledExecutor().scheduleAtFixedRate(getLuceneExecutor(), 1, + 2, TimeUnit.MINUTES); + getLogger() + .info("Lucene executor is scheduled to process indexed branches every 2 minutes."); + } + } + +} diff --git a/tests/de/akquinet/devops/GitBlitServer4UITests.java b/tests/de/akquinet/devops/GitBlitServer4UITests.java new file mode 100644 index 0000000..2d54be2 --- /dev/null +++ b/tests/de/akquinet/devops/GitBlitServer4UITests.java @@ -0,0 +1,62 @@ +package de.akquinet.devops; + +import java.util.ArrayList; +import java.util.List; + +import com.beust.jcommander.JCommander; +import com.beust.jcommander.ParameterException; +import com.gitblit.GitBlit; +import com.gitblit.GitBlitServer; + +public class GitBlitServer4UITests extends GitBlitServer { + + public static void main(String... args) { + GitBlitServer4UITests server = new GitBlitServer4UITests(); + + // filter out the baseFolder parameter + List<String> filtered = new ArrayList<String>(); + String folder = "data"; + for (int i = 0; i < args.length; i++) { + String arg = args[i]; + if (arg.equals("--baseFolder")) { + if (i + 1 == args.length) { + System.out.println("Invalid --baseFolder parameter!"); + System.exit(-1); + } else if (args[i + 1] != ".") { + folder = args[i + 1]; + } + i = i + 1; + } else { + filtered.add(arg); + } + } + + Params.baseFolder = folder; + Params params = new Params(); + JCommander jc = new JCommander(params); + try { + jc.parse(filtered.toArray(new String[filtered.size()])); + if (params.help) { + server.usage(jc, null); + } + } catch (ParameterException t) { + server.usage(jc, t); + } + + if (params.stop) { + server.stop(params); + } else { + server.start(params); + } + } + + private GitBlit4UITests instance; + + @Override + protected GitBlit getGitBlitInstance() { + if (instance == null) { + instance = new GitBlit4UITests(false); + } + return instance; + } +} diff --git a/tests/de/akquinet/devops/GitblitRunnable.java b/tests/de/akquinet/devops/GitblitRunnable.java index fc08f5a..66a31e3 100644 --- a/tests/de/akquinet/devops/GitblitRunnable.java +++ b/tests/de/akquinet/devops/GitblitRunnable.java @@ -70,7 +70,7 @@ } try { - GitBlitServer.main("--httpPort", "" + httpPort, "--httpsPort", "" + GitBlitServer4UITests.main("--httpPort", "" + httpPort, "--httpsPort", "" + httpsPort, "--shutdownPort", "" + shutdownPort, "--repositoriesFolder", "\"" + GitBlitSuite.REPOSITORIES.getAbsolutePath() + "\"", diff --git a/tests/de/akquinet/devops/test/ui/TestUISuite.java b/tests/de/akquinet/devops/test/ui/TestUISuite.java index 97bd903..08d7a00 100644 --- a/tests/de/akquinet/devops/test/ui/TestUISuite.java +++ b/tests/de/akquinet/devops/test/ui/TestUISuite.java @@ -27,7 +27,7 @@ * */ @RunWith(Suite.class) -@Suite.SuiteClasses({ UI_MultiAdminSupportTest.class }) +@Suite.SuiteClasses({ UI_MultiAdminSupportTest.class, UI_MultiAdminSupportTest.class }) public class TestUISuite { } diff --git a/tests/de/akquinet/devops/test/ui/cases/UI_MultiAdminSupportTest.java b/tests/de/akquinet/devops/test/ui/cases/UI_MultiAdminSupportTest.java index 9cdad16..a392571 100644 --- a/tests/de/akquinet/devops/test/ui/cases/UI_MultiAdminSupportTest.java +++ b/tests/de/akquinet/devops/test/ui/cases/UI_MultiAdminSupportTest.java @@ -64,7 +64,7 @@ .changeAuthorizationControl(RepoEditView.AUTHCONTROL_RWALL)); // with a second admin - editView.addRepoAdministrator("admin"); + editView.addOwner("admin"); Assert.assertTrue(editView.save()); // user is automatically forwarded to repo list view Assert.assertTrue(view.isEmptyRepo(TEST_MULTI_ADMIN_SUPPORT_REPO_PATH)); diff --git a/tests/de/akquinet/devops/test/ui/view/RepoEditView.java b/tests/de/akquinet/devops/test/ui/view/RepoEditView.java index ef0a317..a3365d1 100644 --- a/tests/de/akquinet/devops/test/ui/view/RepoEditView.java +++ b/tests/de/akquinet/devops/test/ui/view/RepoEditView.java @@ -68,7 +68,7 @@ return false; } - private void changeRepoAdministrators(String action, + private void changeOwners(String action, String affectedSelection, String username) { String xpath = "//select[@name=\"" + affectedSelection + "\"]/option[@value = \"" + username + "\" ]"; @@ -79,13 +79,13 @@ button.click(); } - public void removeRepoAdministrator(String username) { - changeRepoAdministrators("remove", "repoAdministrators:selection", + public void removeOwner(String username) { + changeOwners("remove", "owners:selection", username); } - public void addRepoAdministrator(String username) { - changeRepoAdministrators("add", "repoAdministrators:choices", username); + public void addOwner(String username) { + changeOwners("add", "owners:choices", username); } public WebElement getAccessRestrictionSelection() { -- Gitblit v1.9.1