Package org.apache.continuum.taskqueue

Examples of org.apache.continuum.taskqueue.PrepareBuildProjectsTask


                                      int scmRootId )
        throws BuildManagerException
    {
        try
        {
            PrepareBuildProjectsTask task =
              new PrepareBuildProjectsTask( projectsBuildDefinitionsMap, buildTrigger, projectGroupId, projectGroupName,
                                              scmRootAddress, scmRootId );

            log.info( "Queueing prepare-build-project task '" + task + "' to prepare-build queue." );
            prepareBuildQueue.put( task );
        }
View Full Code Here


    }

    public boolean isProjectCurrentlyPreparingBuild( int projectId )
        throws BuildManagerException
    {
        PrepareBuildProjectsTask task = getCurrentProjectInPrepareBuild();

        if ( task != null )
        {
            Map<Integer, Integer> map = task.getProjectsBuildDefinitionsMap();

            if ( map.size() > 0 )
            {
                Set<Integer> projectIds = map.keySet();
View Full Code Here

    private ContinuumNotificationDispatcher notifierDispatcher;

    public void executeTask( Task task )
        throws TaskExecutionException
    {
        PrepareBuildProjectsTask prepareTask = (PrepareBuildProjectsTask) task;

        Map<Integer, Integer> projectsBuildDefinitionsMap = prepareTask.getProjectsBuildDefinitionsMap();
        BuildTrigger buildTrigger = prepareTask.getBuildTrigger();
        Set<Integer> projectsId = projectsBuildDefinitionsMap.keySet();
        Map<String, Object> context = new HashMap<String, Object>();
        Map<Integer, ScmResult> scmResultMap = new HashMap<Integer, ScmResult>();

        try
        {
            for ( Integer projectId : projectsId )
            {
                int buildDefinitionId = projectsBuildDefinitionsMap.get( projectId );

                log.info( "Initializing prepare build" );
                context = initializeContext( projectId, buildDefinitionId, prepareTask.getBuildTrigger() );

                log.info(
                    "Starting prepare build of project: " + AbstractContinuumAction.getProject( context ).getName() );
                startPrepareBuild( context );
View Full Code Here

    public void prepareBuildProjects( Map<Integer, Integer>projectsBuildDefinitionsMap, BuildTrigger buildTrigger, int projectGroupId,
                                      String projectGroupName, String scmRootAddress, int scmRootId, List<ProjectScmRoot> scmRoots )
        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException
    {
      PrepareBuildProjectsTask task = new PrepareBuildProjectsTask( projectsBuildDefinitionsMap, buildTrigger,
                                                                      projectGroupId, projectGroupName,
                                                                      scmRootAddress, scmRootId );

        OverallDistributedBuildQueue overallDistributedBuildQueue = getOverallDistributedBuildQueueByGroup( projectGroupId, scmRoots, scmRootId );
View Full Code Here

        int projectGroupId = ContinuumBuildConstant.getProjectGroupId( context );
        int scmRootId = ContinuumBuildConstant.getScmRootId( context );
        String scmRootAddress = ContinuumBuildConstant.getScmRootAddress( context );
        BuildTrigger buildTrigger = new BuildTrigger( ContinuumBuildConstant.getTrigger( context ), ContinuumBuildConstant.getUsername( context ) );

        return new PrepareBuildProjectsTask( null, buildTrigger, projectGroupId, null, scmRootAddress, scmRootId );
    }
View Full Code Here

    }

    public void testCheckoutPrepareBuildMultiModuleProject()
        throws Exception
    {
        PrepareBuildProjectsTask task = createTask( "src/test-projects/multi-module/pom.xml", false, false );

        this.prepareBuildQueue.put( task );

        List<Project> projects = getProjectDao().getProjectsInGroup( task.getProjectGroupId() );

        assertEquals( "failed to add all projects", 3, projects.size() );

        Project rootProject = getProjectDao().getProjectByName( "multi-module-parent" );
        Project moduleA = getProjectDao().getProjectByName( "module-A" );
        Project moduleB = getProjectDao().getProjectByName( "module-B" );

        // wait while task finishes prepare build
        while( !prepareBuildQueue.getQueueSnapshot().isEmpty() ||
                        prepareBuildTaskQueueExecutor.getCurrentTask() != null )
        {
            Thread.sleep( 10 );
        }

        ProjectScmRoot scmRoot = projectScmRootDao.getProjectScmRoot( task.getProjectScmRootId() );
        assertEquals( "Failed to update multi-module project", ContinuumProjectState.UPDATED, scmRoot.getState() );

        File workingDir = configurationService.getWorkingDirectory();

        assertTrue( "checkout directory of project 'multi-module-parent' does not exist.", new File( workingDir, Integer.toString( rootProject.getId() ) ).exists() );
View Full Code Here

    }

    public void testCheckoutPrepareBuildMultiModuleProjectFreshBuild()
        throws Exception
    {
        PrepareBuildProjectsTask task = createTask( "src/test-projects/multi-module/pom.xml", false, true );

        this.prepareBuildQueue.put( task );

        List<Project> projects = getProjectDao().getProjectsInGroup( task.getProjectGroupId() );

        assertEquals( "failed to add all projects", 3, projects.size() );

        Project rootProject = getProjectDao().getProjectByName( "multi-module-parent" );
        Project moduleA = getProjectDao().getProjectByName( "module-A" );
        Project moduleB = getProjectDao().getProjectByName( "module-B" );

        // wait while task finishes prepare build
        while( !prepareBuildQueue.getQueueSnapshot().isEmpty() ||
                        prepareBuildTaskQueueExecutor.getCurrentTask() != null )
        {
            Thread.sleep( 10 );
        }

        ProjectScmRoot scmRoot = projectScmRootDao.getProjectScmRoot( task.getProjectScmRootId() );
        assertEquals( "Failed to update multi-module project", ContinuumProjectState.UPDATED, scmRoot.getState() );

        File workingDir = configurationService.getWorkingDirectory();

        assertTrue( "checkout directory of project 'multi-module-parent' does not exist.", new File( workingDir, Integer.toString( rootProject.getId() ) ).exists() );
View Full Code Here

                rootProject = project;
            }
        }

        assertEquals( 3, map.size() );
        PrepareBuildProjectsTask task = new PrepareBuildProjectsTask( map, new BuildTrigger( 1, "test-user" ),
                                                                      projectGroupId, projectGroup.getName(),
                                                                      scmRoot.getScmRootAddress(), scmRoot.getId() );

        return task;
    }
View Full Code Here

          // current prepare build task
            Map<String, PrepareBuildProjectsTask> currentPrepareBuildMap = getContinuum().getDistributedBuildManager().getProjectsCurrentlyPreparingBuild();

            for ( String url : currentPrepareBuildMap.keySet() )
            {
                PrepareBuildProjectsTask task = currentPrepareBuildMap.get( url );

                ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );

                PrepareBuildSummary summary = new PrepareBuildSummary();
                summary.setBuildAgentUrl( url );
                summary.setProjectGroupId( task.getProjectGroupId() );
                summary.setProjectGroupName( projectGroup.getName() );
                summary.setScmRootAddress( task.getScmRootAddress() );
                summary.setScmRootId( task.getProjectScmRootId() );

                currentDistributedPrepareBuilds.add( summary );
            }

            // current builds
            Map<String, BuildProjectTask> currentBuildMap = getContinuum().getDistributedBuildManager().getProjectsCurrentlyBuilding();

            for ( String url : currentBuildMap.keySet() )
            {
                BuildProjectTask task = currentBuildMap.get( url );

                Project project = getContinuum().getProject( task.getProjectId() );

                DistributedBuildSummary summary = new DistributedBuildSummary();
                summary.setProjectId( project.getId() );
                summary.setProjectName( project.getName() );
                summary.setProjectGroupName( project.getProjectGroup().getName() );
                summary.setBuildDefinitionId( task.getBuildDefinitionId() );
                summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
                summary.setHashCode( task.getHashCode() );
                summary.setBuildAgentUrl( url );

                currentDistributedBuilds.add( summary );
            }
           
            // prepare build queues
            Map<String, List<PrepareBuildProjectsTask>> prepareBuildMap = getContinuum().getDistributedBuildManager().getProjectsInPrepareBuildQueue();

            for ( String url : prepareBuildMap.keySet() )
            {
                for ( PrepareBuildProjectsTask task : prepareBuildMap.get( url ) )
                {
                    ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );

                    PrepareBuildSummary summary = new PrepareBuildSummary();
                    summary.setBuildAgentUrl( url );
                    summary.setProjectGroupId( task.getProjectGroupId() );
                    summary.setProjectGroupName( projectGroup.getName() );
                    summary.setScmRootAddress( task.getScmRootAddress() );
                    summary.setScmRootId( task.getProjectScmRootId() );
                    summary.setHashCode( task.getHashCode() );

                    distributedPrepareBuildQueues.add( summary );
                }
            }

            // build queues
            Map<String, List<BuildProjectTask>> buildMap = getContinuum().getDistributedBuildManager().getProjectsInBuildQueue();

            for ( String url : buildMap.keySet() )
            {
                for ( BuildProjectTask task : buildMap.get( url ) )
                {
                    DistributedBuildSummary summary = new DistributedBuildSummary();

                    Project project = getContinuum().getProject( task.getProjectId() );

                    summary.setProjectId( project.getId() );
                    summary.setProjectName( project.getName() );
                    summary.setProjectGroupName( project.getProjectGroup().getName() );
                    summary.setBuildDefinitionId( task.getBuildDefinitionId() );
                    summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
                    summary.setHashCode( task.getHashCode() );
                    summary.setBuildAgentUrl( url );

                    distributedBuildQueues.add( summary );
                }
            }

            return DISTRIBUTED_BUILD_SUCCESS;
        }
        else
        {
            try
            {
                // current prepare builds
                PrepareBuildProjectsTask currentPrepareBuildTask = getContinuum().getBuildsManager().getCurrentProjectInPrepareBuild();

                if ( currentPrepareBuildTask != null )
                {
                    PrepareBuildSummary s = new PrepareBuildSummary();
                   
                    s.setProjectGroupId( currentPrepareBuildTask.getProjectGroupId() );
                    s.setProjectGroupName( currentPrepareBuildTask.getProjectGroupName() );
                    s.setScmRootId( currentPrepareBuildTask.getProjectScmRootId() );
                    s.setScmRootAddress( currentPrepareBuildTask.getScmRootAddress() );
                    currentPrepareBuilds.add( s );
                }
            }
            catch ( BuildManagerException e )
            {
View Full Code Here

                {
                    Set<Integer> keySet = overallBuildQueues.keySet();
                    for ( Integer key : keySet )
                    {
                        overallBuildQueue = overallBuildQueues.get( key );
                        PrepareBuildProjectsTask task =
                            (PrepareBuildProjectsTask) overallBuildQueue.getPrepareBuildTaskQueueExecutor().getCurrentTask();
                        if ( task != null && task.getProjectGroupId() == projectGroupId &&
                            task.getProjectScmRootId() == scmRootId )
                        {
                            overallBuildQueue.cancelPrepareBuildTask( projectGroupId, scmRootId );
                            return true;
                        }
                    }
View Full Code Here

TOP

Related Classes of org.apache.continuum.taskqueue.PrepareBuildProjectsTask

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.