code: protected void addComponentsFromPath(String fileName) throws CmsConfigurationException {
  
          CmsParameterConfiguration configuration;
          try {
              configuration = getComponentsProperties(fileName);
          } catch (FileNotFoundException e) {
              if (LOG.isDebugEnabled()) {
                  LOG.debug(e.getLocalizedMessage(), e);
              }
              return;
          }
  
          for (String componentId : configuration.getList(PROPKEY_COMPONENTS)) {
              CmsSetupComponent componentBean = new CmsSetupComponent();
              componentBean.setId(componentId);
              componentBean.setName(configuration.get(PROPKEY_COMPONENT + componentId + PROPKEY_NAME));
              componentBean.setDescription(configuration.get(PROPKEY_COMPONENT + componentId + PROPKEY_DESCRIPTION));
              componentBean.setModulesRegex(configuration.get(PROPKEY_COMPONENT + componentId + PROPKEY_MODULES));
              componentBean.setDependencies(
                  configuration.getList(PROPKEY_COMPONENT + componentId + PROPKEY_DEPENDENCIES));
              componentBean.setPosition(
                  configuration.getInteger(PROPKEY_COMPONENT + componentId + PROPKEY_POSITION, DEFAULT_POSITION));
              componentBean.setChecked(
                  configuration.getBoolean(PROPKEY_COMPONENT + componentId + PROPKEY_CHECKED, false));
              m_components.addIdentifiableObject(componentBean.getId(), componentBean, componentBean.getPosition());
          }
      }
docs: Reads all components from the given location, a folder or a zip file.<p>
  
  @param fileName the location to read the components from
  
  @throws CmsConfigurationException if something goes wrong