# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
# - Apache Software License
# - Apache Software License, Version 2.0
# - BSD License
# - Common Development And Distribution License (CDDL), Version 1.0
# - Common Development And Distribution License (CDDL), Version 1.1
# - Common Public License, Version 1.0
# - Eclipse Public License, Version 1.0
# - GNU General Public License (GPL), Version 2 with classpath exception
# - GNU Lesser General Public License (LGPL)
# - GNU Lesser General Public License (LGPL), Version 2.1
# - ICU License
# - MIT License
# - Public Domain License
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
#Mon Mar 05 17:34:54 CET 2012
asm--asm--3.1=BSD License
javax.servlet--servlet-api--2.4=Common Development And Distribution License (CDDL), Version 1.0
org.codehaus.jettison--jettison--1.3=The Apache Software License, Version 2.0
org.osgi--org.osgi.compendium--4.1.0=The Apache Software License, Version 2.0
org.osgi--org.osgi.core--4.1.0=The Apache Software License, Version 2.0
owlapi--owlapi--3.2.3=The Apache Software License, Version 2.0
xerces--xercesImpl--2.7.1=The Apache Software License, Version 2.0
