<?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:pde="http://www.eclipse.org/oomph/setup/pde/1.0"
    xmlns:predicates="http://www.eclipse.org/oomph/predicates/1.0"
    xmlns:projects="http://www.eclipse.org/oomph/setup/projects/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.workingsets="http://www.eclipse.org/oomph/setup/workingsets/1.0"
    xmlns:workingsets="http://www.eclipse.org/oomph/workingsets/1.0"
    xsi:schemaLocation="http://www.eclipse.org/oomph/setup/git/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Git.ecore http://www.eclipse.org/oomph/setup/jdt/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/JDT.ecore http://www.eclipse.org/oomph/setup/pde/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/PDE.ecore http://www.eclipse.org/oomph/predicates/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/projects/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Projects.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/SetupWorkingSets.ecore http://www.eclipse.org/oomph/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/WorkingSets.ecore"
    name="epsilon"
    label="Epsilon">
  <annotation
      source="http://www.eclipse.org/oomph/setup/BrandingInfo">
    <detail
        key="imageURI">
      <value>https://eclipse.dev/epsilon/assets/images/epsilon-eclipse-installer.png</value>
    </detail>
    <detail
        key="siteURI">
      <value>https://eclipse.dev/epsilon/</value>
    </detail>
  </annotation>
  <setupTask
      xsi:type="jdt:JRETask"
      version="JavaSE-21"
      location="${jre.location-21}"
      name="JDK 21+">
    <description>Define the JDK needed to compile and run the Java projects of ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup:VariableTask"
      id="eclipse.target.platform"
      name="eclipse.target.platform"
      value="None"/>
  <setupTask
      xsi:type="setup:EclipseIniTask"
      option="-Xms"
      value="512m"
      vm="true">
    <description>Set the heap space needed to work with the projects of ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup:EclipseIniTask"
      option="-Xmx"
      value="2g"
      vm="true">
    <description>Set the heap space needed to work with the projects of ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="setup.p2:P2Task">
    <requirement
        name="org.eclipse.platform.feature.group"/>
    <requirement
        name="org.eclipse.platform.ide"/>
    <requirement
        name="org.eclipse.pde.feature.group"/>
    <requirement
        name="org.eclipse.jdt.feature.group"/>
    <requirement
        name="org.eclipse.egit.feature.group"/>
    <requirement
        name="org.eclipse.epp.mpc.feature.group"/>
    <requirement
        name="org.eclipse.emf.feature.group"/>
    <requirement
        name="org.eclipse.emf.common.feature.group"/>
    <requirement
        name="org.eclipse.emf.ecore.feature.group"/>
    <requirement
        name="org.eclipse.emf.edit.feature.group"/>
    <requirement
        name="org.eclipse.emf.edit.ui.feature.group"/>
    <requirement
        name="org.eclipse.emf.ecore.edit.feature.group"/>
    <repository
        url="http://download.eclipse.org/releases/latest"/>
  </setupTask>
  <setupTask
      xsi:type="setup:ResourceCreationTask"
      excludedTriggers="STARTUP MANUAL"
      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>
    <content>
      &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
      &lt;section name=&quot;Workbench&quot;>
      	&lt;section name=&quot;org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart&quot;>
      		&lt;item value=&quot;true&quot; key=&quot;group_libraries&quot;/>
      		&lt;item value=&quot;false&quot; key=&quot;linkWithEditor&quot;/>
      		&lt;item value=&quot;2&quot; key=&quot;layout&quot;/>
      		&lt;item value=&quot;2&quot; key=&quot;rootMode&quot;/>
      		&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;/>
      	&lt;/section>
      &lt;/section>

    </content>
  </setupTask>
  <setupTask
      xsi:type="git:GitCloneTask"
      id="epsilon.github.clone"
      remoteURI="eclipse-epsilon/epsilon">
    <annotation
        source="http://www.eclipse.org/oomph/setup/InducedChoices">
      <detail
          key="inherit">
        <value>github.remoteURIs</value>
      </detail>
      <detail
          key="label">
        <value>Main repo</value>
      </detail>
      <detail
          key="target">
        <value>remoteURI</value>
      </detail>
    </annotation>
    <description>Epsilon main development repo</description>
  </setupTask>
  <setupTask
      xsi:type="git:GitCloneTask"
      id="www.epsilon.github.clone"
      remoteURI="eclipse-epsilon/epsilon-website"
      checkoutBranch="main">
    <annotation
        source="http://www.eclipse.org/oomph/setup/InducedChoices">
      <detail
          key="inherit">
        <value>github.remoteURIs</value>
      </detail>
      <detail
          key="label">
        <value>Website repo</value>
      </detail>
      <detail
          key="target">
        <value>remoteURI</value>
      </detail>
    </annotation>
    <description>Epsilon website</description>
  </setupTask>
  <setupTask
      xsi:type="git:GitCloneTask"
      id="epsilon.antlr.github.clone"
      remoteURI="epsilonlabs/epsilon-antlr-dev"
      checkoutBranch="master">
    <annotation
        source="http://www.eclipse.org/oomph/setup/InducedChoices">
      <detail
          key="label">
        <value>Parser repo</value>
      </detail>
      <detail
          key="target">
        <value>remoteURI</value>
      </detail>
      <detail
          key="inherit">
        <value>github.remoteURIs</value>
      </detail>
    </annotation>
    <description>Epsilon ANTLR repo</description>
  </setupTask>
  <setupTask
      xsi:type="projects:ProjectsImportTask">
    <sourceLocator
        rootFolder="${epsilon.github.clone.location/plugins}"/>
    <sourceLocator
        rootFolder="${epsilon.github.clone.location/tests}"/>
    <sourceLocator
        rootFolder="${epsilon.github.clone.location/examples}"/>
    <sourceLocator
        rootFolder="${epsilon.github.clone.location/features}"/>
    <sourceLocator
        rootFolder="${epsilon.github.clone.location/releng}"/>
    <sourceLocator
        rootFolder="${epsilon.antlr.github.clone.location}"/>
    <description>Development Projects</description>
  </setupTask>
  <setupTask
      xsi:type="setup.workingsets:WorkingSetTask">
    <workingSet
        name="Epsilon Plugins">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="org.eclipse.epsilon.releng"/>
        <operand
            xsi:type="predicates:LocationPredicate"
            pattern=".*/plugins/.*"/>
      </predicate>
    </workingSet>
    <workingSet
        name="Epsilon Tests">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="org.eclipse.epsilon.releng"/>
        <operand
            xsi:type="predicates:LocationPredicate"
            pattern=".*/tests/.*"/>
      </predicate>
    </workingSet>
    <workingSet
        name="Epsilon Features">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="org.eclipse.epsilon.releng"/>
        <operand
            xsi:type="predicates:LocationPredicate"
            pattern=".*/features/.*"/>
      </predicate>
    </workingSet>
    <workingSet
        name="Epsilon Examples">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="predicates:LocationPredicate"
            pattern=".*/examples/.*"/>
        <operand
            xsi:type="predicates:RepositoryPredicate"
            project="org.eclipse.epsilon.releng"/>
      </predicate>
    </workingSet>
    <workingSet
        name="Epsilon (unclassified)">
      <predicate
          xsi:type="predicates:AndPredicate">
        <operand
            xsi:type="workingsets:ExclusionPredicate"
            excludedWorkingSet="//@setupTasks.10/@workingSets[name='Epsilon%20Plugins'] //@setupTasks.10/@workingSets[name='Epsilon%20Examples'] //@setupTasks.10/@workingSets[name='Epsilon%20Features'] //@setupTasks.10/@workingSets[name='Epsilon%20Tests']"/>
        <operand
            xsi:type="predicates:OrPredicate">
          <operand
              xsi:type="predicates:NamePredicate"
              pattern="org.eclipse.epsilon.*"/>
          <operand
              xsi:type="predicates:RepositoryPredicate"
              project="org.eclipse.epsilon.releng"/>
        </operand>
      </predicate>
    </workingSet>
    <description>The dynamic working sets for ${scope.project.label}</description>
  </setupTask>
  <setupTask
      xsi:type="pde:TargetPlatformTask"
      name="Epsilon Target Platform">
    <description></description>
  </setupTask>
  <stream name="main"
      label="Main">
    <setupTask
        xsi:type="setup:EclipseIniTask"
        option="-Doomph.redirection.epsilon.git"
        value="=https://raw.githubusercontent.com/eclipse-epsilon/epsilon/main/releng/org.eclipse.epsilon.releng/epsilonDev.setup->${epsilon.github.clone.location|uri}/releng/org.eclipse.epsilon.releng/epsilonDev.setup"
        vm="true">
      <description>Set an Oomph redirection system property to redirect the logical location of this setup to its physical location in the Git clone.</description>
    </setupTask>
  </stream>
  <logicalProjectContainer
      xsi:type="setup:ProjectCatalog"
      href="index:/org.eclipse.setup#//@projectCatalogs[name='org.eclipse']"/>
  <description>A family of languages and tools for code generation, model-to-model transformation, model validation, comparison, migration and refactoring that work out of the box with EMF, UML, Simulink, XML, CSV and other types of models.</description>
</setup:Project>
