##############################################################################
##                                                                          ##
##  Groovy Classlaoding Configuration                                       ##
##                                                                          ##
##############################################################################

##
## $Revision$ $Date$
##
## Note: do not add clases from java.lang here. No rt.jar and no tools.jar
##

    # Allow access to resources
    load ${groovy.home}/conf
    
    # Load required libraries
    load ${groovy.home}/lib/*.jar

    # load user specific libraries
    load ${user.home}/.groovy/lib/*
    
    #tools.jar for ant tasks
    load ${tools.jar}