Example usage for org.apache.commons.collections.set ListOrderedSet size

List of usage examples for org.apache.commons.collections.set ListOrderedSet size

Introduction

In this page you can find the example usage for org.apache.commons.collections.set ListOrderedSet size.

Prototype

int size();

Source Link

Document

Returns the number of elements in this set (its cardinality).

Usage

From source file:net.sourceforge.vulcan.core.support.ProjectImporterImpl.java

@Override
public void createProjectsForUrl(String startUrl, String username, String password, boolean createSubprojects,
        NameCollisionResolutionMode nameCollisionResolutionMode, String[] schedulerNames, Set<String> labels,
        ProjectImportStatusDto statusDto) throws ConfigException, StoreException, DuplicateNameException {
    final List<RepositoryAdaptorPlugin> repositoryPlugins = pluginManager
            .getPlugins(RepositoryAdaptorPlugin.class);
    final List<BuildToolPlugin> buildToolPlugins = pluginManager.getPlugins(BuildToolPlugin.class);

    final ListOrderedSet urls = new ListOrderedSet();
    urls.add(startUrl);//  w  ww .j  a  v  a2s. c  om

    final List<ProjectConfigDto> newProjects = new ArrayList<ProjectConfigDto>();
    final List<ProjectRepositoryConfigurator> repoConfigurators = new ArrayList<ProjectRepositoryConfigurator>();

    final List<String> existingProjectNames = new ArrayList<String>(stateManager.getProjectConfigNames());

    for (int i = 0; i < urls.size(); i++) {
        final String url = (String) urls.get(i);

        if (statusDto != null) {
            statusDto.setCurrentUrl(url);
            statusDto.setNumProjectsCreated(newProjects.size());
            statusDto.setNumRemainingModules(urls.size() - i);
        }

        final ProjectConfigDto projectConfig = new ProjectConfigDto();
        projectConfig.setSchedulerNames(schedulerNames);

        final ProjectRepositoryConfigurator repoConfigurator = createRepositoryConfiguratorForUrl(
                repositoryPlugins, projectConfig, url, username, password);

        File buildSpecFile = null;
        final ProjectBuildConfigurator buildConfigurator;

        try {
            buildSpecFile = downloadBuildSpecFile(repoConfigurator);
            final Document xmlDocument = tryParse(buildSpecFile);
            buildConfigurator = createBuildToolConfigurator(buildToolPlugins, projectConfig, url, buildSpecFile,
                    xmlDocument);
        } finally {
            deleteIfPresent(buildSpecFile);
        }

        final boolean shouldCreate = configureProject(projectConfig, repoConfigurator, buildConfigurator, url,
                existingProjectNames, nameCollisionResolutionMode, createSubprojects, labels);

        if (createSubprojects) {
            final List<String> subprojectUrls = buildConfigurator.getSubprojectUrls();

            makeAbsolute(url, subprojectUrls);

            if (subprojectUrls != null) {
                urls.addAll(subprojectUrls);
            }
        }

        if (shouldCreate) {
            existingProjectNames.add(projectConfig.getName());

            newProjects.add(projectConfig);
            repoConfigurators.add(repoConfigurator);

            log.info("Configured project " + projectConfig.getName());
        } else {
            log.info("Skipping project " + projectConfig.getName());
        }
    }

    final Map<String, PluginConfigDto> pluginConfigs = new HashMap<String, PluginConfigDto>();

    for (int i = 0; i < newProjects.size(); i++) {
        final ProjectConfigDto projectConfig = newProjects.get(i);
        try {
            final String pluginId = projectConfig.getRepositoryAdaptorPluginId();
            PluginConfigDto pluginConfig = pluginConfigs.get(pluginId);

            if (pluginConfig == null) {
                pluginConfig = (PluginConfigDto) pluginManager.getPluginConfigInfo(pluginId).copy();
            }

            if (repoConfigurators.get(i).updateGlobalConfig(pluginConfig)) {
                pluginConfigs.put(pluginId, pluginConfig);
            }
        } catch (PluginNotConfigurableException ignore) {
        } catch (PluginNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    final ConfigUpdatesDto updates = new ConfigUpdatesDto();

    updates.setNewProjectConfigs(newProjects);

    if (!pluginConfigs.isEmpty()) {
        updates.setModifiedPluginConfigs(pluginConfigs);
    }

    try {
        stateManager.applyMultipleUpdates(updates);
    } catch (PluginNotFoundException e) {
        // Very unlikely...
        throw new RuntimeException(e);
    }

    log.info("Successfully imported project(s) for URL " + startUrl);
}