# sigil-defaults.properties

# repository config
-repositories:  system, project, bld-common, felix, spring, bld-ant

system;provider:        system

project;provider:       project
project;pattern:        \
        ${..}/common/**/[sigilproject] \
        ${..}/eclipse/**/[sigilproject] \

bld-ant;provider:       filesystem
bld-ant;recurse:        true
bld-ant;dir:            ${cache.dir:-${..}/cache}/ant/lib

bld-common;provider:    filesystem
bld-common;recurse:     true
bld-common;dir:         ${cache.dir:-${..}/cache}/all

felix;provider: obr
felix;url:              http://felix.apache.org/obr/releases.xml 
felix;index:            ${..}/build/felix.obr
felix;cache:            ${..}/build/obr-cache

spring;provider:        obr
spring;url:             http://sigil.codecauldron.org/spring-external.obr
spring;index:           ${..}/build/spring-external.obr
spring;cache:           ${..}/build/obr-cache

# Default version of all Sigil projects
version: 0.9.0.${buildQualifier:-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.*:				0.9.0.${buildQualifier:-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.commons.cli:					1.2.0

# apache ant
package;org.apache.tools.ant:					1.7.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.service.packageadmin				1.2.0
package;org.osgi.util.tracker:					1.3.3

# Gogo
package;org.osgi.service.command:				0.2.0
