Skip to content

Commit

Permalink
Introducing single-app, in-process execution mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Nov 6, 2017
1 parent ce0379f commit 9c42e31
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 9 deletions.
Expand Up @@ -40,7 +40,8 @@
@Since("2.0.0")
public class Conf extends RapidoidThing {

private static final String CONFIG_NAME = Msc.isPlatform() ? "rapidoid" : "config";
private static final String CONFIG_NAME = Msc.isMultiAppPlatform() ? "rapidoid" : "config";

public static final Config ROOT = new ConfigImpl(CONFIG_NAME, true);

private static final Map<String, Config> SECTIONS = Coll.autoExpandingMap(new Mapper<String, Config>() {
Expand Down
1 change: 0 additions & 1 deletion local-docker-build/Dockerfile
Expand Up @@ -18,7 +18,6 @@ COPY entrypoint.sh /opt/
COPY rapidoid.jar $RAPIDOID_JAR

RUN set -xe \
&& mkdir /app \
&& mkdir -p "$RAPIDOID_TMP"

ENTRYPOINT ["/opt/entrypoint.sh"]
8 changes: 4 additions & 4 deletions rapidoid-gui/src/main/java/org/rapidoid/gui/HtmlPage.java
Expand Up @@ -14,9 +14,9 @@
import org.rapidoid.render.Templates;
import org.rapidoid.u.U;
import org.rapidoid.util.Msc;
import org.rapidoid.writable.WritableUtils;
import org.rapidoid.writable.WritableOutputStream;
import org.rapidoid.web.ScreenBean;
import org.rapidoid.writable.WritableOutputStream;
import org.rapidoid.writable.WritableUtils;

import java.io.OutputStream;
import java.util.List;
Expand Down Expand Up @@ -47,8 +47,8 @@
@Since("5.0.0")
public class HtmlPage extends ScreenBean {

private static volatile String commonJs = Msc.isPlatform() ? "_rapidoid/platform.js" : "application.js";
private static volatile String commonCss = Msc.isPlatform() ? "_rapidoid/platform.css" : "application.css";
private static volatile String commonJs = Msc.isMultiAppPlatform() ? "_rapidoid/platform.js" : "application.js";
private static volatile String commonCss = Msc.isMultiAppPlatform() ? "_rapidoid/platform.css" : "application.css";

private static volatile Template PAGE_TEMPLATE = Templates.load("page.html");
private static volatile Template PAGE_AJAX_TEMPLATE = Templates.load("page-ajax.html");
Expand Down
Expand Up @@ -130,6 +130,7 @@ static Processes processes() {

public static void bootstrap() {
String appJar = Msc.mainAppJar();

if (U.notEmpty(appJar)) {
runIfExists("app", appJar);
}
Expand Down
Expand Up @@ -29,14 +29,15 @@
import org.rapidoid.log.Log;
import org.rapidoid.performance.BenchmarkCenter;
import org.rapidoid.u.U;
import org.rapidoid.util.Msc;

@Authors("Nikolche Mihajlovski")
@Since("5.1.0")
public class Main extends RapidoidThing {

public static void main(String[] args) {
// just print basic info if no args were specified
if (U.isEmpty(args)) {
if (U.isEmpty(args) && !Msc.isSingleApp()) {
printWelcome();

} else {
Expand Down
Expand Up @@ -38,6 +38,7 @@
import org.rapidoid.util.MscOpts;

import java.io.File;
import java.util.List;

@Authors("Nikolche Mihajlovski")
@Since("5.3.0")
Expand All @@ -52,13 +53,22 @@ static void start(CmdArgs options) {

printAdminCenterURL();

AppDeployer.bootstrap();
if (Msc.isSingleApp() && !Env.dev()) {
runSingleApp(options);
} else {
AppDeployer.bootstrap();
}

if (!Setup.isAnyRunning()) {
On.setup().activate();
}
}

private static void runSingleApp(CmdArgs options) {
Log.info("Running in single-app mode");
App.run(U.arrayOf(String.class, options.options));
}

private static void printAdminCenterURL() {
if (Env.dev()) {
long port = Conf.RAPIDOID.entry("port").num().get();
Expand All @@ -79,7 +89,14 @@ private static void startPlatformAndProcessOptions(CmdArgs cmdArgs) {

App.boot().services();

for (String appRef : cmdArgs.refs) {
if (U.notEmpty(cmdArgs.refs)) {
U.must(!Msc.isSingleApp(), "Cannot run external applications in single-app mode!");
processExternalApps(cmdArgs.refs);
}
}

private static void processExternalApps(List<String> refs) {
for (String appRef : refs) {
new File(MscOpts.appsPath()).mkdirs();
AppDownloader.download(appRef, MscOpts.appsPath());
}
Expand Down
1 change: 1 addition & 0 deletions rapidoid-platform/src/test/app1/config.yml
@@ -0,0 +1 @@
id: single-app1
@@ -0,0 +1,44 @@
package org.rapidoid.platform;

/*
* #%L
* rapidoid-platform
* %%
* Copyright (C) 2014 - 2017 Nikolche Mihajlovski and contributors
* %%
* 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.
* #L%
*/

import org.rapidoid.RapidoidThing;
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;

import java.io.File;

@Authors("Nikolche Mihajlovski")
@Since("5.4.6")
public class RunInSingleAppMode extends RapidoidThing {

private static final String APP_PATH = new File("rapidoid-platform/src/test/app1").getAbsolutePath();

private static final String[] ARGS = {
"dev",
"root=" + APP_PATH,
};

public static void main(String[] args) {
Main.main(ARGS);
}

}

0 comments on commit 9c42e31

Please sign in to comment.