code: private static <T> T createCustomComponent(Class<T> componentType, String componentSpec,
              Map<String, String> configProperties, IPluginRegistry pluginRegistry, T defaultComponent) throws Exception {
          if (componentSpec == null && defaultComponent == null) {
              throw new IllegalArgumentException("Null component type."); //$NON-NLS-1$
          }
          if (componentSpec == null && defaultComponent != null) {
              return defaultComponent;
          }
  
          if (componentSpec.startsWith("class:")) { //$NON-NLS-1$
              Class<?> c = ReflectionUtils.loadClass(componentSpec.substring("class:".length())); //$NON-NLS-1$
              return createCustomComponent(componentType, c, configProperties);
          } else if (componentSpec.startsWith("plugin:")) { //$NON-NLS-1$
              PluginCoordinates coordinates = PluginCoordinates.fromPolicySpec(componentSpec);
              if (coordinates == null) {
                  throw new IllegalArgumentException("Invalid plugin component spec: " + componentSpec); //$NON-NLS-1$
              }
              int ssidx = componentSpec.indexOf('/');
              if (ssidx == -1) {
                  throw new IllegalArgumentException("Invalid plugin component spec: " + componentSpec); //$NON-NLS-1$
              }
              String classname = componentSpec.substring(ssidx + 1);
              Plugin plugin = pluginRegistry.loadPlugin(coordinates);
              PluginClassLoader classLoader = plugin.getLoader();
              Class<?> class1 = classLoader.loadClass(classname);
              return createCustomComponent(componentType, class1, configProperties);
          } else {
              Class<?> c = ReflectionUtils.loadClass(componentSpec);
              return createCustomComponent(componentType, c, configProperties);
          }
      }
docs: Creates a custom component from information found in the properties file.
  @param componentType
  @param componentSpec
  @param configProperties
  @param pluginRegistry