<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description>This manual-only job will get the latest (HEAD) version of org.eclipse.helios.tools, which contains the build.xml file that controls the other jobs. &#xd;
I pretty much should be ran once, when first setting up. after that, can use the ant task helios.reinstallRelengFiles to do the same thing (but better). &#xd;
</description>
  <logRotator>
    <daysToKeep>5</daysToKeep>
    <numToKeep>10</numToKeep>
    <artifactDaysToKeep>-1</artifactDaysToKeep>
    <artifactNumToKeep>-1</artifactNumToKeep>
  </logRotator>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <permission>hudson.model.Item.Configure:thallgren</permission>
      <permission>hudson.model.Item.Configure:david_williams</permission>
      <permission>hudson.model.Item.Workspace:thallgren</permission>
      <permission>hudson.model.Item.Workspace:david_williams</permission>
      <permission>hudson.model.Run.Delete:thallgren</permission>
      <permission>hudson.model.Run.Delete:david_williams</permission>
      <permission>hudson.model.Run.Update:thallgren</permission>
      <permission>hudson.model.Run.Update:david_williams</permission>
      <permission>hudson.model.Item.Delete:thallgren</permission>
      <permission>hudson.model.Item.Delete:david_williams</permission>
      <permission>hudson.model.Item.Build:thallgren</permission>
      <permission>hudson.model.Item.Build:david_williams</permission>
    </hudson.security.AuthorizationMatrixProperty>
    <hudson.plugins.disk__usage.DiskUsageProperty/>
  </properties>
  <scm class="hudson.scm.NullSCM"/>
  <assignedNode>slave1||master</assignedNode>
  <canRoam>false</canRoam>
  <disabled>true</disabled>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <jdk>(Default)</jdk>
  <triggers class="vector"/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
      <command>/shared/helios/getRelengTools.sh</command>
    </hudson.tasks.Shell>
  </builders>
  <publishers/>
  <buildWrappers>
    <hudson.plugins.locksandlatches.LockWrapper>
      <locks>
        <hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
          <name>simrel-lock-helios</name>
        </hudson.plugins.locksandlatches.LockWrapper_-LockWaitConfig>
      </locks>
    </hudson.plugins.locksandlatches.LockWrapper>
  </buildWrappers>
  <customWorkspace>/shared/helios/org.eclipse.helios.tools/</customWorkspace>
</project>