Apache Syncope
Copyright 2012-2015 The Apache Software Foundation

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

The following copyright notice(s) were affixed to portions of this code
with which this file is now or was at one time distributed.

==

This product includes software developed by the Activiti BPM Platform project (http://www.activiti.org/).

==

This product includes software developed by Oracle Corporation.
Copyright (C) 1999-2013 http://www.oracle.com/ and/or its affiliates.
All rights reserved.

==

This product includes software developed by the AOP Alliance (Java/J2EE AOP standards).

==

This product includes software developed by the ASM project (http://asm.ow2.org/).
Copyright (c) 2000-2011 INRIA, France Telecom
All rights reserved.

==

This product includes AspectJ (>= 1.52) software developed by the Eclipse
Software Foundation.
This software is included in binary form only.

==

This product includes software developed by ClassMate (https://github.com/cowtowncoder/java-classmate).

==

This product includes software developed by Tirasa (http://www.tirasa.net)
Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
Copyright 2011-2015 Tirasa S.r.l. All rights reserved.
This software is included in binary form only.

==

This product includes software developed by the dom4j Project.
Copyright 2001-2010 (C) MetaStuff, Ltd.
All Rights Reserved.

==

This product contains unmodified binary redistributions for H2 database engine
(http://www.h2database.com/), which is dual licensed and available under a 
modified version of the MPL 1.1 (Mozilla Public License) or under the 
(unmodified) EPL 1.0 (Eclipse Public License).
An original copy of the license agreement can be found at: 
http://www.h2database.com/html/license.html

==

This product includes software developed by the Hibernate Validator Project (http://hibernate.org/validator/).
Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual contributors by the @authors tag

==

This product includes the Javascript syntax highlighter (http://highlightjs.org/).
Copyright (c) 2006, Ivan Sagalaev

==

This product includes software developed by the Jackson project (http://wiki.fasterxml.com/JacksonHome).

==

This product includes software developed by the Joda Time project (http://www.joda.org/joda-time/).

==

This product includes the jQuery Core JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors,
https://jquery.org/

==

This product includes the jQuery UI JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors,
https://jquery.org/

==

This product includes software developed by the MyBatis project.

==

This product includes software developed by Terracotta. Inc.
Quartz Scheduler source code and documentation are Copyright (c) Terracotta, Inc.

==

This product includes software developed by the SERP Project.
Copyright (c) 2002-2007, A. Abram White http://serp.sourceforge.net/
All rights reserved.

==

This products includes software developed by SLF4J (http://www.slf4j.org)
Copyright (c) 2004-2013 QOS.ch.

==

This product includes software developed by SpringSource
Copyright (c) 2004-2015 SpringSource
All rights reserved.

==

This product includes software developed by the Bean Validation Project (http://beanvalidation.org).
Copyright (c) Red Hat, Inc., Emmanuel Bernard

==

This product includes software developed by the Woodstox Project (http://woodstox.codehaus.org/).

==

This product includes software developed by Web Services Description Language for Java (http://wsdl4j.sourceforge.net/).
Copyright (c) Dice.
All Rights Reserved.
