Package org.apache.continuum.taskqueue

Examples of org.apache.continuum.taskqueue.PrepareBuildProjectsTask


    }

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

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

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

        Project rootProject = getProjectDao().getProjectByName( "parent-project" );

        buildsManager.prepareBuildProjects( task.getProjectsBuildDefinitionsMap(), task.getBuildTrigger(),
                                            task.getProjectGroupId(), task.getProjectGroupName(),
                                            task.getScmRootAddress(), task.getProjectScmRootId() );

        // wait while task finishes prepare build
        waitForPrepareBuildToFinish( task.getProjectGroupId(), task.getProjectScmRootId() );

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

        File checkedOutDir = new File( configurationService.getWorkingDirectory(), Integer.toString(
            rootProject.getId() ) );

        assertTrue( "checkout directory of project 'parent-project' does not exist.", new File( checkedOutDir,
                                                                                                "parent-project" ).exists() );

        assertTrue( "module-a was not checked out in the same directory as it's parent.", new File( checkedOutDir,
                                                                                                    "module-a" ).exists() );

        assertTrue( "module-b was not checked out in the same directory as it's parent.", new File( checkedOutDir,
                                                                                                    "module-b" ).exists() );

        assertTrue( "module-d was not checked out in the same directory as it's parent.", new File( checkedOutDir,
                                                                                                    "module-c/module-d" ).exists() );

        assertTrue( "failed to checkout parent-project", new File( checkedOutDir, "parent-project" ).list().length >
            0 );

        assertTrue( "failed to checkout module-a", new File( checkedOutDir, "module-a" ).list().length > 0 );

        assertTrue( "failed to checkout module-b", new File( checkedOutDir, "module-b" ).list().length > 0 );

        assertTrue( "failed to checkout module-d", new File( checkedOutDir, "module-c/module-d" ).list().length > 0 );

        // wait while task finishes build
        waitForPrepareBuildToFinish( task.getProjectGroupId(), task.getProjectScmRootId() );
    }
View Full Code Here


    }

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

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

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

        Project rootProject = getProjectDao().getProjectByName( "parent-project" );

        buildsManager.prepareBuildProjects( task.getProjectsBuildDefinitionsMap(), task.getBuildTrigger(),
                                            task.getProjectGroupId(), task.getProjectGroupName(),
                                            task.getScmRootAddress(), task.getProjectScmRootId() );

        // wait while task finishes prepare build
        waitForPrepareBuildToFinish( task.getProjectGroupId(), task.getProjectScmRootId() );

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

        File checkedOutDir = new File( configurationService.getWorkingDirectory(), Integer.toString(
            rootProject.getId() ) );
View Full Code Here

    }

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

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

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

        Project rootProject = getProjectDao().getProjectByName( "parent-project" );

        File rootProjectDir = new File( configurationService.getWorkingDirectory(), Integer.toString(
            rootProject.getId() ) );
        rootProjectDir = new File( rootProjectDir, "parent-project" );

        rootProject.setWorkingDirectory( rootProjectDir.getAbsolutePath() );

        getProjectDao().updateProject( rootProject );

        buildsManager.prepareBuildProjects( task.getProjectsBuildDefinitionsMap(), task.getBuildTrigger(),
                                            task.getProjectGroupId(), task.getProjectGroupName(),
                                            task.getScmRootAddress(), task.getProjectScmRootId() );

        // wait while task finishes prepare build
        waitForPrepareBuildToFinish( task.getProjectGroupId(), task.getProjectScmRootId() );

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

        File checkedOutDir = new File( configurationService.getWorkingDirectory(), Integer.toString(
            rootProject.getId() ) );
View Full Code Here

                rootProject = project;
            }
        }

        assertEquals( 4, map.size() );
        PrepareBuildProjectsTask task = new PrepareBuildProjectsTask( map,
                                                                      new org.apache.continuum.utils.build.BuildTrigger(
                                                                          1, "user" ), projectGroupId,
                                                                      projectGroup.getName(),
                                                                      scmRoot.getScmRootAddress(), scmRoot.getId() );
View Full Code Here

                                             "continuum-project-test-2", "dummy", "dummypass", null, null ) );

        final List<Task> prepareBuildTasks = new ArrayList<Task>();
        final Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        map.put( 1, 1 );
        prepareBuildTasks.add( new PrepareBuildProjectsTask( map, new BuildTrigger( 1, "test-user" ), 1,
                                                             "Project Group A", "http://scm.root.address", 2 ) );

        final ParallelBuildsThreadedTaskQueueExecutor buildTaskQueueExecutor = context.mock(
            ParallelBuildsThreadedTaskQueueExecutor.class, "parallel-build-task-executor" );
        final ParallelBuildsThreadedTaskQueueExecutor checkoutTaskQueueExecutor = context.mock(
View Full Code Here

        recordStartOfPrepareBuildProjectSequence();

        // the first prepare build queue already has a task queued
        final List<Task> tasks = new ArrayList<Task>();
        final List<Task> tasksOfFirstPrepareBuildQueue = new ArrayList<Task>();
        tasksOfFirstPrepareBuildQueue.add( new PrepareBuildProjectsTask( new HashMap<Integer, Integer>(),
                                                                         new BuildTrigger( 1, "test-user" ), 1,
                                                                         "Project Group B", "http://scm.root.address2",
                                                                         2 ) );
        context.checking( new Expectations()
        {
View Full Code Here

        throws Exception
    {
        setupMockOverallBuildQueues();

        final List<Task> tasks = new ArrayList<Task>();
        tasks.add( new PrepareBuildProjectsTask( new HashMap<Integer, Integer>(), new BuildTrigger( 1, "test-user" ), 1,
                                                 "Project Group A", "http://scm.root.address", 2 ) );

        context.checking( new Expectations()
        {
            {
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 );

        if ( buildTrigger.getTrigger() == ContinuumProjectState.TRIGGER_FORCED )
        {
            log.debug( "Build project (projectGroupId={}) triggered manually by {}", projectGroupId,
                       buildTrigger.getTriggeredBy() );
        }
        else
        {
            log.debug( "Build project (projectGroupId={}) triggered by schedule {}", projectGroupId,
                       buildTrigger.getTriggeredBy() );
        }

        if ( log.isDebugEnabled() )
        {
            Map<String, BuildProjectTask> buildTasks = getProjectsCurrentlyBuilding();

            for ( String key : buildTasks.keySet() )
            {
                log.debug( "Current build of agent {} :: Project {}", key, buildTasks.get( key ).getProjectName() );
            }

            Map<String, List<BuildProjectTask>> buildQueues = getProjectsInBuildQueue();

            for ( String key : buildQueues.keySet() )
            {
                for ( BuildProjectTask buildTask : buildQueues.get( key ) )
                {
                    log.debug( "Build Queue of agent {} :: Project {}", key, buildTask.getProjectName() );
                }
            }

            Map<String, PrepareBuildProjectsTask> prepareBuildTasks = getProjectsCurrentlyPreparingBuild();

            for ( String key : prepareBuildTasks.keySet() )
            {
                PrepareBuildProjectsTask prepareBuildTask = prepareBuildTasks.get( key );
                log.debug( "Current prepare build of agent {} :: Project Group {} - Scm Root {}",
                           new Object[]{key, prepareBuildTask.getProjectGroupName(),
                               prepareBuildTask.getProjectScmRootId()} );
            }

            Map<String, List<PrepareBuildProjectsTask>> prepareBuildQueues = getProjectsInPrepareBuildQueue();

            for ( String key : prepareBuildQueues.keySet() )
            {
                for ( PrepareBuildProjectsTask prepareBuildTask : prepareBuildQueues.get( key ) )
                {
                    log.debug( "Prepare Build Queue of agent {} : Project Group {} - Scm Root {}",
                               new Object[]{key, prepareBuildTask.getProjectGroupName(),
                                   prepareBuildTask.getProjectScmRootId()} );
                }
            }
        }

        log.debug( "Determining which build agent should build the project..." );
View Full Code Here

        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

    private ProjectGroupDao projectGroupDao;

    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>();
        List<Project> projectList = new ArrayList<Project>();
        int projectGroupId = 0;

        try
        {
            if ( !projectsId.isEmpty() )
            {
                int projectId = projectsId.iterator().next();
                Project project = projectDao.getProject( projectId );
                ProjectGroup projectGroup = project.getProjectGroup();
                projectGroupId = projectGroup.getId();

                List<Project> projects = projectDao.getProjectsWithDependenciesByGroupId( projectGroupId );
                projectList = ProjectSorter.getSortedProjects( projects, log );
            }

            Project rootProject = null;

            for ( Project project : projectList )
            {
                if ( rootProject == null )
                {
                    // first project is the root project.
                    rootProject = project;
                }

                int projectId = project.getId();
                int buildDefinitionId;

                if ( projectsBuildDefinitionsMap.get( projectId ) != null )
                {
                    buildDefinitionId = projectsBuildDefinitionsMap.get( projectId );

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

                    log.info( "Starting prepare build of project: " + AbstractContinuumAction.getProject(
                        context ).getName() );
                    startPrepareBuild( context );
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.