code: private Resource parseResourceNode(Xpp3Dom rn) {
      Resource r = new Resource();
      if (rn.getChild("directory") != null) {
        r.setDirectory(getValue(getProject(), rn.getChild("directory")));
      }
      if (rn.getChild("filtering") != null) {
        r.setFiltering((Boolean.valueOf(getValue(getProject(), rn.getChild("filtering")))));
      }
      if (rn.getChild("targetPath") != null) {
        r.setTargetPath(rn.getChild("targetPath").getValue());
      }
  
      if (rn.getChild("excludes") != null) {
        List<String> excludes = new ArrayList<String>();
        Xpp3Dom[] excludeNodes = rn.getChild("excludes").getChildren("exclude");
        for (Xpp3Dom excludeNode : excludeNodes) {
          if (excludeNode != null && excludeNode.getValue() != null) {
            excludes.add(getValue(getProject(), excludeNode));
          }
        }
        r.setExcludes(excludes);
      }
      if (rn.getChild("includes") != null) {
        List<String> includes = new ArrayList<String>();
        Xpp3Dom[] includeNodes = rn.getChild("includes").getChildren("include");
        for (Xpp3Dom includeNode : includeNodes) {
          if (includeNode != null && includeNode.getValue() != null) {
            includes.add(getValue(getProject(), includeNode));
          }
        }
        r.setIncludes(includes);
      }
  
      return r;
    }
docs: Parse resouce node content.
  
  @param rn resource node content
  @return resource parsed