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