docs: @Override
      protected DefaultIndexBuilder fillIndexBuilder(Path path) throws Exception {
          final KieModule module = moduleService.resolveModule(Paths.convert(path));
          if (module == null) {
              logger.error("Unable to index " + path.toUri().toString() + ": module could not be resolved.");
              return null;
          }
  
          // responsible for basic index info: project name, branch, etc
          final DefaultIndexBuilder builder = getIndexBuilder(path,
                                                              module);
          String bpmnStr = ioService.readAllString(path);
          ClassLoader projectClassLoader = getProjectClassLoader(module);
  
          XmlProcessReader xmlReader = new XmlProcessReader(modules,
                                                            projectClassLoader);
          List<Process> processes = xmlReader.read(new StringReader(bpmnStr));
          if (processes != null) {
              try {
  
                  // create process data list and validate each
                  List<DesignerProcessDataEventListener> processDataList = new ArrayList<>();
                  processes.forEach(
                          process -> {
                              DesignerProcessDataEventListener processData
                                      = (DesignerProcessDataEventListener) process.getMetaData().get(DesignerProcessDataEventListener.NAME);
                              processDataList.add(processData);
  
                              logger.info("Validating process with id: " + process.getId());
                              ProcessValidationError[] errors = RuleFlowProcessValidator.getInstance().validateProcess((RuleFlowProcess) process);
                              for (ProcessValidationError error : errors) {
                                  logger.warn("Process validation error: " + error.getMessage());
                              }
  
                              xmlReader.getProcessBuildData().onBuildComplete(process);
                          });
  
                  for (DesignerProcessDataEventListener processData : processDataList) {
                      addReferencedResourcesToIndexBuilder(builder,
                                                           processData);
                      builder.setPackageName(processData.getProcess().getPackageName());
                  }
              } catch (Throwable t) {
                  logger.warn("Exception during indexing: " + t.getMessage());
              }
          } else {
              logger.warn("No process was found in file: " + path.toUri());
          }
  
          return builder;
      }