summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/client/GitblitManagerLauncher.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-10-16 14:29:33 -0400
committerJames Moger <james.moger@gitblit.com>2011-10-16 14:29:33 -0400
commita7a9f7d17fa93b3cfc0e7839727ae27c464f8733 (patch)
treeb64a8ddb66523d0a5c9c4ed15f8bebc7e7bfc669 /src/com/gitblit/client/GitblitManagerLauncher.java
parent4b430b4b02e96f0257fb70f1aacab1269b0c2aec (diff)
downloadgitblit-a7a9f7d17fa93b3cfc0e7839727ae27c464f8733.tar.gz
gitblit-a7a9f7d17fa93b3cfc0e7839727ae27c464f8733.zip
Documentation for Gitblit Manager.
Diffstat (limited to 'src/com/gitblit/client/GitblitManagerLauncher.java')
-rw-r--r--src/com/gitblit/client/GitblitManagerLauncher.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/com/gitblit/client/GitblitManagerLauncher.java b/src/com/gitblit/client/GitblitManagerLauncher.java
new file mode 100644
index 00000000..1d4670d6
--- /dev/null
+++ b/src/com/gitblit/client/GitblitManagerLauncher.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2011 gitblit.com.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.gitblit.client;
+
+import java.awt.Color;
+import java.awt.EventQueue;
+import java.awt.FontMetrics;
+import java.awt.Graphics2D;
+import java.awt.SplashScreen;
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
+import com.gitblit.Constants;
+import com.gitblit.Launcher;
+import com.gitblit.build.Build;
+import com.gitblit.build.Build.DownloadListener;
+
+/**
+ * Downloads dependencies and launches Gitblit Manager.
+ *
+ * @author James Moger
+ *
+ */
+public class GitblitManagerLauncher {
+
+ public static void main(String[] args) {
+ final SplashScreen splash = SplashScreen.getSplashScreen();
+
+ DownloadListener downloadListener = new DownloadListener() {
+ @Override
+ public void downloading(String name) {
+ updateSplash(splash, Translation.get("gb.downloading") + " " + name + "...");
+ }
+ };
+
+ // download rpc client runtime dependencies
+ Build.manager(downloadListener);
+
+ File libFolder = new File("ext");
+ List<File> jars = Launcher.findJars(libFolder.getAbsoluteFile());
+
+ // sort the jars by name and then reverse the order so the newer version
+ // of the library gets loaded in the event that this is an upgrade
+ Collections.sort(jars);
+ Collections.reverse(jars);
+ for (File jar : jars) {
+ try {
+ updateSplash(splash, Translation.get("gb.loading") + " " + jar.getName() + "...");
+ Launcher.addJarFile(jar);
+ } catch (IOException e) {
+
+ }
+ }
+
+ updateSplash(splash, Translation.get("gb.starting") + " Gitblit Manager...");
+ GitblitManager.main(args);
+ }
+
+ private static void updateSplash(final SplashScreen splash, final String string) {
+ if (splash == null) {
+ return;
+ }
+ try {
+ EventQueue.invokeAndWait(new Runnable() {
+ public void run() {
+ Graphics2D g = splash.createGraphics();
+ if (g != null) {
+ // Splash is 320x120
+ FontMetrics fm = g.getFontMetrics();
+
+ // paint startup status
+ g.setColor(Color.darkGray);
+ int h = fm.getHeight() + fm.getMaxDescent();
+ int x = 5;
+ int y = 115;
+ int w = 320 - 2 * x;
+ g.fillRect(x, y - h, w, h);
+ g.setColor(Color.lightGray);
+ g.drawRect(x, y - h, w, h);
+ g.setColor(Color.WHITE);
+ int xw = fm.stringWidth(string);
+ g.drawString(string, x + ((w - xw) / 2), y - 5);
+
+ // paint version
+ String ver = "v" + Constants.VERSION;
+ int vw = g.getFontMetrics().stringWidth(ver);
+ g.drawString(ver, 320 - vw - 5, 34);
+ g.dispose();
+ splash.update();
+ }
+ }
+ });
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+}