<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description>This job gets the latest contributions from helios build files (from HEAD) and invokes the Buckminster based builder. &#xd;
Results can be seen in &#xd;
http://build.eclipse.org/helios/buildresults/&#xd;
and a peek at update site categories can be seen at &#xd;
http://build.eclipse.org/helios/buildresults/final&#xd;
</description>
  <logRotator>
    <daysToKeep>5</daysToKeep>
    <numToKeep>10</numToKeep>
  </logRotator>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <useProjectSecurity>true</useProjectSecurity>
      <permission>hudson.model.Run.Update:thallgren</permission>
      <permission>hudson.model.Item.Build:gobrien</permission>
      <permission>hudson.model.Item.Build:thallgren</permission>
      <permission>hudson.model.Item.Build:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Configure:gobrien</permission>
      <permission>hudson.model.Item.Configure:thallgren</permission>
      <permission>hudson.model.Item.Configure:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Run.Delete:thallgren</permission>
      <permission>hudson.model.Item.Workspace:gobrien</permission>
      <permission>hudson.model.Item.Workspace:thallgren</permission>
      <permission>hudson.model.Item.Workspace:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Delete:thallgren</permission>
    </hudson.security.AuthorizationMatrixProperty>
    <hudson.plugins.descriptionsetter.JobByDescription/>
  </properties>
  <scm class="hudson.scm.CVSSCM">
    <cvsroot>:pserver:anonymous@dev.eclipse.org:/cvsroot/callisto</cvsroot>
    <module>org.eclipse.helios.build</module>
    <canUseUpdate>true</canUseUpdate>
    <flatten>true</flatten>
    <isTag>false</isTag>
    <excludedRegions></excludedRegions>
  </scm>
  <assignedNode>master</assignedNode>
  <canRoam>false</canRoam>
  <disabled>false</disabled>
  <jdk>Java 6.0 SR4</jdk>
  <triggers class="vector">
    <hudson.triggers.SCMTrigger>
      <spec># every 15 mins past the hour 
0 * * * *
15 * * * *
30 * * * *
45 * * * *
</spec>
    </hudson.triggers.SCMTrigger>
    <com.progress.hudson.ScheduleFailedBuildsTrigger>
      <spec>* * * * *</spec>
    </com.progress.hudson.ScheduleFailedBuildsTrigger>
  </triggers>
  <builders>
    <hudson.tasks.Ant>
      <targets>runBuckyBuild</targets>
      <antName>Ant 1.7.1</antName>
      <buildFile>/shared/helios/org.eclipse.helios.tools/build.xml</buildFile>
    </hudson.tasks.Ant>
  </builders>
  <publishers>
    <hudson.tasks.Mailer>
      <recipients>david_williams@us.ibm.com</recipients>
      <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
      <sendToIndividuals>false</sendToIndividuals>
    </hudson.tasks.Mailer>
  </publishers>
  <buildWrappers/>
</project>