----------------------------------------------------------------

Apache UIMA uimaFIT
Copyright 2012-2020 The Apache Software Foundation

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

----------------------------------------------------------------

Apache UIMA uimaFIT - Core
Copyright 2013-2020 The Apache Software Foundation

Copyright 2009-2012 Regents of the University of Colorado.
All rights reserved.

Copyright 2009-2012 Ubiquitous Knowledge Processing (UKP) Lab.
Technische Universität Darmstadt.
All rights reserved.

----------------------------------------------------------------

Apache UIMA uimaFIT - Collection Processing Engine support
Apache UIMA uimaFIT - Legacy uimaFIT support
Copyright 2012-2020 The Apache Software Foundation

----------------------------------------------------------------

Apache UIMA Base 2.10.4: uimaj-core
Apache UIMA Base 2.10.4: jVinci: Vinci Transport Library
Apache UIMA Base 2.10.4: uimaj-adapter-vinci: Vinci Adapter
Apache UIMA Base 2.10.4: uimaj-cpe: Collection Processing Engine
Copyright 2006-2019 The Apache Software Foundation

Portions of Apache UIMA were originally developed by
International Business Machines Corporation and are
licensed to the Apache Software Foundation under the
"Software Grant License Agreement", informally known as the
"IBM UIMA License Agreement".
Copyright (c) 2003, 2006 IBM Corporation.

----------------------------------------------------------------

Apache Commons IO 2.2
Copyright 2002-2012 The Apache Software Foundation

----------------------------------------------------------------

Apache Commons Lang 2.6
Copyright 2001-2011 The Apache Software Foundation

----------------------------------------------------------------

Commons Logging 1.2
Copyright 2003-2014 The Apache Software Foundation
  
----------------------------------------------------------------
  
Spring Framework 4.3.26.RELEASE
Copyright (c) 2002-2020 Pivotal, Inc.

This product is licensed to you under the Apache License, Version 2.0
(the "License"). You may not use this product except in compliance with
the License.

This product may include a number of subcomponents with separate
copyright notices and license terms. Your use of the source code for
these subcomponents is subject to the terms and conditions of the
subcomponent's license, as noted in the license.txt file.

----------------------------------------------------------------

AnnotationLiteral.java

Licensed under the Apache License, Version 2.0.
File was copied from the javax.enterprise cdi-api version 1.0.

JBoss, Home of Professional Open Source
Copyright 2008, Red Hat Middleware LLC, and individual contributors
by the @authors tag.