docs: private List<String> getRootfiles( ZipInputStream zipStream ) throws Exception {
          List<String> rootfiles = new ArrayList<>();
          ZipEntry entry = null;
          while ((entry = zipStream.getNextEntry()) != null) {
              String entryName = entry.getName();
              if (entryName.endsWith("META-INF/container.xml")) {
                  ByteArrayOutputStream content = getZipEntryContent(zipStream, entry);
  
                  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                  DocumentBuilder builder = factory.newDocumentBuilder();
                  Document doc = builder.parse(new ByteArrayInputStream(content.toByteArray()));
  
                  XPathFactory xPathfactory = XPathFactory.newInstance();
                  XPath xpath = xPathfactory.newXPath();
                  XPathExpression expr = xpath.compile("/container/rootfiles/rootfile");
                  NodeList rootfileNodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
  
                  for (int i = 0; i < rootfileNodes.getLength(); i++) {
                      Node node = rootfileNodes.item(i);
                      rootfiles.add(node.getAttributes().getNamedItem("full-path").getNodeValue());
                  }
                  break;
              }
          }
          return rootfiles;
      }