instructions.configure=\
addRepository(type:0,location:http${#58}//download.eclipse.org/eclipse/updates/4.11,name:The Eclipse Project Updates);\
addRepository(type:1,location:http${#58}//download.eclipse.org/eclipse/updates/4.11,name:The Eclipse Project Updates);\
addRepository(type:0,location:http${#58}//download.eclipse.org/releases/2019-03,name:2019-03);\
addRepository(type:1,location:http${#58}//download.eclipse.org/releases/2019-03,name:2019-03);\
addRepository(type:0,location:http${#58}//download.eclipse.org/releases/2018-12,name:2018-12);\
addRepository(type:1,location:http${#58}//download.eclipse.org/releases/2018-12,name:2018-12);\
  mkdir(path:${installFolder}/dropins);
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=toolingorg.eclipse.platform.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.platform.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.platform.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.platform.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);
#ln(linkTarget:Eclipse.app/Contents/MacOS/eclipse,targetDir:${installFolder},linkName:eclipse,force:true);
units.1.instructions.unconfigure=setProgramProperty(propName:osgi.instance.area.default,propValue:);
#org.eclipse.equinox.p2.touchpoint.natives.remove(path:${installFolder}/eclipse);

units.2.id=toolingorg.eclipse.platform.configuration
units.2.version=1.0.0
units.2.provides.1.namespace=org.eclipse.equinox.p2.iu
units.2.provides.1.name=toolingorg.eclipse.platform.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.ide
update.range = [4.0,$version$)
update.severity = 0
update.description = An update for 4.x generation Eclipse Platform.

# 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 = Initial 4.11 Release of the Eclipse Platform.

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