code: private static Object getPluginImplementationViaProperty(Class<?> pluginClass) {
  		String className = pluginClass.getCanonicalName();
  		if (className == null) {
  			throw new IllegalArgumentException("Class " + pluginClass + " does not have a canonical name!");
  		}
  		// Check system properties for plugin class.
  		// This will only happen during system startup thus it's okay to use the synchronized
  		// System.getProperties as it will never get called in normal operations.
  		String implementingClass = System.getProperty(PROPERTY_PREFIX + className);
  		if (implementingClass != null) {
  			try {
  				Class<?> cls = Class.forName(implementingClass);
  				// narrow the scope (cast) to the type we're expecting
  				cls = cls.asSubclass(pluginClass);
  				return cls.newInstance();
  			} catch (ClassCastException e) {
  				throw new RuntimeException(className + " implementation is not an instance of " + className + ": " + implementingClass);
  			} catch (ClassNotFoundException e) {
  				throw new RuntimeException(className + " implementation class not found: " + implementingClass, e);
  			} catch (InstantiationException e) {
  				throw new RuntimeException(className + " implementation not able to be instantiated: " + implementingClass, e);
  			} catch (IllegalAccessException e) {
  				throw new RuntimeException(className + " implementation not able to be accessed: " + implementingClass, e);
  			}
  		} else {
  			return null;
  		}
  	}
docs: Returns an implementation of the given class using the system properties as a registry.