| // 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. |
| |
| [[_ugr.tools.uimafit.migration]] |
| = Migration Guide |
| |
| This section provides helpful information on incompatible changes between versions. |
| |
| == Version 3.0.x to 3.1.x |
| |
| .Changes to ExternalResourceFactory |
| The renaming of methods in the `ExternalResourceFactory` had unfortunately introduced another name |
| clash between unrelated methods. To fix this clash, the following methods have been renamed from |
| `bindResource` to `bindResourceOnce`: |
| |
| * `void bindResource(ResourceCreationSpecifier aDesc, String aBindTo, ExternalResourceDescription aRes)` |
| was *removed* and replaced by |
| `void bindResourceOnce(ResourceCreationSpecifier aDesc, String aBindTo, ExternalResourceDescription aRes)` |
| * `void bindResource(ExternalResourceDescription aRes, String aBindTo, ExternalResourceDescription aNestedRes)` |
| was deprecated and replaced by |
| `void bindResourceOnce(ExternalResourceDescription aRes, String aBindTo, ExternalResourceDescription aNestedRes)` |
| * `void bindResource(ResourceManagerConfiguration aResMgrCfg, String aBindTo, ExternalResourceDescription aRes)` |
| was deprecated and replaced by |
| `void bindResourceOnce(ResourceManagerConfiguration aResMgrCfg, String aBindTo, ExternalResourceDescription aRes)` |
| * `void bindResource(ResourceCreationSpecifier aDesc, String aBindTo, String aRes)` |
| was *removed* and replaced by |
| `void bindResourceOnceWithoutNested(ResourceCreationSpecifier aDesc, String aBindTo, String aRes)` |
| * `void bindResource(ResourceManagerConfiguration aResMgrCfg, String aBindTo, String aRes)` |
| was deprecated and replaced by |
| `void bindResourceOnceWithoutNested(ResourceManagerConfiguration aResMgrCfg, String aBindTo, String aRes)` |
| * `void bindResource(ResourceSpecifier aDesc, String aKey, String aUrl)` |
| was deprecated and replaced by |
| `void bindResourceUsingUrl(ResourceSpecifier aDesc, String aKey, String aUrl)` |
| |
| == Version 2.x to 3.x |
| |
| .Legacy support module removed |
| The legacy support in uimaFIT 2.x was present allow being compatible with the pre-Apache uimaFIT |
| versions which were based on UIMA 2.x. Since uimaFIT 3.x is not compatible with UIMA 2.x anyway, |
| the legacy module was removed now. |
| |
| .Using List instead of Collection |
| The `CasUtil`, `JCasUtil` and `FSCollectionFactory` classes were adjusted to return results using `List` |
| instead of the more general `Collection`. Often, lists are already used internally and then again |
| wrapped into new lists in client code. This API change avoids this in the future. |
| |
| .Throwing specific exceptions instead of UIMAException |
| Several uimaFIT methods were throwing the generic `UIMAException`. These have been adjusted to |
| declare throwing several of the sub-types of `UIMAException` to be better able to handle specific |
| causes of errors in client code. |
| |
| .CasUtil.selectSingle signature changed |
| Signature of `CasUtil.selectSingle` has been changed to return `AnnotationFS`. The original signature |
| is available as `selectSingleFS` |
| |
| .Removal of deprecated methods |
| Various methods that were deprecated in uimaFIT 2.4.0 or earlier have been removed in this release. |
| For details, please refer to the `api-change-report.html` file included in the release. |
| |
| .Changes to ExternalResourceFactory |
| Most methods in the `ExternalResourceFactory` have seen changes to their names and signature to avoid |
| problematic ambiguities as well as to be shorter. In general, the `External` component of the method |
| names was either removed or replaced. So most methods called `createExternalResourceDescription` |
| are now called `createResourceDescription`. However, some have also been given a more specific name |
| and/or a slightly different order of parameters. For example, this method |
| |
| [source,java] |
| ---- |
| public static ExternalResourceDescription createExternalResourceDescription( |
| Class<? extends SharedResourceObject> aInterface, String aUrl, Object... aParams) |
| ---- |
| |
| was changed to |
| |
| |
| [source,java] |
| ---- |
| public static ExternalResourceDescription createSharedResourceDescription( |
| String aUrl, Class< extends SharedResourceObject> aInterface, Object... aParams) |
| ---- |
| |
| .Changes to logging |
| UIMA v3 has is using SLF4J. As a consequence, the `ExtendedLogger` which uimaFIT had returned on |
| calls to `getLogger()` has been removed and instead the regular UIMA v3 logger class is returned |
| which offers methods quite compatible with what `ExtendedLogger` offered before. However, it is |
| recommended that you go through all your logging calls and replace calls which use string |
| concatenation to construct the logging message with corresponding calls using placeholders. For |
| example, replace `getLogger().error("Cannot access " + filename, exception);` with |
| `getLogger().error("Cannot access {}", filename, exception);`. |
| |
| .Version requirements |
| Depends on UIMA 3.0.2, Spring Framework 4.3.22 and Java 8. |
| |
| == Version 2.3.0 to 2.4.0 |
| |
| .Version requirements |
| Depends on UIMA 2.10.2, Spring Framework 3.2.16 and Java 7. |
| |
| Mind the updated version requirements. |
| There should be no other potentially problematic changes in this upgrade. |
| |
| == Version 2.2.0 to 2.3.0 |
| |
| .CasIOUtil deprecated |
| The functionality of the uimaFIT CasIOUtil class has been superseded by the core UIMA class CasIOUtils added in UIMA 2.9.0. |
| The method signatures in the new class are not the same, but provide more functionality. |
| CasIOUtil has been deprecated and documentation has been added which of the CasIOUtils methods should be used instead. |
| |
| .Version requirements |
| Depends on UIMA 2.9.1, Spring Framework 3.2.16 and Java 7. |
| |
| Mind the updated version requirements. |
| There should be no other potentially problematic changes in this upgrade. |
| |
| == Version 2.1.0 to 2.2.0 |
| |
| .Version requirements |
| Depends on UIMA 2.8.1, Spring Framework 3.2.16 and Java 7. |
| |
| Mind the updated version requirements. |
| There should be no other potentially problematic changes in this upgrade. |
| |
| == Version 2.0.0 to 2.1.0 |
| |
| .Version requirements |
| Depends on UIMA 2.6.0 and Java 6. |
| |
| .AnnotationFactory.createAnnotation() |
| No longer throws ``UIMAExcption``. |
| If this exception was cought, some IDEs may complain here after upgrading to uimaFIT 2.1.0. |
| |
| == Version 1.4.0 to 2.0.0 |
| |
| .Version requirements |
| Depends on UIMA 2.4.2. |
| |
| .Backwards compatibility |
| Compatibility with legacy annotation is provided by the Legacy support module. |
| |
| .Change of Maven groupId and artifactId |
| The Maven group ID has changed from `org.uimafit` to ``org.apache.uima``. |
| |
| The artifact ID of the main uimaFIT artifact has been changed from `uimafit` to ``uimafit-core``. |
| |
| .Change of package names |
| The base package has been renamed from `org.uimafit` to ``org.apache.uima.fit``. |
| A global search/replace on Java files with for lines starting with `import org.uimafit` and replacing that with `import org.apache.uima.fit` should work. |
| |
| .@ConfigurationParameter |
| The default value for the mandatory attribute now is ``true``. |
| The default name of configuration parameters is now the name of the annotated field only. |
| The classname is no longer prefixed. |
| The method `ConfigurationParameterFactory.createConfigurationParameterName()` that was used to generate the prefixed name has been removed. |
| |
| .Type detection: META-INF/org.uimafit folder |
| The `META-INF/org.uimafit` was renamed to ``META-INF/org.apache.uima.fit``. |
| |
| .JCasUtil |
| The deprecated `JCasUtil.iterate()` methods have been removed. `JCasUtil.select()` should be used instead. |
| |
| .AnalysisEngineFactory |
| All `createAggregateXXX` and `createPrimitiveXXX` methods have been renamed to ``createEngineXXX``. |
| The old names are deprecated and will be removed in future versions. |
| |
| All `createAnalysisEngineXXX` methods have been renamed to ``createEngineXXX``. |
| The old names are deprecated and will be removed in future versions. |
| |
| .CollectionReaderFactory |
| All `createDescriptionXXX` methods have been renamed to ``createReaderDescriptionXXX``. |
| The old names are deprecated and will be removed in future versions. |
| |
| All `createCollectionReaderXXX` methods have been renamed to ``createReaderXXX``. |
| The old names are deprecated and will be removed in future versions. |
| |
| .JCasIterable |
| `JCasIterable` now only accepts reader and engine descriptions (no instances) and no longer implements the `Iterator` interface. |
| Instead, new `JCasIterator` has been added, which replaces `JCasIterable` in that respect. |
| |
| .CasDumpWriter |
| `org.uimafit.component.xwriter.CASDumpWriter` has been renamed to ``org.apache.uima.fit.component.CasDumpWriter``. |
| |
| .CpePipeline |
| `CpePipeline` has been moved to a separate module with the artifact ID `uimafit-cpe` to reduce the dependencies incurred by the main uimaFIT artifact. |
| |
| .XWriter removed |
| The `XWriter` and associated file namers have been removed as they were much more complex then acutally needed. |
| As an alternative, `CasIOUtil` has been introduced providing several convenience methods to read/write JCas/CAS data. |
| |
| .JCasFactory |
| Methods only loading JCas data have been removed from ``JCasFactory``. |
| The new methods in `CasIOUtil` can be used instead. |