]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.cli/src/org/argeo/cms/cli/StaticCmsLaunch.java
1 package org
.argeo
.cms
.cli
;
3 import java
.lang
.management
.ManagementFactory
;
4 import java
.nio
.file
.Path
;
5 import java
.nio
.file
.Paths
;
8 import org
.apache
.commons
.cli
.CommandLine
;
9 import org
.apache
.commons
.cli
.Option
;
10 import org
.apache
.commons
.cli
.Options
;
11 import org
.argeo
.api
.cli
.DescribedCommand
;
12 import org
.argeo
.cms
.runtime
.StaticCms
;
14 public class StaticCmsLaunch
implements DescribedCommand
<String
> {
15 private Option dataOption
;
18 public Options
getOptions() {
19 Options options
= new Options();
20 dataOption
= Option
.builder().longOpt("data").hasArg().required()
21 .desc("path to the writable data area (mandatory)").build();
22 options
.addOption(dataOption
);
27 public String
apply(List
<String
> args
) {
28 CommandLine cl
= toCommandLine(args
);
29 String dataPath
= cl
.getOptionValue(dataOption
);
31 Path instancePath
= Paths
.get(dataPath
);
32 System
.setProperty("osgi.instance.area", instancePath
.toUri().toString());
33 System
.setProperty("argeo.http.port", "0");
35 StaticCms staticCms
= new StaticCms();
36 Runtime
.getRuntime().addShutdownHook(new Thread(() -> staticCms
.stop(), "Static CMS Shutdown"));
39 long jvmUptime
= ManagementFactory
.getRuntimeMXBean().getUptime();
40 System
.out
.println("Static CMS available in " + jvmUptime
+ " ms.");
42 staticCms
.waitForStop();
48 public String
getDescription() {
49 return "Launch a static CMS";