code: public static void prepareResourcesToInject(Props props, String workingDir) {
      try {
        Configuration conf = new Configuration(false);
  
        // First, inject a series of Azkaban links. These are equivalent to
        // CommonJobProperties.[EXECUTION,WORKFLOW,JOB,JOBEXEC,ATTEMPT]_LINK
        addHadoopProperties(props);
  
        // Next, automatically inject any properties that begin with the
        // designated injection prefix.
        Map<String, String> confProperties = props.getMapByPrefix(INJECT_PREFIX);
  
        for (Map.Entry<String, String> entry : confProperties.entrySet()) {
          String confKey = entry.getKey().replace(INJECT_PREFIX, "");
          String confVal = entry.getValue();
          if (confVal != null) {
            conf.set(confKey, confVal);
          }
        }
  
        // Now write out the configuration file to inject.
        File file = getConfFile(props, workingDir, INJECT_FILE);
        OutputStream xmlOut = new FileOutputStream(file);
        conf.writeXml(xmlOut);
        xmlOut.close();
      } catch (Throwable e) {
        _logger.error("Encountered error while preparing the Hadoop configuration resource file", e);
      }
    }
docs: Writes out the XML configuration file that will be injected by the client
  as a configuration resource.
  <p>
  This file will include a series of links injected by Azkaban as well as
  any job properties that begin with the designated injection prefix.
  
  @param props The Azkaban properties
  @param workingDir The Azkaban job working directory