docs: private synchronized void appendXMLProperty(Document doc, Element conf,
  	                                            String propertyName) {
  		// skip writing if given property name is empty or null
  		if (!Strings.isNullOrEmpty(propertyName)) {
  			String value = properties.getProperty(propertyName);
  			if (value != null) {
  				Element propNode = doc.createElement("property");
  				conf.appendChild(propNode);
  
  				Element nameNode = doc.createElement("name");
  				nameNode.appendChild(doc.createTextNode(propertyName));
  				propNode.appendChild(nameNode);
  
  				Element valueNode = doc.createElement("value");
  				valueNode.appendChild(doc.createTextNode(
  						properties.getProperty(propertyName)));
  				propNode.appendChild(valueNode);
  
  				Element finalNode = doc.createElement("final");
  				finalNode.appendChild(doc.createTextNode(
  						String.valueOf(finalParameters.contains(propertyName))));
  				propNode.appendChild(finalNode);
  
  				if (updatingResource != null) {
  					String[] sources = updatingResource.get(propertyName);
  					if(sources != null) {
  						for(String s : sources) {
  							Element sourceNode = doc.createElement("source");
  							sourceNode.appendChild(doc.createTextNode(s));
  							propNode.appendChild(sourceNode);
  						}
  					}
  				}
  			}
  		}
  	}