|
|
@@ -0,0 +1,55 @@
|
|
|
+package io.senslog.app;
|
|
|
+
|
|
|
+import com.beust.jcommander.JCommander;
|
|
|
+import com.beust.jcommander.Parameter;
|
|
|
+import cz.hsrs.servlet.feeder.FeederServlet;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.logging.Logger;
|
|
|
+
|
|
|
+public final class Parameters {
|
|
|
+
|
|
|
+ private static final Logger logger = Logger.getLogger(FeederServlet.class.getSimpleName());
|
|
|
+
|
|
|
+ private JCommander jCommander;
|
|
|
+
|
|
|
+ public static Parameters parse(String... args) throws IOException {
|
|
|
+ logger.info("Parsing input parameters " + Arrays.toString(args));
|
|
|
+
|
|
|
+ Parameters parameters = new Parameters();
|
|
|
+ JCommander jCommander = JCommander.newBuilder()
|
|
|
+ .addObject(parameters).build();
|
|
|
+ parameters.jCommander = jCommander;
|
|
|
+
|
|
|
+ jCommander.parse(args);
|
|
|
+
|
|
|
+ if (parameters.pathPrefix.charAt(0) != '/') {
|
|
|
+ throw new IllegalArgumentException("Path prefix has to start with '/'.");
|
|
|
+ }
|
|
|
+
|
|
|
+ logger.info("Parsing input parameters were parsed successfully.");
|
|
|
+ return parameters;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Parameter(names = {"-h", "-help"}, help = true)
|
|
|
+ private boolean help = false;
|
|
|
+
|
|
|
+ @Parameter(names = {"-p", "--port"}, description = "Server port.", required = true)
|
|
|
+ private int port;
|
|
|
+
|
|
|
+ @Parameter(names = {"-f", "--prefix"}, description = "Path prefix of the server.")
|
|
|
+ private String pathPrefix = "/";
|
|
|
+
|
|
|
+ public int getPort() {
|
|
|
+ return port;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getPathPrefix() {
|
|
|
+ return pathPrefix;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void printHelp() {
|
|
|
+ jCommander.usage();
|
|
|
+ }
|
|
|
+}
|