	<!--
    ***************************************************************
    * Licensed to the Apache Software Foundation (ASF) under one
    * or more contributor license agreements.  See the NOTICE file
    * distributed with this work for additional information
    * regarding copyright ownership.  The ASF licenses this file
    * to you under the Apache License, Version 2.0 (the
    * "License"); you may not use this file except in compliance
    * with the License.  You may obtain a copy of the License at
    *
    *   http://www.apache.org/licenses/LICENSE-2.0
    * 
    * Unless required by applicable law or agreed to in writing,
    * software distributed under the License is distributed on an
    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    * KIND, either express or implied.  See the License for the
    * specific language governing permissions and limitations
    * under the License.
    ***************************************************************
   -->
<html>
<head>
  <title>Apache UIMA v2.4.0 Release Notes</title>
</head>
<body>
<h1>Apache UIMA (Unstructured Information Management Architecture) v2.4.0 Release Notes</h1>

<h2>Contents</h2>
<p>
<a href="#what.is.uima">What is UIMA?</a><br/>
<a href="#major.changes">Major Changes in this Release</a><br/>
<a href="#get.involved">How to Get Involved</a><br/>
<a href="#report.issues">How to Report Issues</a><br/>
<a href="#list.issues">List of JIRA Issues Fixed in this Release</a><br/>
<a href="#migrating">Migrating from IBM UIMA to Apache UIMA</a><br/>
</p>  
   
<h2><a name="what.is.uima">1. What is UIMA?</a></h2>

     <p>
  			Unstructured Information Management applications are
				software systems that analyze large volumes of
				unstructured information in order to discover knowledge
				that is relevant to an end user. UIMA is a framework and
				SDK for developing such applications. An example UIM
				application might ingest plain text and identify
				entities, such as persons, places, organizations; or
				relations, such as works-for or located-at. UIMA enables
				such an application to be decomposed into components,
				for example "language identification" -&gt; "language
				specific segmentation" -&gt; "sentence boundary
				detection" -&gt; "entity detection (person/place names
				etc.)". Each component must implement interfaces defined
				by the framework and must provide self-describing
				metadata via XML descriptor files. The framework manages
				these components and the data flow between them.
				Components are written in Java or C++; the data that
				flows between components is designed for efficient
				mapping between these languages. UIMA additionally
				provides capabilities to wrap components as network
				services, and can scale to very large volumes by
				replicating processing pipelines over a cluster of
				networked nodes.
			</p>
                                                <p>
				Apache UIMA is an Apache-licensed open source
				implementation of the UIMA specification (that
				specification is, in turn, being developed concurrently
				by a technical committee within
				<a href="http://www.oasis-open.org">OASIS</a>
				, a standards organization). We invite and encourage you
				to participate in both the implementation and
				specification efforts.
			</p>
                                                <p>
				UIMA is a component framework for analysing unstructured
				content such as text, audio and video. It comprises an
				SDK and tooling for composing and running analytic
				components written in Java and C++, with some support
				for Perl, Python and TCL.
			</p>

<h2><a name="major.changes">Major Changes in this Release</a></h2>
<p>
Please see the <a href="README">README</a> for this information.
</p>
  
<h2><a name="get.involved">How to Get Involved</a></h2>
<p>
The Apache UIMA project really needs and appreciates any contributions, 
including documentation help, source code and feedback.  If you are interested
in contributing, please visit 
<a href="http://uima.apache.org/get-involved.html">
  http://uima.apache.org/get-involved.html</a>.
</p>
  
<h2><a name="report.issues">How to Report Issues</a></h2>
<p>
The Apache UIMA project uses JIRA for issue tracking.  Please report any 
issues you find at 
<a href="http://issues.apache.org/jira/browse/uima">http://issues.apache.org/jira/browse/uima</a>
</p>
  
<h2><a name="list.issues">List of JIRA Issues Fixed in this Release</a></h2>
Click <a href="issuesFixed/jira-report.html">issuesFixed/jira-report.hmtl</a> for the list of 
issues fixed in this release.

<h2><a name="migrating">Migrating from IBM UIMA to Apache UIMA</a></h2>

<p>
This section describes how to move from pre-Apache versions of UIMA to the
Apache version (starting with Apache UIMA 2.1).
</p>

<p>
Note: Before running the migration utility, be sure to back up your files, just 
in case you encounter any problems, because the migration tool updates the 
files in place in the directories where it finds them.
</p>
<p>
The migration utility is run by executing the script file 
apache-uima/bin/ibmUimaToApacheUima.bat (Windows) or 
apache-uima/bin/ibmUimaToApacheUima.sh (UNIX). You must pass one argument: the 
directory containing the files that you want to be migrated. Subdirectories 
will be processed recursively.
</p>
<p>
The script scans your files and applies the necessary updates, for example 
replacing the com.ibm package names with the new org.apache package names. 
</p>
<p>
The script will only attempt to modify files with the extensions: java, xml, 
xmi, wsdd, properties, launch, bat, cmd, sh, ksh, or csh; and files with no 
extension. Also, files with size greater than 1,000,000 bytes will be skipped. 
(If you want the script to modify files with other extensions, you can edit 
the script file and change the -ext argument appropriately.)
</p>  
<p>
If the migration tool reports warnings, there may be a few additional steps to 
take. The following two sections explain some simple manual changes that you
might need to make to your code.
</p>
  
<h3>3.1. JCas Cover Classes for DocumentAnnotation</h3>
<p>
If you have run JCasGen it is likely that you have the classes 
com.ibm.uima.jcas.tcas.DocumentAnnotation and 
com.ibm.uima.jcas.tcas.DocumentAnnotation_Type as part of your code. This 
package name is no longer valid, and the migration utility does not move your 
files between directories so it is unable to fix this.
</p>
<p>
If you have not made manual modifications to these classes, the best solution 
is usually to just delete these two classes (and their containing package). 
There is a default version in the uima-document-annotation.jar file that is 
included in Apache UIMA. If you have made custom changes, then you should not 
delete the file but instead move it to the correct package 
org.apache.uima.jcas.tcas. For more information about JCas and 
DocumentAnnotation please see Section 5.5.4, 
"Adding Features to DocumentAnnotation" in the 
  <a href="docs/html/references/references.html">UIMA References</a> manual.
</p>  
  
<h3>3.2. JCas.getDocumentAnnotation</h3>
<p>
The deprecated method JCas.getDocumentAnnotation has been removed. Its use 
must be replaced with JCas.getDocumentAnnotationFs. The method 
JCas.getDocumentAnnotationFs() returns type TOP, so your code must cast this to 
type DocumentAnnotation. The reasons for this are described in Section 
5.5.4, "Adding Features to DocumentAnnotation" in the 
<a href="docs/html/references/references.html">UIMA References</a> manual.
</p>
  
<h3>3.3. Rare Cases Where Additional Manual Migration is Necessary</h3>
<p>
For most users there should not be any additional migration steps necessary.
However, if the migration tool reported an additional warning or if you are 
having trouble getting your code to compile or run after running the migration, 
please see Section 1.4.2. "Rare Cases Where Additional Manual Migration is 
Necessary," in the <a href="docs/html/overview_and_setup/overview_and_setup.html">
Overview and Setup</a> manual.
</p>
  
    
</body>
</html>