# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
# - Apache License
# - BSD
# - CDDL + GPLv2 with classpath exception
# - CDDL 1.1
# - CDDL License
# - Common Public License Version 1.0
# - Eclipse Public License - Version 1.0
# - GNU Lesser General Public License (LGPL), Version 2.1
# - GNU Lesser General Public License, Version 2.1
# - GPL2 w/ CPE
# - MIT License
# - New BSD License
# - Public Domain
# - Revised BSD
# - The Apache Software License, Version 2.0
# - The BSD 3-Clause License
# - The BSD License
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
#Thu Oct 15 16:45:03 EDT 2015
commons-beanutils--commons-beanutils--1.7.0=The Apache Software License, Version 2.0
javax.servlet--servlet-api--2.5=CDDL License
javax.servlet.jsp--jsp-api--2.1=CDDL License
org.apache.zookeeper--zookeeper--3.4.6=The Apache Software License, Version 2.0
org.codehaus.jettison--jettison--1.1=The Apache Software License, Version 2.0
