X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=swt%2Frap%2Forg.argeo.cms.swt.rap.cli%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Frap%2Fcli%2FCmsRapCli.java;fp=swt%2Frap%2Forg.argeo.cms.swt.rap.cli%2Fsrc%2Forg%2Fargeo%2Fcms%2Fswt%2Frap%2Fcli%2FCmsRapCli.java;h=0000000000000000000000000000000000000000;hb=6ff9fe4752ba5122751d5fc4cf03ce1e6f7123f0;hp=5191b7718d391498df9058fe6a26b64b99612bff;hpb=c9100383d67d1be4c5797f084169a3faf513f5fb;p=lgpl%2Fargeo-commons.git diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/CmsRapCli.java b/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/CmsRapCli.java deleted file mode 100644 index 5191b7718..000000000 --- a/swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/CmsRapCli.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.argeo.cms.swt.rap.cli; - -import java.io.IOException; -import java.lang.management.ManagementFactory; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; - -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.argeo.api.acr.spi.ProvidedRepository; -import org.argeo.api.cli.CommandsCli; -import org.argeo.api.cli.DescribedCommand; -import org.argeo.api.cms.CmsApp; -import org.argeo.api.cms.CmsContext; -import org.argeo.api.cms.CmsState; -import org.argeo.cms.jetty.CmsJettyServer; -import org.argeo.cms.runtime.StaticCms; -import org.argeo.cms.swt.app.CmsUserApp; -import org.argeo.cms.web.CmsWebApp; -import org.argeo.util.register.Component; -import org.argeo.util.register.ComponentRegister; -import org.eclipse.rap.rwt.application.ApplicationConfiguration; - -public class CmsRapCli extends CommandsCli { - - public CmsRapCli(String commandName) { - super(commandName); - addCommand("user", new Launch()); - } - - @Override - public String getDescription() { - return "Argeo CMS utilities."; - } - - public static void main(String[] args) { - mainImpl(new CmsRapCli("web"), args); - } - - static class Launch implements DescribedCommand { - private Option dataOption; - private Option uiOption; - - @Override - public Options getOptions() { - Options options = new Options(); - dataOption = Option.builder().longOpt("data").hasArg().required() - .desc("path to the writable data area (mandatory)").build(); - uiOption = Option.builder().longOpt("ui").desc("open a user interface").build(); - options.addOption(dataOption); - options.addOption(uiOption); - return options; - } - - @Override - public String apply(List args) { - CommandLine cl = toCommandLine(args); - String dataPath = cl.getOptionValue(dataOption); - boolean ui = cl.hasOption(uiOption); - - Path instancePath = Paths.get(dataPath); - System.setProperty("osgi.instance.area", instancePath.toUri().toString()); - System.setProperty("argeo.http.port", "0"); - - StaticCms staticCms = new StaticCms() { - @Override - protected void addComponents(ComponentRegister register) { - if (ui) { - CmsUserApp cmsApp = new CmsUserApp(); - Component cmsAppC = new Component.Builder<>(cmsApp) // - .addType(CmsApp.class) // - .addType(CmsUserApp.class) // - .addDependency(register.getSingleton(CmsContext.class), cmsApp::setCmsContext, null) // - .addDependency(register.getSingleton(ProvidedRepository.class), - cmsApp::setContentRepository, null) // - .build(register); - - CmsWebApp cmsWebApp = new CmsWebApp(); - Component cmsWebAppC = new Component.Builder<>(cmsWebApp) // - .addType(ApplicationConfiguration.class) // - .addType(CmsWebApp.class) // - .addDependency(cmsAppC.getType(CmsApp.class), cmsWebApp::setCmsApp, null) // - .build(register); - - RapJettyServer rwtRunner = new RapJettyServer(); - Component rwtRunnerC = new Component.Builder<>(rwtRunner) // - .addActivation(rwtRunner::start) // - .addDeactivation(rwtRunner::stop) // - .addType(CmsJettyServer.class) // - .addDependency(register.getSingleton(CmsState.class), rwtRunner::setCmsState, null) // - .addDependency(cmsWebAppC.getType(CmsWebApp.class), rwtRunner::setCmsWebApp, null) // - .build(register); - } - } - - }; - Runtime.getRuntime().addShutdownHook(new Thread(() -> staticCms.stop(), "Static CMS Shutdown")); - staticCms.start(); - - long jvmUptime = ManagementFactory.getRuntimeMXBean().getUptime(); - System.out.println("Static CMS available in " + jvmUptime + " ms."); - - if (ui) { - try { - // open browser in app mode - Thread.sleep(2000);// wait for RWT to be ready - String browserCommand = "google-chrome --app=http://localhost:" - + staticCms.getComponentRegister().getObject(CmsJettyServer.class).getHttpPort() + "/data"; - Runtime.getRuntime().exec(browserCommand); - } catch (InterruptedException | IOException e) { - e.printStackTrace(); - } - } - - staticCms.waitForStop(); - - return null; - } - - @Override - public String getDescription() { - return "Launch a static CMS."; - } - - } -}