code: @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
      try {
        return processImpl(annotations, roundEnv);
      } catch (Exception e) {
        // We don't allow exceptions of any kind to propagate to the compiler
        StringWriter writer = new StringWriter();
        e.printStackTrace(new PrintWriter(writer));
        fatalError(writer.toString());
        return true;
      }
    }
docs: <ol>
  <li> For each class annotated with {@link AutoService}<ul>
  <li> Verify the {@link AutoService} interface value is correct
  <li> Categorize the class by its service interface
  </ul>
  
  <li> For each {@link AutoService} interface <ul>
  <li> Create a file named {@code META-INF/services/<interface>}
  <li> For each {@link AutoService} annotated class for this interface <ul>
  <li> Create an entry in the file
  </ul>
  </ul>
  </ol>