code: public static @NonNull PluginManager createDefault(@NonNull Jenkins jenkins) {
          String pmClassName = SystemProperties.getString(CUSTOM_PLUGIN_MANAGER);
          if (!StringUtils.isBlank(pmClassName)) {
              LOGGER.log(FINE, String.format("Use of custom plugin manager [%s] requested.", pmClassName));
              try {
                  final Class<? extends PluginManager> klass = Class.forName(pmClassName).asSubclass(PluginManager.class);
                  // Iteration is in declaration order
                  for (PMConstructor c : PMConstructor.values()) {
                      PluginManager pm = c.create(klass, jenkins);
                      if (pm != null) {
                          return pm;
                      }
                  }
                  LOGGER.log(WARNING, String.format("Provided custom plugin manager [%s] does not provide any of the suitable constructors. Using default.", pmClassName));
              } catch(NullPointerException e) {
                  // Class.forName and Class.getConstructor are supposed to never return null though a broken ClassLoader
                  // could break the contract. Just in case we introduce this specific catch to avoid polluting the logs with NPEs.
                  LOGGER.log(WARNING, String.format("Unable to instantiate custom plugin manager [%s]. Using default.", pmClassName));
              } catch(ClassCastException e) {
                  LOGGER.log(WARNING, String.format("Provided class [%s] does not extend PluginManager. Using default.", pmClassName));
              } catch(Exception e) {
                  LOGGER.log(WARNING, String.format("Unable to instantiate custom plugin manager [%s]. Using default.", pmClassName), e);
              }
          }
          return new LocalPluginManager(jenkins);
      }
docs: Creates the {@link PluginManager} to use if no one is provided to a {@link Jenkins} object.
  This method will be called after creation of {@link Jenkins} object, but before it is fully initialized.
  @param jenkins Jenkins Instance.
  @return Plugin manager to use. If no custom class is configured or in case of any error, the default
  {@link LocalPluginManager} is returned.