/**
   * The method takes the an inputstream as an input and wraps it around with xml tags, sets the xml
   * encoding and xml version specified in the physical sources config.
   *
   * @param compositeInputStream The inputstream to be wrapped with the xml tags
   * @return
   */
  private InputStream wrapStreamWithXmlTags(InputStream compositeInputStream) {

    String xmlVersion = _pConfig.getXmlVersion();
    String xmlEncoding = _pConfig.getXmlEncoding();
    String xmlStart =
        "<?xml version=\"" + xmlVersion + "\" encoding=\"" + xmlEncoding + "\"?>\n<root>";
    String xmlEnd = "</root>";
    _log.info("The xml start tag used is:" + xmlStart);
    List xmlTagsList =
        Arrays.asList(
            new InputStream[] {
              new ByteArrayInputStream(xmlStart.getBytes(Charset.forName(xmlEncoding))),
              compositeInputStream,
              new ByteArrayInputStream(xmlEnd.getBytes(Charset.forName(xmlEncoding))),
            });
    Enumeration<InputStream> streams = Collections.enumeration(xmlTagsList);
    SequenceInputStream seqStream = new SequenceInputStream(streams);
    return seqStream;
  }