in plc4j/tools/opcua-server/src/main/java/org/apache/plc4x/java/opcuaserver/OPCUAServer.java [151:201]
private void readCommandLineArgs(String[] args) {
Options options = new Options();
Option input = new Option("c", "configfile", true, "configuration file");
input.setRequired(true);
options.addOption(input);
Option setPassword = new Option("s", "set-passwords", false, "Reset passwords");
setPassword.setRequired(false);
options.addOption(setPassword);
Option interactive = new Option("i", "interactive", false, "Interactively get asked to setup the config file from the console");
interactive.setRequired(false);
options.addOption(interactive);
Option test = new Option("t", "test", false, "Used for testing the OPC UA Server");
test.setRequired(false);
options.addOption(test);
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
cmd = null;
try {
cmd = parser.parse(options, args);
} catch (ParseException e) {
logger.info(e.getMessage());
formatter.printHelp("Plc4x OPC UA Server", options);
System.exit(1);
}
String configFile = cmd.getOptionValue("configfile");
logger.info("Reading configuration file: {}", configFile);
//Read Config File
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.findAndRegisterModules();
try {
config = mapper.readValue(new File(configFile), Configuration.class);
config.setConfigFile(configFile);
//Checking if the security directory has been configured.
if (config.getDir() == null) {
throw new IOException("Please set the dir in the config file");
}
readPasswordConfig();
} catch (IOException e) {
logger.info("Error parsing config file", e);
System.exit(1);
}
}