Apache Syncope
Copyright 2012-2021 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-2016 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 Bean Validation Project (http://beanvalidation.org).
Copyright (c) Red Hat, Inc., Emmanuel Bernard

==

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-2016 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-2016 QOS.ch.
