/** * @see org.apache.maven.continuum.builddefinition.BuildDefinitionService#cloneBuildDefinition(org.apache.maven.continuum.model.project.BuildDefinition) */ public BuildDefinition cloneBuildDefinition( BuildDefinition buildDefinition ) { BuildDefinition cloned = new BuildDefinition(); cloned.setAlwaysBuild( buildDefinition.isAlwaysBuild() ); cloned.setArguments( buildDefinition.getArguments() ); cloned.setBuildFile( buildDefinition.getBuildFile() ); cloned.setBuildFresh( buildDefinition.isBuildFresh() ); cloned.setDefaultForProject( buildDefinition.isDefaultForProject() ); cloned.setDescription( buildDefinition.getDescription() ); cloned.setGoals( buildDefinition.getGoals() ); cloned.setProfile( buildDefinition.getProfile() ); cloned.setSchedule( buildDefinition.getSchedule() ); cloned.setType( buildDefinition.getType() ); cloned.setTemplate( buildDefinition.isTemplate() ); return cloned; }
public static BuildDefinition getBuildDefinition( BuildContext buildContext ) { BuildDefinition buildDefinition = new BuildDefinition(); buildDefinition.setId( buildContext.getBuildDefinitionId() ); buildDefinition.setAlwaysBuild( true ); buildDefinition.setArguments( buildContext.getArguments() ); buildDefinition.setBuildFile( buildContext.getBuildFile() ); buildDefinition.setBuildFresh( buildContext.isBuildFresh() ); buildDefinition.setGoals( buildContext.getGoals() ); return buildDefinition; } }
protected boolean isDescriptionUpdated( BuildDefinition buildDefinition, ScmResult scmResult, Project project ) { boolean update = true; if ( buildDefinition != null && scmResult != null ) { int policy = buildDefinition.getUpdatePolicy(); if ( BuildDefinitionUpdatePolicyConstants.UPDATE_DESCRIPTION_NEVER == policy ) { update = false; } else if ( BuildDefinitionUpdatePolicyConstants.UPDATE_DESCRIPTION_ONLY_FOR_NEW_POM == policy ) { update = pomUpdated( buildDefinition.getBuildFile(), scmResult, project ); } } return update; }
public BuildDefinitionTemplate getDefaultAntBuildDefinitionTemplate() throws BuildDefinitionServiceException { BuildDefinitionTemplate template = getContinuumDefaultWithType( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR ); if ( template != null ) { return template; } log.info( "create default AntBuildDefinitionTemplate" ); template = new BuildDefinitionTemplate(); template.setContinuumDefault( true ); template.setName( "Default Ant Template" ); template.setType( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR ); template = addBuildDefinitionTemplate( template ); BuildDefinition bd = new BuildDefinition(); bd.setDefaultForProject( true ); bd.setGoals( defaultAntGoals ); bd.setArguments( defaultAntArguments ); bd.setBuildFile( "build.xml" ); bd.setSchedule( getDefaultSchedule() ); bd.setDescription( "Default Ant Build Definition" ); bd.setTemplate( true ); bd.setType( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR ); return addBuildDefinitionInTemplate( template, bd, true ); }
BuildDefinition buildDefinition = new BuildDefinition(); buildDefinition.setModelEncoding( encoding ); java.util.Set parsed = new java.util.HashSet(); if ( buildDefinitionInstances == null ) buildDefinition.setId( getIntegerValue( getTrimmedValue( xmlStreamReader.getElementText()), "id", xmlStreamReader, strict ) ); buildDefinition.setDefaultForProject( getBooleanValue( getTrimmedValue( xmlStreamReader.getElementText()), "defaultForProject", xmlStreamReader ) ); buildDefinition.setGoals( getTrimmedValue( xmlStreamReader.getElementText()) ); buildDefinition.setArguments( getTrimmedValue( xmlStreamReader.getElementText()) ); buildDefinition.setBuildFile( getTrimmedValue( xmlStreamReader.getElementText()) ); buildDefinition.setBuildFresh( getBooleanValue( getTrimmedValue( xmlStreamReader.getElementText()), "buildFresh", xmlStreamReader ) ); buildDefinition.setDescription( getTrimmedValue( xmlStreamReader.getElementText()) ); buildDefinition.setType( getTrimmedValue( xmlStreamReader.getElementText()) ); buildDefinition.setAlwaysBuild( getBooleanValue( getTrimmedValue( xmlStreamReader.getElementText()), "alwaysBuild", xmlStreamReader ) ); buildDefinition.setTemplate( getBooleanValue( getTrimmedValue( xmlStreamReader.getElementText()), "template", xmlStreamReader ) ); buildDefinitionInstances.put( String.valueOf( buildDefinition.getId() ), buildDefinition); return buildDefinition;
if ( buildDefinition.getId() != 0 ) serializer.writeCharacters( String.valueOf( buildDefinition.getId() ) ); serializer.writeEndElement(); if ( buildDefinition.isDefaultForProject() != false ) serializer.writeCharacters( String.valueOf( buildDefinition.isDefaultForProject() ) ); serializer.writeEndElement(); if ( buildDefinition.getGoals() != null ) serializer.writeCharacters( buildDefinition.getGoals() ); serializer.writeEndElement(); if ( buildDefinition.getArguments() != null ) serializer.writeCharacters( buildDefinition.getArguments() ); serializer.writeEndElement(); if ( buildDefinition.getBuildFile() != null ) serializer.writeCharacters( buildDefinition.getBuildFile() ); serializer.writeEndElement(); if ( buildDefinition.isBuildFresh() != false ) serializer.writeCharacters( String.valueOf( buildDefinition.isBuildFresh() ) ); serializer.writeEndElement();
private org.apache.maven.continuum.model.project.BuildDefinition populateBuildDefinition( BuildDefinition buildDef ) { if ( buildDef == null ) { return null; } org.apache.maven.continuum.model.project.BuildDefinition bd = new org.apache.maven.continuum.model.project.BuildDefinition(); bd.setArguments( buildDef.getArguments() ); bd.setBuildFile( buildDef.getBuildFile() ); bd.setBuildFresh( buildDef.isBuildFresh() ); bd.setDefaultForProject( buildDef.isDefaultForProject() ); bd.setGoals( buildDef.getGoals() ); bd.setId( buildDef.getId() ); bd.setProfile( populateProfile( buildDef.getProfile() ) ); bd.setSchedule( populateSchedule( buildDef.getSchedule() ) ); return bd; }
bd.setArguments( buildDef.getArguments() ); bd.setBuildFile( buildDef.getBuildFile() ); bd.setType( buildDef.getType() ); bd.setBuildFresh( buildDef.isBuildFresh() ); bd.setAlwaysBuild( buildDef.isAlwaysBuild() ); bd.setDefaultForProject( buildDef.isDefaultForProject() ); bd.setGoals( buildDef.getGoals() ); bd.setId( buildDef.getId() ); if ( buildDef.getProfile() != null ) bd.setProfile( populateProfile( buildDef.getProfile(), continuum.getProfileService().getProfile( buildDef.getProfile().getId() ) ) ); bd.setProfile( null ); bd.setSchedule( populateSchedule( buildDef.getSchedule(), continuum.getSchedule( buildDef.getSchedule().getId() ) ) ); bd.setSchedule( null ); bd.setDescription( StringEscapeUtils.escapeXml( buildDef.getDescription() ) );
private static void processBuildDefinitions( List buildDefinitions, Map<Integer, Schedule> schedules, Map<Integer, Profile> profiles ) { for ( Iterator i = buildDefinitions.iterator(); i.hasNext(); ) { BuildDefinition def = (BuildDefinition) i.next(); if ( def.getSchedule() != null ) { def.setSchedule( schedules.get( Integer.valueOf( def.getSchedule().getId() ) ) ); } if ( def.getProfile() != null ) { def.setProfile( profiles.get( Integer.valueOf( def.getProfile().getId() ) ) ); } } } }
if ( !defaultSet && buildDefinition.isDefaultForProject() ) buildDefinition.setGoals( defaultGoal ); buildDefinition.setDefaultForProject( false ); if ( StringUtils.isEmpty( buildDefinition.getArguments() ) ) log.info( "build definition '" + buildDefinition.getId() + "' has empty args" ); String arguments = buildDefinition.getArguments().replace( "--non-recursive", "" ); arguments = arguments.replace( "-N", "" ); arguments = arguments.trim(); buildDefinition.setArguments( arguments ); buildDefinition.setTemplate( false ); buildDefinitions.add( buildDefinition );
public BuildDefinitionTemplate getDefaultShellBuildDefinitionTemplate() throws BuildDefinitionServiceException { BuildDefinitionTemplate template = getContinuumDefaultWithType( ContinuumBuildExecutorConstants.SHELL_BUILD_EXECUTOR ); if ( template != null ) { return template; } log.info( "create default ShellBuildDefinitionTemplate" ); template = new BuildDefinitionTemplate(); template.setContinuumDefault( true ); template.setName( "Default Shell Template" ); template.setType( ContinuumBuildExecutorConstants.SHELL_BUILD_EXECUTOR ); template = addBuildDefinitionTemplate( template ); BuildDefinition bd = new BuildDefinition(); bd.setDefaultForProject( true ); bd.setSchedule( getDefaultSchedule() ); bd.setType( ContinuumBuildExecutorConstants.SHELL_BUILD_EXECUTOR ); bd.setTemplate( true ); bd.setDescription( "Default Shell Build Definition" ); return addBuildDefinitionInTemplate( template, bd, true ); }
String buildDefinitionLabel = buildDef.getDescription(); if ( StringUtils.isEmpty( buildDefinitionLabel ) ) buildDefinitionLabel = buildDef.getGoals(); context.put( ContinuumBuildConstant.KEY_BUILD_FILE, buildDef.getBuildFile() ); if ( buildDef.getGoals() == null ) context.put( ContinuumBuildConstant.KEY_GOALS, buildDef.getGoals() ); if ( buildDef.getArguments() == null ) context.put( ContinuumBuildConstant.KEY_ARGUMENTS, buildDef.getArguments() ); context.put( ContinuumBuildConstant.KEY_USERNAME, buildDef.getSchedule().getName() ); context.put( ContinuumBuildConstant.KEY_BUILD_FRESH, buildDef.isBuildFresh() ); context.put( ContinuumBuildConstant.KEY_ALWAYS_BUILD, buildDef.isAlwaysBuild() ); context.put( ContinuumBuildConstant.KEY_OLD_SCM_CHANGES, getOldScmChanges( project.getId(), buildDefinitionId ) ); context.put( ContinuumBuildConstant.KEY_BUILD_AGENT_URL, buildAgentUrl ); context.put( ContinuumBuildConstant.KEY_MAX_JOB_EXEC_TIME, buildDef.getSchedule().getMaxJobExecutionTime() );
public ContinuumBuildExecutionResult build( Project project, BuildDefinition buildDefinition, File buildOutput ) throws ContinuumBuildExecutorException { String executable = getInstallationService().getExecutorConfigurator( InstallationService.MAVEN2_TYPE ) .getExecutable(); StringBuffer arguments = new StringBuffer(); String buildFile = getBuildFileForProject( project, buildDefinition ); if ( !StringUtils.isEmpty( buildFile ) && !"pom.xml".equals( buildFile ) ) { arguments.append( "-f " ).append( buildFile ).append( " " ); } arguments.append( StringUtils.clean( buildDefinition.getArguments() ) ).append( " " ); Properties props = getContinuumSystemProperties( project ); for ( Enumeration itr = props.propertyNames(); itr.hasMoreElements(); ) { String name = (String) itr.nextElement(); String value = props.getProperty( name ); arguments.append( "\"-D" ).append( name ).append( "=" ).append( value ).append( "\" " ); } arguments.append( StringUtils.clean( buildDefinition.getGoals() ) ); Map<String, String> environments = getEnvironments( buildDefinition ); String m2Home = environments.get( getInstallationService().getEnvVar( InstallationService.MAVEN2_TYPE ) ); if ( StringUtils.isNotEmpty( m2Home ) ) { executable = m2Home + File.separator + "bin" + File.separator + executable; setResolveExecutable( false ); } return executeShellCommand( project, executable, arguments.toString(), buildOutput, environments ); }
for ( BuildDefinition buildDefinition : buildDefinitions ) if ( !defaultSetted && buildDefinition.isDefaultForProject() ) buildDefinition.setDefaultForProject( true ); defaultSetted = true; if ( StringUtils.isNotEmpty( defaultGoal ) ) buildDefinition.setGoals( defaultGoal ); if ( buildDefinition.getSchedule() == null ) buildDefinition.setSchedule( schedule );
overallBuildQueue = getOverallBuildQueue( BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues() ); String buildDefinitionLabel = buildDefinition.getDescription(); buildDefinitionLabel = buildDefinition.getGoals(); BuildProjectTask buildTask = new BuildProjectTask( projectId, buildDefinition.getId(), buildTrigger, projectName, buildDefinitionLabel, scmResult, projectGroupId );
for ( BuildDefinition buildDefinition : buildDefinitions ) if ( buildDefinition.isDefaultForProject() ) projectBuildDef.setDefaultForProject( true ); String arguments = projectBuildDef.getArguments().replace( "--non-recursive", "" ); arguments = arguments.replace( "-N", "" ); arguments = arguments.trim(); if ( !projectBuildDef.getArguments().equals( arguments ) ) projectBuildDef.setArguments( arguments ); continuumProject.addBuildDefinition( projectBuildDef );
public static Project makeStubShellProject( String name, String script ) { Project project = new Project(); makeProject( project, name, "1.0" ); project.setExecutorId( ContinuumBuildExecutorConstants.SHELL_BUILD_EXECUTOR ); BuildDefinition def = new BuildDefinition(); def.setBuildFile( script ); project.addBuildDefinition( def ); return project; }
protected String getBuildFileForProject( BuildDefinition buildDefinition ) { return StringUtils.clean( buildDefinition.getBuildFile() ); }
private List<BuildDefinition> getBuildDefinitions( BuildDefinitionTemplate template, boolean loadRecursiveProjects ) throws ContinuumProjectBuilderException, BuildDefinitionServiceException { List<BuildDefinition> buildDefinitions = new ArrayList<BuildDefinition>(); for ( Iterator<BuildDefinition> iterator = template.getBuildDefinitions().iterator(); iterator.hasNext(); ) { BuildDefinition buildDefinition = iterator.next(); // due to CONTINUUM-1207 CONTINUUM-1436 user can do what they want with arguments // we must remove if exists --non-recursive or -N if ( !loadRecursiveProjects ) { if ( StringUtils.isEmpty( buildDefinition.getArguments() ) ) { // strange for a mvn build getLogger().info( "build definition has empty args" ); } else { String arguments = buildDefinition.getArguments().replace( "--non-recursive", "" ); arguments = arguments.replace( "-N", "" ); buildDefinition.setArguments( arguments ); } } buildDefinition.setTemplate( false ); buildDefinitions.add( buildDefinition ); } return buildDefinitions; }
private BuildDefinition persistBuildDefinition( BuildDefinition buildDefinition ) throws BuildDefinitionServiceException { buildDefinition = buildDefinitionService.addBuildDefinition( buildDefinition ); if ( buildDefinition.getSchedule() == null ) { try { Schedule schedule = scheduleDao.getScheduleByName( ConfigurationService.DEFAULT_SCHEDULE_NAME ); buildDefinition.setSchedule( schedule ); } catch ( ContinuumStoreException e ) { log.warn( "Can't get default schedule.", e ); } } return buildDefinition; }