properties.0.name = org.eclipse.oomph.p2.iu.compatibility
properties.0.value = Major

instructions.configure=setProgramProperty(propName:eclipse.p2.max.threads,propValue:10);\
  setProgramProperty(propName:org.eclipse.update.reconcile,propValue:false);\
  setProgramProperty(propName:osgi.requiredJavaVersion,propValue:1.8);\
  setProgramProperty(propName:p2.userAgent,propValue:eclipse/oomph/installer);\
  setProgramProperty(propName:oomph.setup.product.catalog.filter,propValue:);\
  setProgramProperty(propName:oomph.setup.product.filter,propValue:);\
  setProgramProperty(propName:oomph.setup.product.version.filter,propValue:);\
  setProgramProperty(propName:oomph.setup.jre.choice,propValue:true);

instructions.unconfigure=setProgramProperty(propName:eclipse.p2.max.threads,propValue:);\
  setProgramProperty(propName:org.eclipse.update.reconcile,propValue:);\
  setProgramProperty(propName:osgi.requiredJavaVersion,propValue:);\
  setProgramProperty(propName:p2.userAgent,propValue:);\
  setProgramProperty(propName:oomph.setup.product.catalog.filter,propValue:);\
  setProgramProperty(propName:oomph.setup.product.filter:);\
  setProgramProperty(propName:oomph.setup.product.version.filter,propValue:);\
  setProgramProperty(propName:oomph.setup.jre.choice,propValue:);