public void doExecute()

in src/main/java/org/apache/easyant/tasks/ConfigureBuildScopedRepository.java [49:109]


    public void doExecute() throws BuildException {
        String targetDirectory = getTarget();

        // be sure that we have an absolute path
        File targetDir = new File(targetDirectory);
        targetDirectory = targetDir.getAbsolutePath();

        String buildScopeRepositoryName = getName();

        final String DEFAULT_BUILD_SCOPED_REPOSITORY_DIR = targetDirectory + "/repository/" + buildScopeRepositoryName;
        final String DEFAULT_CACHE_BUILD_SCOPED_REPO = targetDirectory + "/cache/" + buildScopeRepositoryName;
        getProject().log("Registering build scoped repository in " + DEFAULT_BUILD_SCOPED_REPOSITORY_DIR,
                Project.MSG_DEBUG);
        final String CACHENAME = "build-scoped-cache-" + buildScopeRepositoryName;
        log("Registering build scope repository : " + getName() + " in " + DEFAULT_BUILD_SCOPED_REPOSITORY_DIR,
                Project.MSG_DEBUG);
        // Get the project ivy instance
        IvySettings settings = getSettings();

        // Create a cache for build scoped repository
        File cacheDir = new File(DEFAULT_CACHE_BUILD_SCOPED_REPO);
        EasyAntRepositoryCacheManager rcm = new EasyAntRepositoryCacheManager(CACHENAME, settings, cacheDir);
        rcm.setUseOrigin(true); // no need to copy temporary build artifacts
                                // into temporary cache.
        // Register the repository cache
        settings.addConfigured(rcm);

        // Create the build scoped repository
        FileSystemResolver buildRepository = new FileSystemResolver();
        buildRepository.addArtifactPattern(DEFAULT_BUILD_SCOPED_REPOSITORY_DIR + getArtifactPattern());
        buildRepository.addIvyPattern(DEFAULT_BUILD_SCOPED_REPOSITORY_DIR + getIvyPattern());

        // bind to the repocache
        buildRepository.setCache(CACHENAME);
        buildRepository.setName(buildScopeRepositoryName);
        if (isDictator()) {
            settings.setDictatorResolver(buildRepository);
        } else if (isGenerateWrapperResoler()) {

            // Search the default resolver after the build-scoped repo
            DependencyResolver dr = settings.getDefaultResolver();
            if (dr == null) {
                throw new BuildException("Unable to find a default resolver");
            }

            // replace the default resolver with a chain resolver, which first
            // searches
            // in the build repository, then in the old default.
            ChainResolver resolver = new ChainResolver();
            resolver.setName(dr.getName()); // same name as old default
            resolver.setReturnFirst(true);
            resolver.add(buildRepository);
            resolver.add(dr);
            dr.setName("delegate." + dr.getName()); // give old default a new name

            settings.addResolver(dr);
            settings.addResolver(resolver);
        }
        settings.addResolver(buildRepository);
        log(getName() + " registration succeeded", Project.MSG_DEBUG);
    }