private ComponentManager copyComponentManager(String id)
      throws UndefinedComponentManagerException {
    ComponentManager componentManager = null;

    for (Iterator iterator = componentManagers.iterator(); iterator.hasNext(); ) {
      componentManager = (ComponentManager) iterator.next();

      if (id.equals(componentManager.getId())) {
        return componentManager.copy();
      }
    }

    throw new UndefinedComponentManagerException(
        "Specified component manager cannot be found: " + id);
  }