]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - swt/rap/org.argeo.cms.swt.rap.cli/src/org/argeo/cms/swt/rap/cli/CmsRapCli.java
Move RAP and RCP cli from Argeo Commons to SLC
[lgpl/argeo-commons.git] / swt / rap / org.argeo.cms.swt.rap.cli / src / org / argeo / cms / swt / rap / cli / CmsRapCli.java
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 (file)
index 5191b77..0000000
+++ /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<String> {
-               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<String> 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<CmsUserApp> 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<CmsWebApp> 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<RapJettyServer> 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.";
-               }
-
-       }
-}