Examples of OverallDistributedBuildQueue


Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

            }
        }

        log.debug( "Determining which build agent should build the project..." );

        OverallDistributedBuildQueue overallDistributedBuildQueue = getOverallDistributedBuildQueueByGroup(
            projectGroupId, scmRoots, scmRootId );

        if ( overallDistributedBuildQueue == null )
        {
            log.debug(
                "No projects with the same continuum group is currently building, checking if build definition has an attached build agent group" );

            if ( hasBuildagentGroup( projectsBuildDefinitionsMap ) )
            {
                log.debug(
                    "Build definition used has an attached build agent group, checking if there are configured build agents in the group" );

                if ( !hasBuildagentInGroup( projectsBuildDefinitionsMap ) )
                {
                    log.warn( "No build agent configured in build agent group. Not building projects." );

                    throw new NoBuildAgentInGroupException( "No build agent configured in build agent group" );
                }
                else
                {
                    // get overall distributed build queue from build agent group
                    log.info( "Getting the least busy build agent within the build agent group" );
                    overallDistributedBuildQueue = getOverallDistributedBuildQueueByAgentGroup(
                        projectsBuildDefinitionsMap );
                }
            }
            else
            {
                // project does not have build agent group
                log.info( "Project does not have a build agent group, getting the least busy of all build agents" );
                overallDistributedBuildQueue = getOverallDistributedBuildQueue();
            }
        }

        if ( overallDistributedBuildQueue != null )
        {
            try
            {
                String agentUrl = overallDistributedBuildQueue.getBuildAgentUrl();
                log.info( "Building project in the least busy agent {}", agentUrl );
                overallDistributedBuildQueue.addToDistributedBuildQueue( task );
                createProjectRunSummaries( task, agentUrl );
            }
            catch ( TaskQueueException e )
            {
                log.error( "Error while enqueuing prepare build task", e );
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

        {
            List<PrepareBuildProjectsTask> tasks = null;

            synchronized ( overallDistributedBuildQueues )
            {
                OverallDistributedBuildQueue overallDistributedBuildQueue = overallDistributedBuildQueues.get(
                    buildAgentUrl );

                try
                {
                    if ( overallDistributedBuildQueue.getDistributedBuildTaskQueueExecutor().getCurrentTask() != null )
                    {
                        log.error( "Unable to remove build agent because it is currently being used" );
                        throw new ContinuumException(
                            "Unable to remove build agent because it is currently being used" );
                    }

                    tasks = overallDistributedBuildQueue.getProjectsInQueue();

                    overallDistributedBuildQueue.getDistributedBuildQueue().removeAll( tasks );

                    ( (ThreadedDistributedBuildTaskQueueExecutor) overallDistributedBuildQueue.getDistributedBuildTaskQueueExecutor() ).stop();

                    container.release( overallDistributedBuildQueue );

                    overallDistributedBuildQueues.remove( buildAgentUrl );
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

    public boolean isBuildAgentBusy( String buildAgentUrl )
    {
        synchronized ( overallDistributedBuildQueues )
        {
            OverallDistributedBuildQueue overallDistributedBuildQueue = overallDistributedBuildQueues.get(
                buildAgentUrl );

            if ( overallDistributedBuildQueue != null &&
                overallDistributedBuildQueue.getDistributedBuildTaskQueueExecutor().getCurrentTask() != null )
            {
                log.debug( "build agent '" + buildAgentUrl + "' is busy" );
                return true;
            }
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

        synchronized ( overallDistributedBuildQueues )
        {
            for ( String buildAgentUrl : overallDistributedBuildQueues.keySet() )
            {
                OverallDistributedBuildQueue overallDistributedBuildQueue = overallDistributedBuildQueues.get(
                    buildAgentUrl );

                if ( overallDistributedBuildQueue != null )
                {
                    try
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

        synchronized ( overallDistributedBuildQueues )
        {
            for ( String buildAgentUrl : overallDistributedBuildQueues.keySet() )
            {
                OverallDistributedBuildQueue overallDistributedBuildQueue = overallDistributedBuildQueues.get(
                    buildAgentUrl );

                if ( overallDistributedBuildQueue != null )
                {
                    try
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

    private void createDistributedBuildQueueForAgent( String buildAgentUrl )
        throws ComponentLookupException
    {
        if ( !overallDistributedBuildQueues.containsKey( buildAgentUrl ) )
        {
            OverallDistributedBuildQueue overallDistributedBuildQueue = (OverallDistributedBuildQueue) container.lookup(
                OverallDistributedBuildQueue.class );
            overallDistributedBuildQueue.setBuildAgentUrl( buildAgentUrl );
            overallDistributedBuildQueue.getDistributedBuildTaskQueueExecutor().setBuildAgentUrl( buildAgentUrl );

            overallDistributedBuildQueues.put( buildAgentUrl, overallDistributedBuildQueue );
        }
    }
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

        synchronized ( overallDistributedBuildQueues )
        {
            for ( String buildAgentUrl : overallDistributedBuildQueues.keySet() )
            {
                OverallDistributedBuildQueue distributedBuildQueue = overallDistributedBuildQueues.get( buildAgentUrl );

                try
                {
                    for ( PrepareBuildProjectsTask task : distributedBuildQueue.getProjectsInQueue() )
                    {
                        if ( task.getProjectScmRootId() == scmRootId )
                        {
                            log.debug(
                                "Projects in the same continuum group are building in build agent: {}. Also building project in the same agent.",
                                buildAgentUrl );
                            return distributedBuildQueue;
                        }
                    }

                    Task task = distributedBuildQueue.getDistributedBuildTaskQueueExecutor().getCurrentTask();
                    if ( task != null && ( (PrepareBuildProjectsTask) task ).getProjectScmRootId() == scmRootId )
                    {
                        log.debug(
                            "Projects in the same continuum group are building in build agent: {}. Also building project in the same agent.",
                            buildAgentUrl );
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

    private OverallDistributedBuildQueue getOverallDistributedBuildQueueByAgentGroup(
        Map<Integer, Integer> projectsAndBuildDefinitionsMap )
        throws ContinuumException
    {
        OverallDistributedBuildQueue whereToBeQueued = null;

        BuildAgentGroupConfiguration buildAgentGroup = getBuildAgentGroup( projectsAndBuildDefinitionsMap );

        if ( buildAgentGroup != null )
        {
            List<BuildAgentConfiguration> buildAgents = buildAgentGroup.getBuildAgents();

            if ( buildAgents != null && buildAgents.size() > 0 )
            {
                List<String> buildAgentUrls = new ArrayList<String>();

                for ( BuildAgentConfiguration buildAgent : buildAgents )
                {
                    buildAgentUrls.add( buildAgent.getUrl() );
                }

                synchronized ( overallDistributedBuildQueues )
                {
                    int idx = 0;
                    int size = 0;

                    for ( String buildAgentUrl : overallDistributedBuildQueues.keySet() )
                    {
                        if ( !buildAgentUrls.isEmpty() && buildAgentUrls.contains( buildAgentUrl ) )
                        {
                            OverallDistributedBuildQueue distributedBuildQueue = overallDistributedBuildQueues.get(
                                buildAgentUrl );

                            if ( distributedBuildQueue != null )
                            {
                                try
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

    }

    private OverallDistributedBuildQueue getOverallDistributedBuildQueue()
        throws ContinuumException
    {
        OverallDistributedBuildQueue whereToBeQueued = null;

        synchronized ( overallDistributedBuildQueues )
        {
            if ( overallDistributedBuildQueues.isEmpty() )
            {
                log.info( "No distributed build queues are configured for build agents" );
                return null;
            }

            int idx = 0;
            int size = 0;

            for ( String buildAgentUrl : overallDistributedBuildQueues.keySet() )
            {
                OverallDistributedBuildQueue distributedBuildQueue = overallDistributedBuildQueues.get( buildAgentUrl );

                if ( distributedBuildQueue != null )
                {
                    try
                    {
View Full Code Here

Examples of org.apache.continuum.taskqueue.OverallDistributedBuildQueue

    {
        PrepareBuildProjectsTask task = new PrepareBuildProjectsTask( projectsBuildDefinitionsMap, trigger,
                                                                      projectGroupId, projectGroupName,
                                                                      scmRootAddress, scmRootId );

        OverallDistributedBuildQueue overallDistributedBuildQueue = getOverallDistributedBuildQueueByGroup( projectGroupId );

        if ( overallDistributedBuildQueue == null )
        {
            // get overall distributed build queue from build agent group
            overallDistributedBuildQueue = getOverallDistributedBuildQueueByAgentGroup( projectsBuildDefinitionsMap );
        }
       
        if ( overallDistributedBuildQueue == null )
        {
            overallDistributedBuildQueue = getOverallDistributedBuildQueue();
        }

        if ( overallDistributedBuildQueue != null )
        {
            try
            {
                overallDistributedBuildQueue.addToDistributedBuildQueue( task );
            }
            catch ( TaskQueueException e )
            {
                log.error( "Error while enqueuing prepare build task", e );
                throw new ContinuumException( "Error occurred while enqueuing prepare build task", e );
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.