# sigil-defaults.properties

# Default version of all Sigil projects
version: ${buildVersion:-0.9.0.SNAPSHOT}

# Default bundle headers
header;update-site: ${update.site:-${.}/site}
header;Bundle-Category: development
header;Bundle-ContactAddress: http://felix.apache.org
header;Bundle-Vendor: The Apache Software Foundation

# Default package version ranges
# if no version specified, BND uses resolved version, dropping minor number

package;org.apache.felix.sigil.*:				${buildVersion:-0.9.0.SNAPSHOT}

package;aQute.lib.osgi:						0.0.0

# junit
package;junit.framework:					4.4.0
	
# apache commons	
package;org.apache.commons.lang:				2.4.0
package;org.apache.commons.lang.text:				2.4.0

package;org.apache.ivy*:					[2.0.0,2.0.0]
package;org.apache.tools.ant*:					1.7.1

# ganymede
# package;org.eclipse.core.resources:				3.4.1
# package;org.eclipse.core.runtime.content:			1.5.4
# package;org.eclipse.ui:					3.4.1
# package;org.eclipse.core.runtime.jobs:			3.4.0
# package;org.eclipse.debug.core:				3.4.0
# package;org.eclipse.debug.ui:					3.4.2
# package;org.eclipse.jdt.core:					3.4.2
# package;org.eclipse.jface.dialogs:				3.4.1
# package;org.eclipse.jface.preference:				3.4.1
# package;org.eclipse.jface.resource:				3.4.1
# package;org.eclipse.jface.util:					3.4.1
# package;org.eclipse.jface.window:				3.4.1
# package;org.eclipse.ui.console:					3.3.1
# package;org.eclipse.ui.dialogs:					3.4.1
# package;org.eclipse.ui.plugin:					3.4.1
# package;org.eclipse.core.commands:				3.4.0
# package;org.eclipse.core.commands.common:			3.4.0
# package;org.eclipse.core.internal.preferences:			3.2.201
# package;org.eclipse.draw2d:					3.4.2
# org.eclipse.jdt
# package;org.eclipse.jdt.core.compiler:				3.4.2
# package;org.eclipse.jdt.core.dom:				3.4.2
# package;org.eclipse.jdt.core.dom.rewrite:			3.4.2
# package;org.eclipse.jdt.internal.corext.dom:			3.4.2
# package;org.eclipse.jdt.internal.corext.util:			3.4.2
# package;org.eclipse.jdt.internal.ui:				3.4.2
# package;org.eclipse.jdt.internal.ui.propertiesfileeditor:	3.4.2
# package;org.eclipse.jdt.ui:					3.4.2
# package;org.eclipse.jdt.ui.text:				3.4.2
# package;org.eclipse.jdt.ui.text.java:				3.4.2
# package;org.eclipse.jdt.ui.wizards:				3.4.2

# org.eclipse.jface
# package;org.eclipse.jface.action:				3.4.1
# package;org.eclipse.jface.fieldassist:				3.4.1
# package;org.eclipse.jface.layout:				3.4.1
# package;org.eclipse.jface.operation:				3.4.1
# package;org.eclipse.jface.text:					3.4.2
# package;org.eclipse.jface.text.contentassist:			3.4.2
# package;org.eclipse.jface.viewers:				3.4.1
# package;org.eclipse.jface.wizard:				3.4.1

# org.eclipse.ltk
# package;org.eclipse.ltk.core.refactoring:			3.4.2

# org.eclipse.pde
# package;org.eclipse.pde.internal.ui.editor:			3.4.0
# package;org.eclipse.pde.internal.ui.parts:			3.4.0

# org.eclipse.ui
# package;org.eclipse.ui.actions:					3.4.1
# package;org.eclipse.ui.cheatsheets:				3.3.101
# package;org.eclipse.ui.editors.text:				3.4.0
# package;org.eclipse.ui.forms:					3.3.103
# package;org.eclipse.ui.forms.editor:				3.3.103
# package;org.eclipse.ui.forms.events:				3.3.103
# package;org.eclipse.ui.forms.widgets:				3.3.103
# package;org.eclipse.ui.handlers:				3.4.1
# package;org.eclipse.ui.ide:					3.4.2
# package;org.eclipse.ui.part:					3.4.1
# package;org.eclipse.ui.progress:				3.4.1
# package;org.eclipse.ui.texteditor:				3.4.0
# package;org.eclipse.ui.wizards.newresource:			3.4.2

# org.eclipse.zest
# package;org.eclipse.zest.core.viewers:				1.0.0
# package;org.eclipse.zest.core.widgets:				1.0.0
# package;org.eclipse.zest.layouts:				1.0.0
# package;org.eclipse.zest.layouts.algorithms:			1.0.0

# galileo
package;org.eclipse.*:				0.0.0


# OSGi framework
package;org.osgi.framework:					1.4.0
package;org.osgi.framework.launch:				1.0.0
package;org.osgi.service.prefs:					1.1.0
package;org.osgi.util.tracker:					1.3.3
