<?xml version="1.0" encoding="UTF-8"?>
<setup:Macro
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
    xmlns:setup.p2="http://www.eclipse.org/oomph/setup/p2/1.0"
    name="jre"
    label="JRE">
  <setupTask
      xsi:type="setup.p2:P2Task"
      label="JRE 11.0.15">
    <requirement
        name="org.eclipse.justj.openjdk.hotspot.jre.full.feature.group"
        filter="(|(&amp;(osgi.arch=aarch64)(osgi.os=linux))(&amp;(osgi.arch=aarch64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=linux))(&amp;(osgi.arch=x86_64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=win32)))"/>
    <repository
        url="https://download.eclipse.org/justj/jres/11/updates/release/11.0.15"/>
    <description>
      Contains the plug-ins and fragments for the Adoptium OpenJDK Hotspot JRE Complete.
      Provides the complete set of modules of the JDK, excluding incubators.
    </description>
  </setupTask>
  <setupTask
      xsi:type="setup.p2:P2Task"
      label="JRE 17.0.3">
    <annotation
        source="http://www.eclipse.org/oomph/setup/JRESpecificTasks">
      <content
          xsi:type="setup:EclipseIniTask"
          option="--add-opens=java.base/java.lang=ALL-UNNAMED"
          vm="true"/>
    </annotation>
    <requirement
        name="org.eclipse.justj.openjdk.hotspot.jre.full.feature.group"
        filter="(|(&amp;(osgi.arch=aarch64)(osgi.os=linux))(&amp;(osgi.arch=aarch64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=linux))(&amp;(osgi.arch=x86_64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=win32)))"/>
    <repository
        url="https://download.eclipse.org/justj/jres/17/updates/release/17.0.3"/>
    <description>
      Contains the plug-ins and fragments for the Adoptium OpenJDK Hotspot JRE Complete.
      Provides the complete set of modules of the JDK, excluding incubators.
    </description>
  </setupTask>
  <setupTask
      xsi:type="setup.p2:P2Task"
      label="JRE 18.0.1">
    <annotation
        source="http://www.eclipse.org/oomph/setup/JRESpecificTasks">
      <content
          xsi:type="setup:EclipseIniTask"
          option="--add-opens=java.base/java.lang=ALL-UNNAMED"
          vm="true"/>
      <content
          xsi:type="setup:EclipseIniTask"
          option="-Djava.security.manager"
          value="=allow"
          vm="true"/>
    </annotation>
    <requirement
        name="org.eclipse.justj.openjdk.hotspot.jre.full.feature.group"
        filter="(|(&amp;(osgi.arch=aarch64)(osgi.os=linux))(&amp;(osgi.arch=aarch64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=linux))(&amp;(osgi.arch=x86_64)(osgi.os=macosx))(&amp;(osgi.arch=x86_64)(osgi.os=win32)))"/>
    <repository
        url="https://download.eclipse.org/justj/jres/18/updates/release/18.0.1"/>
    <description>
      Contains the plug-ins and fragments for the Adoptium OpenJDK Hotspot JRE Complete.
      Provides the complete set of modules of the JDK, excluding incubators.
    </description>
  </setupTask>
  <description>The JRE macro provides tasks for installing JREs from JustJ's p2 update sites</description>
</setup:Macro>
