#######################################################################################
# Dali dependencies.properties
# A dependency is identied by:
# groupId: a simple component name that adheres to java 
#           variable naming conventions. e.g. wtp
# url:  Url to a remote repository that can be used by a 
#       http GET request to download the library 
#       to a local cache repository. URL should not include the file.
#       See the next description for the file
# file: Name of the library that is used.  If the library is platform dependent
#       it must have suffixes such as: file.linux.gtk.x86
#       These suffixes are the same as those useb by releng baseos,basews,basearch
#            baseos= linux or win32
#            basews= gtk or win32
#            basearch=x86
# name:  A short user readable name for the library.
# description:  One line description for the library.
# autodownload: [optional] default true.  Set this to false if the file cannot be
#                downloaded automatically (i.e. requies license accept click through).
#                If autodownload is false, and the library is not avaialbe in the local
#                repository (cache).  User must download the library and copy it into
#                the local repository. 
# releng.url: [optional] Copies the original to a releng repository.  Useful for libraries
#                        that can get deleted from their original URLs.  Releng will use
#                        the local cache, original url, releng.url in that order to get the
#                        the dependency.  If a releng.url is not provided, the library will
#                        always be requested from itrs original site.
# 
# Example:
# wtp.url  = http://download.eclipse.org/webtools/downloads/drops/R-0.7-200507290654
# wtp.file = wtp-sdk-0.7.zip
# wtp.name = WTP 0.7 SDK
# wtp.description = WTP 0.7 SDK distribution
#######################################################################################

#######################################################################################
# Web Tools Platform (WTP) Dependency
# WTP bundle zip to be downloaded
# WTP SDK will be used for building the distribution
# groupID : wtp
#wtp.url  = http://download.eclipse.org/webtools/downloads/drops/R2.0/S-2.0M5-200702230758
#wtp.file = wtp-sdk-S-2.0M5-200702230758.zip
#wtp.name = WTP sdk v2.0 S-2.0M5-200702230758
#wtp.description = WTP sdk bundle v2.0 S-2.0M5-200702230758
wtp.url  = http://download.eclipse.org/webtools/downloads/drops/R2.0/S-2.0M6-200704060120
wtp.file = wtp-sdk-S-2.0M6-200704060120.zip
wtp.name = WTP sdk v2.0 S-2.0M6-200704060120
wtp.description = WTP sdk bundle v2.0 S-2.0M6-200704060120
#######################################################################################
