<?xml version="1.0" encoding="UTF-8"?>
<!--
This file was generated by Eclipse EGF
-->
<project>
  <description></description>
  <actions>

  </actions>
  <builders>
    <hudson.tasks.Ant>
      <targets>all</targets>
      <buildFile>git/git_eclipse/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-neon/releng/build.xml</buildFile>
    </hudson.tasks.Ant>

  </builders>
  <buildWrappers>

  </buildWrappers>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <permission>hudson.model.Item.Cancel:mhelleboid</permission>
      <permission>hudson.model.Item.Read:mhelleboid</permission>
      <permission>hudson.model.Item.Delete:mhelleboid</permission>
      <permission>hudson.model.Item.Workspace:mhelleboid</permission>
      <permission>hudson.model.Item.Build:mhelleboid</permission>
      <permission>hudson.model.Item.Configure:mhelleboid</permission>
      <permission>hudson.model.Run.Update:mhelleboid</permission>
      <permission>hudson.model.Run.Delete:mhelleboid</permission>
			
      <permission>hudson.model.Item.Cancel:langlois</permission>
      <permission>hudson.model.Item.Read:langlois</permission>
      <permission>hudson.model.Item.Delete:langlois</permission>
      <permission>hudson.model.Item.Workspace:langlois</permission>
      <permission>hudson.model.Item.Build:langlois</permission>
      <permission>hudson.model.Item.Configure:langlois</permission>
      <permission>hudson.model.Run.Update:langlois</permission>
      <permission>hudson.model.Run.Delete:langlois</permission>
			
      <permission>hudson.model.Item.Cancel:tguiu</permission>
      <permission>hudson.model.Item.Read:tguiu</permission>
      <permission>hudson.model.Item.Delete:tguiu</permission>
      <permission>hudson.model.Item.Workspace:tguiu</permission>
      <permission>hudson.model.Item.Build:tguiu</permission>
      <permission>hudson.model.Item.Configure:tguiu</permission>
      <permission>hudson.model.Run.Update:tguiu</permission>
      <permission>hudson.model.Run.Delete:tguiu</permission>
			
    </hudson.security.AuthorizationMatrixProperty>
    <hudson.plugins.zentimestamp.ZenTimestampJobProperty>
      <changeBUILDID>true</changeBUILDID>
      <pattern>yyyyMMdd-HHmm</pattern>
    </hudson.plugins.zentimestamp.ZenTimestampJobProperty>

  </properties>
  <publishers>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>result/publish/**</artifacts>
      <latestOnly>false</latestOnly>
    </hudson.tasks.ArtifactArchiver>
    <hudson.tasks.junit.JUnitResultArchiver>
      <testResults>result/testReport*.xml</testResults>
      <keepLongStdio>false</keepLongStdio>
      <testDataPublishers/>
    </hudson.tasks.junit.JUnitResultArchiver>
    <hudson.tasks.junit.JUnitResultArchiver>
      <testResults>result/testReport*.xml</testResults>
      <keepLongStdio>false</keepLongStdio>
      <testDataPublishers/>
    </hudson.tasks.junit.JUnitResultArchiver>
    <hudson.tasks.JavadocArchiver>
      <javadocDir>../javadoc</javadocDir>
      <keepAll>false</keepAll>
    </hudson.tasks.JavadocArchiver>

  </publishers>
  <triggers class="vector">

  </triggers>
  <scm class="hudson.plugins.git.GitSCM">
    <configVersion>2</configVersion>
    <userRemoteConfigs>
      <hudson.plugins.git.UserRemoteConfig>
        <name></name>
        <refspec></refspec>
        <url>https://git.eclipse.org/r/egf/org.eclipse.emf.egf</url>
        <relativeTargetDir>git/git_eclipse</relativeTargetDir>
        </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
      <hudson.plugins.git.BranchSpec>
        <name>master</name>
      </hudson.plugins.git.BranchSpec>
    </branches>
    <disableSubmodules>false</disableSubmodules>
    <recursiveSubmodules>false</recursiveSubmodules>
    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
    <authorOrCommitter>false</authorOrCommitter>
    <clean>false</clean>
    <wipeOutWorkspace>false</wipeOutWorkspace>
    <pruneBranches>false</pruneBranches>
    <remotePoll>false</remotePoll>
    <ignoreNotifyCommit>false</ignoreNotifyCommit>
    <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
    <gitTool>Default</gitTool>
    <submoduleCfg class="list"/>
    <relativeTargetDir>git</relativeTargetDir>
    <reference></reference>
    <excludedRegions></excludedRegions>
    <excludedUsers></excludedUsers>
    <gitConfigName></gitConfigName>
    <gitConfigEmail></gitConfigEmail>
    <skipTag>false</skipTag>
    <includedRegions></includedRegions>
    <scmName></scmName>
  </scm>
    <logRotator>
    <daysToKeep>-1</daysToKeep>
    <numToKeep>10</numToKeep>
    <artifactDaysToKeep>-1</artifactDaysToKeep>
    <artifactNumToKeep>-1</artifactNumToKeep>
  </logRotator>

  <!--userDeployServerUrl=https://hudson.eclipse.org/hudson-->

</project>