docs: public static JoseFactory instance() {
          if (instance == null) {
              synchronized (JoseFactory.class) {
                  if (instance != null) {
                      return instance;
                  }
  
                  ClassLoader cl = AccessController.doPrivileged((PrivilegedAction<ClassLoader>) () -> Thread.currentThread().getContextClassLoader());
                  if (cl == null) {
                      cl = JoseFactory.class.getClassLoader();
                  }
  
                  JoseFactory newInstance = loadSpi(cl);
  
                  if (newInstance == null && cl != JoseFactory.class.getClassLoader()) {
                      cl = JoseFactory.class.getClassLoader();
                      newInstance = loadSpi(cl);
                  }
                  if (newInstance == null) {
                      newInstance = new DefaultJoseFactory();
                  }
  
                  instance = newInstance;
              }
          }
  
          return instance;
      }