code: @Override
      String[] getProgramArguments() throws IOException {
          LOGGER.entering();
          List<String> args = new LinkedList<>(Arrays.asList(super.getProgramArguments()));
  
          // add the defaults which we don't already have a value for
          for (Entry<String, JsonElement> entry : defaultArgs.entrySet()) {
              String key = entry.getKey();
              if (!args.contains(key)) {
                  args.add(key);
                  String val = defaultArgs.get(key).getAsString();
                  if (StringUtils.isNotBlank(val)) {
                      args.add(val);
                  }
              }
          }
  
          removeSeLionArgumentsAndValues(args);
  
          LOGGER.exiting(args.toString());
          return args.toArray(new String[args.size()]);
      }
docs: Get program arguments to pass
  
  @return the program arguments to pass represented as an array of {@link String}
  @throws IOException