<?xml version="1.0" encoding="UTF-8"?>
<setup:Project
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:git="http://www.eclipse.org/oomph/setup/git/1.0"
    xmlns:jdt="http://www.eclipse.org/oomph/setup/jdt/1.0"
    xmlns:predicates="http://www.eclipse.org/oomph/predicates/1.0"
    xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
    xmlns:setup.p2="http://www.eclipse.org/oomph/setup/p2/1.0"
    xmlns:setup.targlets="http://www.eclipse.org/oomph/setup/targlets/1.0"
    xmlns:setup.workingsets="http://www.eclipse.org/oomph/setup/workingsets/1.0"
    xsi:schemaLocation="http://www.eclipse.org/oomph/setup/git/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Git.ecore http://www.eclipse.org/oomph/setup/jdt/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/JDT.ecore http://www.eclipse.org/oomph/predicates/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/targlets/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupTarglets.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupWorkingSets.ecore"
    name="${project.name}"
    label="${project.label}">
  <setupTask
      xsi:type="setup:CompoundTask"
      id="template.variables"
      name="@TemplateVariables@">
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.label"
        value="Cool Stuff"
        label="Label">
      <description>
        The title case name of the project, including spaces.
        This will be displayed in any tree view of this project.
      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.name"
        value="${project.label|qualifiedName}"
        label="Name">
      <description>
        The lower case name of the project.
        The project's qualified name will be prefixed by &quot;com.github.'.

      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        type="TEXT"
        name="project.description"
        value="${project.label} provides cool stuff"
        label="Description">
      <description>
        An informative multi-line description of what the project does.
        It will be displayed in the installer's hover for this project.
      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.git.path"
        value="johndoe/${project.label|camel}"
        label="Git path">
      <description>
        The Git path of the project's Eclipse repository.
        It will be expanded depending on the repository URI choice, e.g., 'https://github.com/&lt;git.path>.git.
      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.java.package"
        value="com.example"
        label="Package prefix">
      <description>The Java package prefix of the project's Java sources</description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.requirement.id"
        value="${project.java.package}.${project.name}.feature.group"
        label="Installable unit ID">
      <description>
        The root installable unit for this project.
        It's typically a feature that includes all or most of the project's other bundles and features.
        Keep in mind that a feature's ID is suffixed with '.feature.group' when represented as a p2 installable unit.
      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.requirement.name"
        value="${project.java.package}.${project.name}-feature"
        label="Installable unit name">
      <description>
        The Eclipse workspace name of the root installable unit's project.
        Keep in mind that a feature's project is typically suffixed with '-feature&quot; or '.feature'.
      </description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.jre"
        value="${jre.location-1.7}"
        label="JRE">
      <choice
          value="${jre.location-1.4}"
          label="J2SE-1.4"/>
      <choice
          value="${jre.location-1.5}"
          label="J2SE-1.5"/>
      <choice
          value="${jre.location-1.6}"
          label="JavaSE-1.6"/>
      <choice
          value="${jre.location-1.7}"
          label="JavaSE-1.7"/>
      <choice
          value="${jre.location-1.8}"
          label="JavaSE-1.8"/>
      <description>The JRE needed to build the project and to run the project's tools and tests.</description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        type="CONTAINER"
        name="project.location"
        label="Folder">
      <description>The workspace folder of the new project setup model.</description>
    </setupTask>
    <setupTask
        xsi:type="setup:VariableTask"
        name="project.filename"
        value="${project.label|camel}.setup"
        label="Filename">
      <description>The camel case filename of the new project setup model.</description>
    </setupTask>
  </setupTask>
  <setupTask
      xsi:type="jdt:JRETask"
      version="${project.jre|label}"
      location="${project.jre}">
    <description>Define the JRE needed to compile and run the Java projects of ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup:EclipseIniTask"
      option="-Xmx"
      value="2048m"
      vm="true">
    <description>Set the heap space needed to work with the projects of ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup:ResourceCreationTask"
      excludedTriggers="STARTUP MANUAL"
      content="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>&#xD;&#xA;&lt;section name=&quot;Workbench&quot;>&#xD;&#xA;&#x9;&lt;section name=&quot;org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart&quot;>&#xD;&#xA;&#x9;&#x9;&lt;item value=&quot;true&quot; key=&quot;group_libraries&quot;/>&#xD;&#xA;&#x9;&#x9;&lt;item value=&quot;false&quot; key=&quot;linkWithEditor&quot;/>&#xD;&#xA;&#x9;&#x9;&lt;item value=&quot;2&quot; key=&quot;layout&quot;/>&#xD;&#xA;&#x9;&#x9;&lt;item value=&quot;2&quot; key=&quot;rootMode&quot;/>&#xD;&#xA;&#x9;&#x9;&lt;item value=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;packageExplorer configured=&amp;quot;true&amp;quot; group_libraries=&amp;quot;1&amp;quot; layout=&amp;quot;2&amp;quot; linkWithEditor=&amp;quot;0&amp;quot; rootMode=&amp;quot;2&amp;quot; sortWorkingSets=&amp;quot;false&amp;quot; workingSetName=&amp;quot;&amp;quot;&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;workingSet editPageId=&amp;quot;org.eclipse.jdt.internal.ui.OthersWorkingSet&amp;quot; factoryID=&amp;quot;org.eclipse.ui.internal.WorkingSetFactory&amp;quot; id=&amp;quot;1382792884467_1&amp;quot; label=&amp;quot;Other Projects&amp;quot; name=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;activeWorkingSet workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;allWorkingSets workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/packageExplorer&amp;gt;&quot; key=&quot;memento&quot;/>&#xD;&#xA;&#x9;&lt;/section>&#xD;&#xA;&lt;/section>&#xD;&#xA;"
      targetURL="${workspace.location|uri}/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml"
      encoding="UTF-8">
    <description>Initialize JDT's package explorer to show working sets as its root objects</description>
  </setupTask>
  <setupTask
      xsi:type="setup:VariableTask"
      name="eclipse.target.platform"
      defaultValue="Luna"
      storageURI="scope://Workspace"/>
  <setupTask
      xsi:type="setup.p2:P2Task">
    <description>Install the tools needed in the IDE to work with the source code for ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="git:GitCloneTask"
      id="git.clone"
      remoteURI="${project.git.path}">
    <annotation
        source="http://www.eclipse.org/oomph/setup/InducedChoices">
      <detail
          key="inherit">
        <value>github.remoteURIs</value>
      </detail>
      <detail
          key="label">
        <value>${scope.project.label} Github repository</value>
      </detail>
      <detail
          key="target">
        <value>remoteURI</value>
      </detail>
    </annotation>
    <description>${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup.targlets:TargletTask">
    <targlet
        name="${scope.project.label}"
        activeRepositoryList="${eclipse.target.platform}">
      <requirement
          name="${project.requirement.id}"/>
      <requirement
          name="org.eclipse.sdk.feature.group"/>
      <sourceLocator
          rootFolder="${git.clone.location}"/>
      <repositoryList
          name="Mars">
        <repository
            url="http://download.eclipse.org/releases/mars"/>
      </repositoryList>
      <repositoryList
          name="Luna">
        <repository
            url="http://download.eclipse.org/releases/luna"/>
      </repositoryList>
      <repositoryList
          name="Kepler">
        <repository
            url="http://download.eclipse.org/releases/kepler"/>
      </repositoryList>
      <repositoryList
          name="Juno">
        <repository
            url="http://download.eclipse.org/releases/juno"/>
      </repositoryList>
    </targlet>
  </setupTask>
  <setupTask
      xsi:type="setup.workingsets:WorkingSetTask">
    <workingSet
        name="${scope.project.name}">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="${project.requirement.name}">
          <annotation
              source="http://www.eclipse.org/oomph/setup/FeatureSubstitution">
            <detail
                key="project">
              <value>${project.requirement.name}</value>
            </detail>
          </annotation>
        </operand>
      </predicate>
    </workingSet>
    <description>The dynamic working sets for ${scope.project.label}</description>
  </setupTask>
  <stream name="master"/>
  <logicalProjectContainer
      xsi:type="setup:ProjectCatalog"
      href="index:/org.eclipse.setup#//@projectCatalogs[name='com.github']"/>
  <description>${project.description}</description>
</setup:Project>
