| | |
| | | import java.text.MessageFormat;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.Collections;
|
| | | import java.util.List;
|
| | |
|
| | | import com.gitblit.build.Build;
|
| | |
|
| | | /**
|
| | | * Launch helper class that adds all jars found in the local "lib" folder and
|
| | | * then calls the application main. Using this technique we do not have to
|
| | | * specify a classpath and we can dynamically add jars to the distribution.
|
| | | * Launch helper class that adds all jars found in the local "lib" & "ext"
|
| | | * folders and then calls the application main. Using this technique we do not
|
| | | * have to specify a classpath and we can dynamically add jars to the
|
| | | * distribution.
|
| | | * |
| | | * This class also downloads all runtime dependencies, if they are not found.
|
| | | * |
| | | * @author James Moger
|
| | | *
|
| | | */
|
| | | public class Launcher {
|
| | |
| | | + protectionDomain.getCodeSource().getLocation().toExternalForm());
|
| | | }
|
| | |
|
| | | // download all runtime dependencies
|
| | | Build.runtime();
|
| | |
|
| | | // Load the JARs in the lib and ext folder
|
| | |
| | | List<File> found = findJars(libFolder.getAbsoluteFile());
|
| | | jars.addAll(found);
|
| | | }
|
| | | // 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);
|
| | |
|
| | | if (jars.size() == 0) {
|
| | | for (String folder : folders) {
|
| | | File libFolder = new File(folder);
|
| | | System.err.println("Failed to find any JARs in " + libFolder.getPath());
|
| | | // this is a test of adding a comment
|
| | | // more really interesting things
|
| | | System.err.println("Failed to find any really cool JARs in " + libFolder.getPath());
|
| | | }
|
| | | System.exit(-1);
|
| | | } else {
|
| | | for (File jar : jars) {
|
| | | try {
|
| | | jar.canRead();
|
| | | addJarFile(jar);
|
| | | } catch (Throwable t) {
|
| | | t.printStackTrace();
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return jars;
|
| | | }
|
| | |
|