<?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 b3 aggregator, &#xd;
with options to create hybrid p2 and maven repo.  &#xd;
Results can be seen in &#xd;
http://build.eclipse.org/helios/hybrid/&#xd;
</description>
  <logRotator>
    <daysToKeep>5</daysToKeep>
    <numToKeep>20</numToKeep>
    <artifactDaysToKeep>-1</artifactDaysToKeep>
    <artifactNumToKeep>-1</artifactNumToKeep>
  </logRotator>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <permission>hudson.model.Run.Delete:thallgren</permission>
      <permission>hudson.model.Item.Delete:thallgren</permission>
      <permission>hudson.model.Run.Update:thallgren</permission>
      <permission>hudson.model.Item.Configure:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Configure:thallgren</permission>
      <permission>hudson.model.Item.Build:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Build:thallgren</permission>
      <permission>hudson.model.Item.Workspace:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Workspace:thallgren</permission>
    </hudson.security.AuthorizationMatrixProperty>
    <hudson.plugins.disk__usage.DiskUsageProperty/>
  </properties>
  <scm class="hudson.scm.NullSCM"/>
  <assignedNode>master</assignedNode>
  <canRoam>false</canRoam>
  <disabled>true</disabled>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <jdk>(Default)</jdk>
  <triggers class="vector"/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Ant>
      <targets>runHybrid</targets>
      <antName>apache-ant-1.7.1</antName>
      <antOpts>-Denv.HOSTNAME=build</antOpts>
      <buildFile>/shared/helios/org.eclipse.helios.tools/build.xml</buildFile>
      <properties>heliosPropertyFile=production.properties</properties>
    </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>
    <hudson.plugins.locksandlatches.LockWrapper>
      <locks>
        <hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
          <name>(default)</name>
        </hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
      </locks>
    </hudson.plugins.locksandlatches.LockWrapper>
  </buildWrappers>
</project>