diff --git a/jams-launcher/src/main/java/launcher/AppStarter.java b/jams-launcher/src/main/java/launcher/AppStarter.java index d39ee55db731db4b5046bbeaa5d26466b8e8856f..fb338f22bdae49d303e5dddb1cb127e48da5730c 100644 --- a/jams-launcher/src/main/java/launcher/AppStarter.java +++ b/jams-launcher/src/main/java/launcher/AppStarter.java @@ -24,19 +24,29 @@ package launcher; import launcher.loaders.ServerLoader; import launcher.loaders.UpdaterLoader; +import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import net.jami.jams.common.updater.AppUpdater; import net.jami.jams.common.utils.LibraryLoader; import net.jami.jams.server.Server; +import net.jami.jams.server.core.TomcatLauncher; import java.util.concurrent.atomic.AtomicBoolean; @Slf4j +@Getter +@Setter public class AppStarter extends Thread { private final AtomicBoolean doUpdate = new AtomicBoolean(false); private Server server; private AppUpdater appUpdater; + private static Integer port; + private static String serverCertificate; + private static String serverPrivateKey; + + /** * The launcher is essentially responsible of firing up the main application JAR. * The problematic here is whenever we will fire up a JAR (but then we need to be able to @@ -47,6 +57,20 @@ public class AppStarter extends Thread { //system between both systems. AppStarter appStarter = new AppStarter(); appStarter.start(); + + switch (args.length) { + case 1: + port = (Integer.parseInt(args[0])); + break; + case 3: + port = (Integer.parseInt(args[0])); + serverCertificate = (args[1]); + serverPrivateKey = (args[2]); + break; + default: + log.error("An unknown error occurred when parsing command line arguments!"); + break; + } } //How this works - once the JAMSUpdater has notified back upstream to do an update, we lockdown @@ -56,7 +80,7 @@ public class AppStarter extends Thread { //TODO: Hack this a bit to get it to work better - passing arguments damnit. LibraryLoader.loadlibs(System.getProperty("user.dir"),AppStarter.class); appUpdater = UpdaterLoader.loadUpdater(doUpdate); - server = ServerLoader.loadServer(appUpdater); + server = ServerLoader.loadServer(appUpdater, Integer.toString(port), serverCertificate, serverPrivateKey); while(true) { try { synchronized (doUpdate){ @@ -66,7 +90,7 @@ public class AppStarter extends Thread { Server.tomcatLauncher.stopTomcat(); //This will trigger a force reload of the lib. LibraryLoader.loadlibs(System.getProperty("user.dir"), AppStarter.class); - server = ServerLoader.loadServer(appUpdater); + server = ServerLoader.loadServer(appUpdater, Integer.toString(port), serverCertificate, serverPrivateKey); this.doUpdate.set(false); } } diff --git a/jams-launcher/src/main/java/launcher/loaders/ServerLoader.java b/jams-launcher/src/main/java/launcher/loaders/ServerLoader.java index 48d13fc64d1b93446b0b180cf0adfa4ba155fad9..efc610db462f62cf124010428421a75f01ec968c 100644 --- a/jams-launcher/src/main/java/launcher/loaders/ServerLoader.java +++ b/jams-launcher/src/main/java/launcher/loaders/ServerLoader.java @@ -30,11 +30,12 @@ import net.jami.jams.server.Server; @Slf4j public class ServerLoader { - public static Server loadServer(AppUpdater appUpdater) { + public static Server loadServer(AppUpdater appUpdater, String port, String serverCertificate, String serverPrivateKey) { try { Class<?> cls = LibraryLoader.classLoader.loadClass("net.jami.jams.server.Server"); log.info("Server found, starting......"); - return (Server) cls.getConstructor(AppUpdater.class).newInstance(appUpdater); + return (Server) cls.getConstructor(AppUpdater.class, String.class, String.class, String.class).newInstance + (appUpdater, port, serverCertificate, serverPrivateKey); } catch (Exception e){ log.error("Could not find and start the server with error {}",e.getCause().getClass()); diff --git a/jams-server/src/main/java/net/jami/jams/server/Server.java b/jams-server/src/main/java/net/jami/jams/server/Server.java index 105baeb732ad6bb88154f0e0ed1e4d3998ebfa9c..3fd4bb82964ee37bb27ae476da0b66d8506e9a3f 100644 --- a/jams-server/src/main/java/net/jami/jams/server/Server.java +++ b/jams-server/src/main/java/net/jami/jams/server/Server.java @@ -67,9 +67,13 @@ public class Server { public static LicenseService licenseService = new LicenseService(); public static AppUpdater appUpdater; - public Server(AppUpdater appUpdater) { + public Server(AppUpdater appUpdater, String port, String serverCertificate, String serverPrivateKey) { Server.appUpdater = appUpdater; - main(new String[]{}); + + String[] args = {port, serverCertificate, serverPrivateKey}; + + if ((args.length > 0)) main(args); + else main(new String[]{}); }