Apache Syncope
Copyright 2012-2020 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 AOP Alliance (Java/J2EE AOP standards).

==

This product includes software developed by the Jackson project.

==

This product includes software developed by the Java Uuid Generator (JUG) project.

==

This product includes software developed by the Google Guava project.
Copyright (c) 2016 The Guava Authors.

==

This product includes software developed by the JAXB project.
Copyright (c) 2013-2016 The JAXB project.

==

This product includes software developed by the HikariCP project.

==

This product includes the Javascript syntax highlighter.
Copyright (c) 2006, Ivan Sagalaev

==

This product includes software developed by the Metrics project.
Copyright (c) 2010-2014 Coda Hale, Yammer.com

==

This product includes software developed by the Swagger project.
Copyright 2016 SmartBear Software

==

This product includs software developed by Oracle.
Copyright (c) 2012-2013 Oracle and/or its affiliates. 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 JAX-RS project.
Copyright (c) 2014, Oracle Corporation and/or its affiliates. All rights reserved.

==

This product includes software developed by the Joda Time project.
Copyright (c) 2002-2016 Joda.org. All Rights Reserved.

==

This product includes the jQuery Core JavaScript Library.
Copyright 2007, 2016 jQuery Foundation and other contributors.

==

This product includes the jQuery UI JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors.

==

This product includes software developed by Terracotta. Inc.
Ehcache 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 product includes software developed by the ConnId project.
Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
Copyright 2011-2016 Tirasa S.r.l. All rights reserved.

==

This product includes software developed by the Flowable project.

==

This product includes AspectJ (>= 1.52) software developed by the Eclipse
Software Foundation.

==

This product includes software developed by the Legion of the Bouncy Castle.
Copyright (c) 2000-2016 The Legion of the Bouncy Castle Inc. (http://www.bouncycastle.org)

==

This product includes software developed by the Stax 2 Extension API Project.

==

This product includes software developed by the Woodstox Project.

==

This project includes software developed by the Jasypt project.
Copyright (c) 2014 The JASYPT team. All Rights Reserved

==

This product includes softare developed by the Javassist project.
Copyright (C) 1999- by Shigeru Chiba, All rights reserved.

==

This product includes software developed by the MyBatis project.

==

This product includes software developed by the Shibboleth 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 Reflections project.

==

This products includes software developed by the Simple Logging Facade for Java (SLF4J) project.
Copyright (c) 2004-2016 QOS.ch.

==

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

==

This product includes software developed by the SnakeYAML project.
