instructions.configure=\
addRepository(type:0,location:https${#58}//download.eclipse.org/eclipse/updates/4.20,name:The Eclipse Project Updates);\
addRepository(type:1,location:https${#58}//download.eclipse.org/eclipse/updates/4.20,name:The Eclipse Project Updates);\
addRepository(type:0,location:https${#58}//download.eclipse.org/releases/2021-06,name:2021-06);\
addRepository(type:1,location:https${#58}//download.eclipse.org/releases/2021-06,name:2021-06);\
  mkdir(path:${installFolder}/dropins);
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=toolingorg.eclipse.configuration.macosx
requires.1.filter=(osgi.os=macosx)
requires.1.range=[1.0.0,1.0.0]
requires.1.greedy=true

requires.2.namespace=org.eclipse.equinox.p2.iu
requires.2.name=toolingorg.eclipse.configuration
requires.2.filter=(!(osgi.os=macosx))
requires.2.range=[1.0.0,1.0.0]
requires.2.greedy=true

units.1.id=toolingorg.eclipse.configuration.macosx
units.1.version=1.0.0
units.1.provides.1.namespace=org.eclipse.equinox.p2.iu
units.1.provides.1.name=toolingorg.eclipse.configuration.macosx
units.1.provides.1.version=1.0.0
units.1.filter=(osgi.os=macosx)
units.1.touchpoint.id=org.eclipse.equinox.p2.osgi
units.1.touchpoint.version=1.0.0
units.1.instructions.configure=setProgramProperty(propName:osgi.instance.area.default,propValue:@user.home/Documents/workspace);
units.1.instructions.unconfigure=setProgramProperty(propName:osgi.instance.area.default,propValue:);

units.2.id=toolingorg.eclipse.configuration
units.2.version=1.0.0
units.2.provides.1.namespace=org.eclipse.equinox.p2.iu
units.2.provides.1.name=toolingorg.eclipse.configuration
units.2.provides.1.version=1.0.0
units.2.filter=(!(osgi.os=macosx))
units.2.touchpoint.id=org.eclipse.equinox.p2.osgi
units.2.touchpoint.version=1.0.0
units.2.instructions.configure=setProgramProperty(propName:osgi.instance.area.default,propValue:@user.home/workspace);
units.2.instructions.unconfigure=setProgramProperty(propName:osgi.instance.area.default,propValue:);

# Restrict range so we are not an automatic update for 3.x.
update.id = org.eclipse.platform.sdk
update.range = [4.0,$version$)
update.severity = 0
update.description = An update for 4.x generation Platform SDK

# Set the product property type
properties.0.name = org.eclipse.equinox.p2.type.product
properties.0.value = true

properties.1.name = org.eclipse.equinox.p2.description
properties.1.value = 4.20 Release of the Platform SDK.

properties.2.name = org.eclipse.equinox.p2.provider
properties.2.value = Eclipse.org
