Apache Syncope
Copyright 2012-2022 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 Jackson project.

==

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

==

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 Eclipse Project for JAX-RS.
Eclipse Project for JAX-RS is a trademark of the Eclipse Foundation.
All content is the property of the respective authors or their employers. For more information regarding authorship of content, please consult the listed source code repository logs.

==

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

==

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

==

This product includes software developed by the Woodstox Project.

==

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

==

This product includes software developed by the Web Services Description Language for Java project.
Copyright (c) Dice.
All Rights Reserved.

==

This product includes software developed by the Eclipse Equinox project.
Copyright (c) 2017 The Eclipse Foundation.
All Rights Reserved.

==

This product includes software developed by the Eclipse e4 project.
Copyright (c) 2017 The Eclipse Foundation.
All Rights Reserved.

==

This product includes software developed by the Eclipse EMF project.
Copyright (c) 2017 The Eclipse Foundation.
All Rights Reserved

==

This product includes software developed by the Eclipse SWT project.
Copyright (c) 2017 The Eclipse Foundation.
All Rights Reserved.

==

This product includes software developed by the Jsoup project.
Copyright (c) 2009 - 2017 Jonathan Hedley (jonathan@hedley.net)
