##############################################################################
##                                                                          ##
##  Groovy Shell Classworlds Configuration                                  ##
##                                                                          ##
##############################################################################

##
## $Revision$ $Date$
##

# The main entry-point
#main is groovy.ui.GroovyMain

    # 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/*

    # load tools.jar
    load ${tools.jar}
    
    # load the classpath too, to prevent the app loader to load script classes
    load ${java.classpath}