# tell pde.build not to generate start levels
org.eclipse.pde.build.append.startlevels=false

# remove inclusion of javax.transaction - see bug #409122 for further information
requires.0.namespace = org.eclipse.equinox.p2.iu
requires.0.name = javax.transaction
requires.0.min = 0
requires.0.max = 0

# add requirement on org.eclipse.platform.ide
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=org.eclipse.platform.ide
#requires.1.range=[3.5.0.I20090522-1710,3.5.0.I20090522-1710]
requires.1.greedy=true

# disable listing of feature in any category
properties.1.name=org.eclipse.equinox.p2.type.category
properties.1.value=false

#instructions.configure=\
#org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//download.eclipse.org/mylyn/releases/kepler/,name:Mylyn for Eclipse Kepler);\
#org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//download.eclipse.org/mylyn/releases/kepler/,name:Mylyn for Eclipse Kepler);

#instructions.unconfigure=\
#org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:0,location:http${#58}//download.eclipse.org/mylyn/releases/kepler/);\
#org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:1,location:http${#58}//download.eclipse.org/mylyn/releases/kepler/);




properties.0.name = org.eclipse.equinox.p2.type.product
properties.0.value = true
