Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to Marvelution under one or more contributor license 
   * agreements.  See the NOTICE file distributed with this work 
   * for additional information regarding copyright ownership.
   * Marvelution licenses this file to you under the Apache License,
   * Version 2.0 (the "License"); you may not use this file except
   * in compliance with the License.
   * You may obtain a copy of the License at
   *
  *  http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 package com.marvelution.bamboo.plugins.sonar.build.actions;
 
 import  org.apache.log4j.Logger;
 
 import  com.atlassian.bamboo.build.BuildLoggerManager;
 import  com.atlassian.bamboo.build.logger.BuildLogger;
 import  com.atlassian.bamboo.buildqueue.manager.CustomPreBuildQueuedAction;
 import  com.atlassian.bamboo.configuration.AdministrationConfiguration;
 import  com.atlassian.bamboo.v2.build.BaseConfigurableBuildPlugin;
 import  com.atlassian.bamboo.v2.build.BuildContext;
 import  com.atlassian.bamboo.v2.build.BuildPlanDefinition;
 import  com.atlassian.bandana.BandanaManager;
Custom Pre Build Queued Action to populate any inherited global Sonar configuration

Author(s):
Mark Rekveld
 
 public class SonarPreBuildQueuedAction extends BaseConfigurableBuildPlugin implements CustomPreBuildQueuedAction {
 
 	private final Logger logger = Logger.getLogger(SonarPreBuildQueuedAction.class);
 
 	private AdministrationConfiguration administrationConfiguration;
 
 	private BuildLoggerManager buildLoggerManager;
 
 	private BandanaManager bandanaManager;
 
 	private BandanaUtils bandanaUtils = new BandanaUtils();
 
 	private Sonar sonar = new Sonar();

 
 	public BuildContext call() {
 		final BuildPlanDefinition buildDefinition = buildContext.getBuildPlanDefinition();
 		if (Boolean.parseBoolean(buildDefinition.getCustomConfiguration().get(.))) {
 			.debug("Sonar is configured to run... Checking if any global configuration needs to be applied");
 			final BuildLogger sonarLogger = .getBuildLogger(buildContext.getPlanKey());
 			if (!"buildPlanSpecific".equals(buildDefinition.getCustomConfiguration().get(.))) {
 				try {
 					final int serverId =
 						Integer.parseInt(buildDefinition.getCustomConfiguration().get(.));
 					final SonarServer server = .getSonarServer(serverId);
 					if (server != null) {
 						if (server.isDisabled()) {
 							buildDefinition.getCustomConfiguration().put(."false");
 							.debug(sonarLogger.addBuildLogEntry("Skipping Sonar update... Sonar Server "
 								+ server.getName() + " is disabled"));
 						} else {
 							.copySonarServerToBuildPlanDefinition(serverbuildDefinition);
 							.debug(sonarLogger
 								.addBuildLogEntry("Updated Sonar Server configuration to use server: "
 									+ server.getName()));
 						}
 					} else {
 						.error(sonarLogger
 							.addErrorLogEntry("Sonar configuration is invalid. Skipping Sonar update"));
 						buildDefinition.getCustomConfiguration().put(."false");
 					}
 				} catch (NumberFormatException e) {
 					.error(sonarLogger
 						.addErrorLogEntry("Sonar configuration is invalid. Skipping Sonar update"));
 					buildDefinition.getCustomConfiguration().put(."false");
 				}
 			}
 			if (!Boolean.parseBoolean(buildDefinition.getCustomConfiguration().get(.))) {
 				buildDefinition.getCustomConfiguration().put(.,
 				buildDefinition.getCustomConfiguration().put(.,
 				buildDefinition.getCustomConfiguration().put(.,
 				.debug(sonarLogger.addBuildLogEntry("Applied global Sonar configuration to Build Plan"));
 			}
		}
		return buildContext;
	}

Set the AdministrationConfiguration

Parameters:
administrationConfiguration the AdministrationConfiguration
	public void setAdministrationConfiguration(AdministrationConfiguration administrationConfiguration) {
		this. = administrationConfiguration;
	}

Set the BuildLoggerManager

Parameters:
buildLoggerManager the BuildLoggerManager
	public void setBuildLoggerManager(BuildLoggerManager buildLoggerManager) {
		this. = buildLoggerManager;
	}

Set the BandanaManager

Parameters:
bandanaManager the BandanaManager
	public void setBandanaManager(BandanaManager bandanaManager) {
		this. = bandanaManager;
	}
New to GrepCode? Check out our FAQ X