# 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
felix;offline		${offline:-false}

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

# 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
