Source:
public static UpdateCenter createUpdateCenter(@CheckForNull UpdateCenterConfiguration config) { String requiredClassName = System.getProperty(UpdateCenter.class.getName()+".className", null); if (requiredClassName == null) { LOGGER.log(Level.FINE, "Using the default Update Center implementation"); return createDefaultUpdateCenter(config); } LOGGER.log(Level.INFO, "Using the custom update center: {0}", requiredClassName); try { final Class<?> clazz = Class.forName(requiredClassName).asSubclass(UpdateCenter.class); if (!UpdateCenter.class.isAssignableFrom(clazz)) { LOGGER.log(Level.SEVERE, "The specified custom Update Center {0} is not an instance of {1}. Falling back to default.", new Object[] {requiredClassName, UpdateCenter.class.getName()}); return createDefaultUpdateCenter(config); } final Class<? extends UpdateCenter> ucClazz = clazz.asSubclass(UpdateCenter.class); final Constructor<? extends UpdateCenter> defaultConstructor = ucClazz.getConstructor(); final Constructor<? extends UpdateCenter> configConstructor = ucClazz.getConstructor(UpdateCenterConfiguration.class); LOGGER.log(Level.FINE, "Using the constructor {0} Update Center configuration for {1}", new Object[] {config != null ? "with" : "without", requiredClassName}); return config != null ? configConstructor.newInstance(config) : defaultConstructor.newInstance(); } catch(ClassCastException e) { LOGGER.log(WARNING, "UpdateCenter class {0} does not extend hudson.model.UpdateCenter. Using default.", requiredClassName); } catch(NoSuchMethodException e) { LOGGER.log(WARNING, String.format("UpdateCenter class {0} does not define one of the required constructors. Using default", requiredClassName), e); } catch(Exception e) { LOGGER.log(WARNING, String.format("Unable to instantiate custom plugin manager [%s]. Using default.", requiredClassName), e); } return createDefaultUpdateCenter(config); }

Target:
public static UpdateCenter createUpdateCenter(@CheckForNull UpdateCenterConfiguration config) { String requiredClassName = SystemProperties.getString(UpdateCenter.class.getName()+".className", null); if (requiredClassName == null) { LOGGER.log(Level.FINE, "Using the default Update Center implementation"); return createDefaultUpdateCenter(config); } LOGGER.log(Level.FINE, "Using the custom update center: {0}", requiredClassName); try { final Class<?> clazz = Class.forName(requiredClassName).asSubclass(UpdateCenter.class); if (!UpdateCenter.class.isAssignableFrom(clazz)) { LOGGER.log(Level.SEVERE, "The specified custom Update Center {0} is not an instance of {1}. Falling back to default.", new Object[] {requiredClassName, UpdateCenter.class.getName()}); return createDefaultUpdateCenter(config); } final Class<? extends UpdateCenter> ucClazz = clazz.asSubclass(UpdateCenter.class); final Constructor<? extends UpdateCenter> defaultConstructor = ucClazz.getConstructor(); final Constructor<? extends UpdateCenter> configConstructor = ucClazz.getConstructor(UpdateCenterConfiguration.class); LOGGER.log(Level.FINE, "Using the constructor {0} Update Center configuration for {1}", new Object[] {config != null ? "with" : "without", requiredClassName}); return config != null ? configConstructor.newInstance(config) : defaultConstructor.newInstance(); } catch(ClassCastException e) { LOGGER.log(WARNING, "UpdateCenter class {0} does not extend hudson.model.UpdateCenter. Using default.", requiredClassName); } catch(NoSuchMethodException e) { LOGGER.log(WARNING, String.format("UpdateCenter class {0} does not define one of the required constructors. Using default", requiredClassName), e); } catch(Exception e) { LOGGER.log(WARNING, String.format("Unable to instantiate custom plugin manager [%s]. Using default.", requiredClassName), e); } return createDefaultUpdateCenter(config); }