<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description>Generates the galileo build scripts from models found in /cvsroot/callisto/org.eclipse.galileo.build</description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <useProjectSecurity>true</useProjectSecurity>
      <permission>hudson.model.Item.Delete:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Workspace:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Run.Update:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Configure:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Item.Build:ROLE_CALLISTO-DEV</permission>
      <permission>hudson.model.Run.Delete:ROLE_CALLISTO-DEV</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.galileo.build</module>
    <canUseUpdate>true</canUseUpdate>
    <flatten>true</flatten>
    <isTag>false</isTag>
    <excludedRegions></excludedRegions>
  </scm>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <jdk>(Default)</jdk>
  <triggers class="vector"/>
  <builders>
    <hudson.tasks.Ant>
      <targets></targets>
      <antName>(Default)</antName>
    </hudson.tasks.Ant>
  </builders>
  <publishers>
    <hudson.tasks.Mailer>
      <recipients>richard.gronback@borland.com</recipients>
      <dontNotifyEveryUnstableBuild>false</dontNotifyEveryUnstableBuild>
      <sendToIndividuals>false</sendToIndividuals>
    </hudson.tasks.Mailer>
  </publishers>
  <buildWrappers/>
  <customWorkspace>/shared/galileo/build/config</customWorkspace>
</project>