@@ -1203,8 +1203,8 @@ public static void runApp(
12031203 @ NonNull ExecutionMode executionMode ,
12041204 @ NonNull List <Supplier <Jooby >> provider ) {
12051205 var cmd = parseArguments (args );
1206- var options = ServerOptions .from (ConfigFactory .parseMap (cmd )).orElseGet ( ServerOptions :: new );
1207- runApp (args , Server .loadServer (options ) , executionMode , provider );
1206+ var options = ServerOptions .from (ConfigFactory .parseMap (cmd )).orElse ( null );
1207+ runApp (args , Server .loadServer (), options , executionMode , provider );
12081208 }
12091209
12101210 /**
@@ -1232,6 +1232,23 @@ public static void runApp(
12321232 @ NonNull Server server ,
12331233 @ NonNull ExecutionMode executionMode ,
12341234 @ NonNull List <Supplier <Jooby >> provider ) {
1235+ runApp (args , server , null , executionMode , provider );
1236+ }
1237+
1238+ /**
1239+ * Setup default environment, logging (logback or log4j2) and run application.
1240+ *
1241+ * @param args Application arguments.
1242+ * @param server Server.
1243+ * @param executionMode Default application execution mode. Can be overridden by application.
1244+ * @param provider Application provider.
1245+ */
1246+ private static void runApp (
1247+ @ NonNull String [] args ,
1248+ @ NonNull Server server ,
1249+ @ Nullable ServerOptions options ,
1250+ @ NonNull ExecutionMode executionMode ,
1251+ @ NonNull List <Supplier <Jooby >> provider ) {
12351252
12361253 /* Dump command line as system properties. */
12371254 parseArguments (args ).forEach (System ::setProperty );
@@ -1241,13 +1258,17 @@ public static void runApp(
12411258 for (var factory : provider ) {
12421259 var app = createApp (server , executionMode , factory );
12431260 /*
1244- When running a single app instance, there is no issue with server options, when multiple
1245- apps set options a warning will be printed
1261+ When running a single app instance, there is no issue with server options.
1262+ When multiple apps pick first on the provided order.
12461263 */
1247- ServerOptions .from (app .getConfig ()).ifPresent (server ::setOptions );
1264+ if (options == null ) {
1265+ options = ServerOptions .from (app .getConfig ()).orElse (null );
1266+ }
12481267 apps .add (app );
12491268 }
1250-
1269+ if (options != null ) {
1270+ server .setOptions (options );
1271+ }
12511272 targetServer .start (apps .toArray (new Jooby [0 ]));
12521273 } catch (Throwable startupError ) {
12531274 try {
0 commit comments