Search in sources :

Example 76 with Material

use of com.thoughtworks.go.domain.materials.Material in project gocd by gocd.

the class MaterialUpdateService method onTimer.

public void onTimer() {
    for (MaterialSource materialSource : materialSources) {
        Set<Material> materialsForUpdate = materialSource.materialsForUpdate();
        LOGGER.debug("[Material Update] [On Timer] materials IN-PROGRESS: {}, ALL-MATERIALS: {}", inProgress, materialsForUpdate);
        for (Material material : materialsForUpdate) {
            updateMaterial(material);
        }
    }
}
Also used : Material(com.thoughtworks.go.domain.materials.Material) DependencyMaterial(com.thoughtworks.go.config.materials.dependency.DependencyMaterial) GitMaterial(com.thoughtworks.go.config.materials.git.GitMaterial)

Example 77 with Material

use of com.thoughtworks.go.domain.materials.Material in project gocd by gocd.

the class MaterialUpdateService method notifyMaterialsForUpdate.

public void notifyMaterialsForUpdate(Username username, Object params, HttpLocalizedOperationResult result) {
    if (!goConfigService.isUserAdmin(username)) {
        result.unauthorized(LocalizedMessage.string("API_ACCESS_UNAUTHORIZED"), HealthStateType.unauthorised());
        return;
    }
    final Map attributes = (Map) params;
    if (attributes.containsKey(MaterialUpdateService.TYPE)) {
        PostCommitHookMaterialType materialType = postCommitHookMaterialType.toType((String) attributes.get(MaterialUpdateService.TYPE));
        if (!materialType.isKnown()) {
            result.badRequest(LocalizedMessage.string("API_BAD_REQUEST"));
            return;
        }
        final PostCommitHookImplementer materialTypeImplementer = materialType.getImplementer();
        final CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig();
        Set<Material> allUniquePostCommitSchedulableMaterials = materialConfigConverter.toMaterials(cruiseConfig.getAllUniquePostCommitSchedulableMaterials());
        final Set<Material> prunedMaterialList = materialTypeImplementer.prune(allUniquePostCommitSchedulableMaterials, attributes);
        if (prunedMaterialList.isEmpty()) {
            result.notFound(LocalizedMessage.string("MATERIAL_SUITABLE_FOR_NOTIFICATION_NOT_FOUND"), HealthStateType.general(HealthStateScope.GLOBAL));
            return;
        }
        for (Material material : prunedMaterialList) {
            updateMaterial(material);
        }
        result.accepted(LocalizedMessage.string("MATERIAL_SCHEDULE_NOTIFICATION_ACCEPTED"));
    } else {
        result.badRequest(LocalizedMessage.string("API_BAD_REQUEST"));
    }
}
Also used : Material(com.thoughtworks.go.domain.materials.Material) DependencyMaterial(com.thoughtworks.go.config.materials.dependency.DependencyMaterial) GitMaterial(com.thoughtworks.go.config.materials.git.GitMaterial) ConcurrentMap(java.util.concurrent.ConcurrentMap) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) PostCommitHookImplementer(com.thoughtworks.go.server.materials.postcommit.PostCommitHookImplementer) PostCommitHookMaterialType(com.thoughtworks.go.server.materials.postcommit.PostCommitHookMaterialType) CruiseConfig(com.thoughtworks.go.config.CruiseConfig)

Example 78 with Material

use of com.thoughtworks.go.domain.materials.Material in project gocd by gocd.

the class PluggableSCMPostCommitHookImplementer method prune.

@Override
public Set<Material> prune(Set<Material> materials, Map params) {
    HashSet<Material> prunedCollection = new HashSet<>();
    String paramSCMName = (String) params.get(SCM_NAME);
    if (StringUtils.isNotBlank(paramSCMName)) {
        for (Material material : materials) {
            if (material instanceof PluggableSCMMaterial && paramSCMName.equalsIgnoreCase(((PluggableSCMMaterial) material).getScmConfig().getName())) {
                prunedCollection.add(material);
            }
        }
    }
    return prunedCollection;
}
Also used : PluggableSCMMaterial(com.thoughtworks.go.config.materials.PluggableSCMMaterial) PluggableSCMMaterial(com.thoughtworks.go.config.materials.PluggableSCMMaterial) Material(com.thoughtworks.go.domain.materials.Material) HashSet(java.util.HashSet)

Example 79 with Material

use of com.thoughtworks.go.domain.materials.Material in project gocd by gocd.

the class SvnPostCommitHookImplementer method prune.

@Override
public Set<Material> prune(Set<Material> materials, Map params) {
    final HashSet<Material> prunedMaterials = new HashSet<>();
    if (params.containsKey(UUID)) {
        final String targetUUID = (String) params.get(UUID);
        final HashMap<String, String> urlToRemoteUUIDMap = createUrlToRemoteUUIDMap(materials);
        for (Material material : materials) {
            if (material instanceof SvnMaterial && isQualified(targetUUID, (SvnMaterial) material, urlToRemoteUUIDMap)) {
                prunedMaterials.add(material);
            }
        }
    }
    return prunedMaterials;
}
Also used : SvnMaterial(com.thoughtworks.go.config.materials.svn.SvnMaterial) SvnMaterial(com.thoughtworks.go.config.materials.svn.SvnMaterial) Material(com.thoughtworks.go.domain.materials.Material) HashSet(java.util.HashSet)

Example 80 with Material

use of com.thoughtworks.go.domain.materials.Material in project gocd by gocd.

the class ModificationsMother method createPackageMaterialRevision.

public static MaterialRevision createPackageMaterialRevision(String revision, String user, String comment) {
    Material material = MaterialsMother.packageMaterial();
    List<Modification> modifications = new ArrayList<>();
    modifications.add(new Modification(user, comment, null, new Date(), revision));
    return new MaterialRevision(material, modifications);
}
Also used : Modification(com.thoughtworks.go.domain.materials.Modification) Material(com.thoughtworks.go.domain.materials.Material) DependencyMaterial(com.thoughtworks.go.config.materials.dependency.DependencyMaterial) SvnMaterial(com.thoughtworks.go.config.materials.svn.SvnMaterial) DependencyMaterialRevision(com.thoughtworks.go.domain.materials.dependency.DependencyMaterialRevision) MaterialRevision(com.thoughtworks.go.domain.MaterialRevision)

Aggregations

Material (com.thoughtworks.go.domain.materials.Material)95 Test (org.junit.Test)59 DependencyMaterial (com.thoughtworks.go.config.materials.dependency.DependencyMaterial)39 SvnMaterial (com.thoughtworks.go.config.materials.svn.SvnMaterial)39 HgMaterial (com.thoughtworks.go.config.materials.mercurial.HgMaterial)23 Modification (com.thoughtworks.go.domain.materials.Modification)20 GitMaterial (com.thoughtworks.go.config.materials.git.GitMaterial)18 MaterialRevisions (com.thoughtworks.go.domain.MaterialRevisions)16 MaterialConfigs (com.thoughtworks.go.config.materials.MaterialConfigs)14 ScmMaterial (com.thoughtworks.go.config.materials.ScmMaterial)14 MaterialRevision (com.thoughtworks.go.domain.MaterialRevision)14 Materials (com.thoughtworks.go.config.materials.Materials)11 CaseInsensitiveString (com.thoughtworks.go.config.CaseInsensitiveString)10 PipelineConfig (com.thoughtworks.go.config.PipelineConfig)9 MaterialConfig (com.thoughtworks.go.domain.materials.MaterialConfig)9 PluggableSCMMaterial (com.thoughtworks.go.config.materials.PluggableSCMMaterial)8 Date (java.util.Date)8 HashSet (java.util.HashSet)8 P4Material (com.thoughtworks.go.config.materials.perforce.P4Material)7 BuildCause (com.thoughtworks.go.domain.buildcause.BuildCause)7