#######################################################################################
# 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 used 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. requires 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 its 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
#######################################################################################

dltk.eclipse.build.id=3.3
dltk.eclipse.build.dir=R-3.3-200706251500

#######################################################################################
# Eclipse Platfrom Dependency
# Eclipse Platfrom will be used for building the distribution
# groupID : eclipse
eclipse.url  = http://download.eclipse.org/eclipse/downloads/drops/${dltk.eclipse.build.dir}
eclipse.file.linux-gtk-x86=eclipse-platform-${dltk.eclipse.build.id}-linux-gtk.tar.gz
eclipse.file.linux-gtk-ppc=eclipse-platform-${dltk.eclipse.build.id}-linux-gtk-ppc.tar.gz
eclipse.file.win32-win32-x86=eclipse-platform-${dltk.eclipse.build.id}-win32.zip
eclipse.file.macosx-carbon-ppc=eclipse-platform-${dltk.eclipse.build.id}-macosx-carbon.tar.gz
eclipse.name = Eclipse Platform v3.3 
eclipse.description = ${eclipse.name}

#######################################################################################
# Eclipse Test Framework
# Eclipse Test Framework support zip to be downloaded
# Eclipse Test Framework will be used for testing and building the tests
# groupID : eclipseTestFramework

eclipseTestFramework.url  = http://download.eclipse.org/eclipse/downloads/drops/${dltk.eclipse.build.dir}
eclipseTestFramework.file = eclipse-test-framework-${dltk.eclipse.build.id}.zip

eclipseTestFramework.name = Eclipse test framework v3.3 Stream
eclipseTestFramework.description = Eclipse test framework v3.3 Stream

eclipseJDT.url  = http://download.eclipse.org/eclipse/downloads/drops/${dltk.eclipse.build.dir}
eclipseJDT.file = eclipse-JDT-${dltk.eclipse.build.id}.zip

eclipseJDT.name = Eclipse JDT v3.3 
eclipseJDT.description = Eclipse JDT v3.3   

eclipse_windows.url  = http://download.eclipse.org/eclipse/downloads/drops/${dltk.eclipse.build.dir}
eclipse_windows.file=eclipse-platform-${dltk.eclipse.build.id}-win32.zip
eclipse.name = Eclipse Platform v3.3 
eclipse.description = ${eclipse.name}

epp.build.id=I-I200708220605-200708220605
epp.url = http://nsk.xored.local/cisco/epp/downloads/drops/R1.0/${epp.build.id}/ 
epp.file.linux-gtk-x86 = cisco-epp-${epp.build.id}-linux-gtk-x86.zip
epp.file.win32-win32-x86 = cisco-epp-${epp.build.id}-win32.zip
epp.name = EPP installer
epp.description = ${epp.name}