Apache Click
Copyright 2009 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

======================================================================

This product includes the OGNL library, developed by Drew Davidson and
released under the BSD License.
http://www.ognl.org/

======================================================================

This product includes the compiled classes
framework/src/EDU/oswego/cs/dl/util/concurrent/ConcurrentReaderHashMap*.class,
from the Concurrent utilities library, developed by Doug Lea.

EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap[1] is taken
from [2], which states the following:

      "All classes are released to the public domain and may be used for
      any purpose whatsoever without permission or acknowledgment.
      Portions of the CopyOnWriteArrayList and ConcurrentReaderHashMap
      classes are adapted from Sun JDK source code. These are copyright
      of Sun Microsystems, Inc, and are used with their kind permission,
      as described in this license[3]."

[1]: http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/ConcurrentReaderHashMap.java
[2]: http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
[3]: http://g.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/sun-u.c.license.pdf

======================================================================

This product includes contributions by Ahmed Mohombe and Christian Essl,
released under the Apache 2.0 license.

======================================================================

This product includes software from the Seraph project developed by Atlassian
and released under the BSD License.
http://www.atlassian.com/

======================================================================

This product includes the prototype JavaScript library,
developed by Sam Stephenson, distributed under the terms of the MIT
license.
http://prototypejs.org/

======================================================================

This product includes the script.aculo.us JavaScript library,
developed by Thomas Fuchs, distributed under the terms of the MIT
license.
http://script.aculo.us/

======================================================================

This product includes the Virtual Keyboard JavaScript library,
released under the BSD License.
http://www.greywyvern.com/code/js/keyboard.html

======================================================================

This product includes the ColorPicker library developer by Sebo Zoltan,
distributed under the terms of the MIT license.
http://www.dhtmlgoodies.com/index.html?whichScript=submitted-color-picker

======================================================================

This product includes the rico JavaScript library, developed by 
Sabre Airline Solutions and released under the Apache 2.0 license.
http://openrico.org

======================================================================

This product includes the YUI JavaScript library, developed by Yahoo
and released under the BSD License.
http://developer.yahoo.com/yui/

======================================================================

This product includes the HSQLDB library developed by
The HSQL Development Group and released under the HSQLDB License.
http://www.hsqldb.org/

======================================================================

This product includes the Google Code Prettify JavaScript library
developed by Mike Samuel and released under the Apache 2.0 license.
http://code.google.com/p/google-code-prettify/

======================================================================

This project include the FamFamFam icons by Mark James, distributed
under the terms of the Creative Commons Attribution 2.5 License.
http://www.famfamfam.com/lab/icons

======================================================================