====

    Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>

    ====================================================================
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
====

#
# this is a simple command line client that obtains the contents of a container
# 1. execute 'mvn install' to build the sample
# 2. invoke the jar, passing your credentials and the container you wish to get
# ex.
#   java -jar target/jclouds-getpath-jar-with-dependencies.jar accesskey secretkey container/path
