You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2021/11/26 09:44:46 UTC

[uima-uimafit] branch bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes updated (a64c298 -> 445ace3)

This is an automated email from the ASF dual-hosted git repository.

rec pushed a change to branch bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git.


 discard a64c298  Merge branch 'main' into bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes
    omit be396fc  Merge pull request #162 from apache/bugfix/UIMA-6385-Potential-resource-key-clash-in-environments-with-multiple-classloaders
    omit deccbd9  Merge branch 'main' into bugfix/UIMA-6385-Potential-resource-key-clash-in-environments-with-multiple-classloaders
    omit d17d017  Merge pull request #160 from apache/tie-up-loose-branches
    omit 9fb6719  Merge branch 'release/3.2.x' into tie-up-loose-branches
    omit c13c753  Merge branch 'main' into bugfix/UIMA-6384-parallelism-argument-in-CpePipeline-is-ignored
    omit e910935  Merge pull request #159 from apache/feature/UIMA-6392-Better-delegate-key-generation
    omit e273553  [UIMA-6392] Better delegate key generation
     add fd33fbf  Merge pull request #161 from apache/bugfix/UIMA-6385-Potential-resource-key-clash-in-environments-with-multiple-classloaders
     new 445ace3  Merge branch 'release/3.2.x' into bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (a64c298)
            \
             N -- N -- N   refs/heads/bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes (445ace3)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/uima/fit/factory/AggregateBuilder.java  | 24 ++++--
 .../uima/fit/factory/AnalysisEngineFactory.java    | 91 ++++++----------------
 .../uima/fit/factory/AggregateBuilderTest.java     |  6 +-
 .../fit/factory/AnalysisEngineFactoryTest.java     | 48 ------------
 .../java/org/apache/uima/fit/cpe/CpeBuilder.java   | 16 ++--
 .../java/org/apache/uima/fit/cpe/CpePipeline.java  | 51 +++---------
 .../org/apache/uima/fit/maven/EnhanceMojo.java     |  1 +
 7 files changed, 59 insertions(+), 178 deletions(-)

[uima-uimafit] 01/01: Merge branch 'release/3.2.x' into bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git

commit 445ace3840a867e5e70621edbdd63c67e7289f8f
Merge: f26cbd4 fd33fbf
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Fri Nov 26 10:44:29 2021 +0100

    Merge branch 'release/3.2.x' into bugfix/UIMA-6396-uimaFIT-maven-plugin-mixes-up-test-and-compile-scopes
    
    * release/3.2.x: (165 commits)
      [UIMA-6385] Potential resource key clash in environments with multiple classloaders
      [maven-release-plugin] prepare for next development iteration
      [maven-release-plugin] prepare release uimafit-3.2.0
      [UIMA-6331] uimaFIT 3.2.0 release
      [UIMA-6357] Upgrade Apache Commons dependencies
      [UIMA-6331] uimaFIT 3.2.0 release
      [UIMA-6331] uimaFIT 3.2.0 release
      [UIMA-6299] Ensure that SNAPSHOT repos are commented out in POMs
      [UIMA-6331] uimaFIT 3.2.0 release
      [No Jira] Set version to 3.2.0-SNAPSHOT
      [UIMA-6312] Better PEAR parameter support
      [UIMA-6314] Align preceding/following with predicate in UIMA core
      [UIMA-6314] Align preceding/following with predicate in UIMA core
      [UIMA-6312] Better PEAR parameter support
      [UIMA-6311] Add generated resources output folder as resource folder
      [UIMA-6301] Rename "master" branches to "main"
      [UIMA-6254] Move API report post-analysis script into the build resources
      [UIMA-6254] Move API report post-analysis script into the build resources
      [UIMA-6291] Improve uimaFIT benchmarking module
      [UIMA-6291] Improve uimaFIT benchmarking module - Changed new timer names to include the postfix time, so that it is more clear that it is a time value.
      ...
    
    % Conflicts:
    %	uimafit-core/src/main/java/org/apache/uima/fit/factory/TypeSystemDescriptionFactory.java
    %	uimafit-core/src/main/java/org/apache/uima/fit/internal/ResourceManagerFactory.java
    %	uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java

 CONTRIBUTING.md                                    |   3 +-
 README                                             |  61 +-
 api-change-report.html                             |  13 +-
 pom.xml                                            |  56 +-
 src/main/assembly/bin.xml                          |  28 +-
 src/main/dist-bin/LICENSE                          |   2 +-
 src/main/dist-bin/NOTICE                           |  24 +-
 uimafit-assertj/pom.xml                            |   8 +-
 uimafit-benchmark/pom.xml                          |  21 +-
 .../java/org/apache/uima/fit/benchmark/Batch.java  |  75 +--
 .../org/apache/uima/fit/benchmark/Benchmark.java   | 359 ++++++++----
 .../apache/uima/fit/benchmark/BenchmarkGroup.java  |  76 +++
 .../fit/benchmark/CachingRandomJCasProvider.java}  |  55 +-
 .../uima/fit/benchmark/CasInitializationUtils.java |  16 +-
 .../uima/fit/benchmark/RunnableWithExceptions.java |   4 +-
 .../uima/fit/benchmark/CasUtilBenchmark.java       | 146 -----
 .../apache/uima/fit/benchmark/FSUtilBenchmark.java |   2 +-
 .../uima/fit/benchmark/JCasFactoryBenchmark.java   |   2 -
 .../uima/fit/benchmark/JCasUtilBenchmark.java      | 124 ----
 .../apache/uima/fit/benchmark/SelectBenchmark.java | 276 +++++++++
 .../src/test/resources/simplelogger.properties     |   1 +
 uimafit-core/NOTICE                                |   4 +
 uimafit-core/pom.xml                               |  52 +-
 .../uima/fit/component/CasAnnotator_ImplBase.java  |  15 -
 .../component/CasCollectionReader_ImplBase.java    |  12 +-
 .../uima/fit/component/CasConsumer_ImplBase.java   |  15 -
 .../fit/component/CasFlowController_ImplBase.java  |  15 -
 .../uima/fit/component/CasMultiplier_ImplBase.java |  15 -
 .../uima/fit/component/ExternalResourceAware.java  |   8 +-
 .../uima/fit/component/JCasAnnotator_ImplBase.java |  15 -
 .../component/JCasCollectionReader_ImplBase.java   |  13 +-
 .../uima/fit/component/JCasConsumer_ImplBase.java  |  15 -
 .../fit/component/JCasFlowController_ImplBase.java |  15 -
 .../fit/component/JCasMultiplier_ImplBase.java     |  15 -
 .../uima/fit/component/Resource_ImplBase.java      |  14 +-
 .../uima/fit/factory/AnalysisEngineFactory.java    |  10 +-
 .../org/apache/uima/fit/factory/CasFactory.java    |  34 +-
 .../uima/fit/factory/CollectionReaderFactory.java  |  50 +-
 .../fit/factory/ConfigurationParameterFactory.java |  62 +-
 .../uima/fit/factory/ExternalResourceFactory.java  | 374 +++++++++----
 .../uima/fit/factory/FlowControllerFactory.java    |  10 +-
 .../apache/uima/fit/factory/FsIndexFactory.java    |  10 +-
 .../org/apache/uima/fit/factory/JCasFactory.java   |  49 +-
 .../uima/fit/factory/TypePrioritiesFactory.java    |  19 +-
 .../fit/factory/TypeSystemDescriptionFactory.java  |  14 +-
 .../apache/uima/fit/internal/ExtendedLogger.java   | 450 ---------------
 .../org/apache/uima/fit/internal/MetaDataUtil.java |   2 +-
 .../uima/fit/internal/ResourceManagerFactory.java  |  94 ++--
 .../apache/uima/fit/pipeline/SimplePipeline.java   |  47 +-
 .../uima/fit/testing/factory/TokenBuilder.java     |   1 -
 .../java/org/apache/uima/fit/util/CasUtil.java     | 197 +++++--
 .../apache/uima/fit/util/FSCollectionFactory.java  | 322 +++++++----
 .../main/java/org/apache/uima/fit/util/FSUtil.java |  53 +-
 .../java/org/apache/uima/fit/util/JCasUtil.java    |  71 ++-
 .../AnalysisEngineFactoryExternalResourceTest.java |  61 +-
 ...ollectionReaderFactoryExternalResourceTest.java |   7 +-
 .../factory/ConfigurationParameterFactoryTest.java |  54 ++
 .../factory/ExternalResourceConfiguratorTest.java  |   4 +-
 .../fit/factory/ExternalResourceFactoryTest.java   | 173 ++++--
 .../FlowControllerFactoryExternalResourceTest.java |   5 +-
 .../org/apache/uima/fit/factory/LoggingTest.java   | 375 -------------
 .../fit/factory/TypePrioritiesFactoryTest.java     |  30 +-
 .../apache/uima/fit/pipeline/JCasIterableTest.java |  10 +-
 .../uima/fit/pipeline/SimplePipelineTest.java      |   6 +-
 .../apache/uima/fit/util/AnnotationPredicates.java | 234 --------
 .../java/org/apache/uima/fit/util/CasUtilTest.java |  21 +-
 .../uima/fit/util/FSCollectionFactoryTest.java     |  76 ++-
 .../java/org/apache/uima/fit/util/FSUtilTest.java  |  27 +-
 .../org/apache/uima/fit/util/JCasUtilTest.java     | 212 ++++++-
 .../{JCasUtilTest.java => JCasUtilv3Test.java}     | 431 +++++++-------
 .../org/apache/uima/fit/util/SelectionAssert.java  |  21 +-
 .../resources/data/reference/JCasBuilderTest.dump  |  22 +-
 .../test/resources/data/reference/test.xmi.dump    |  28 +-
 uimafit-core/src/test/resources/log4j.properties   |   5 -
 .../src/test/resources/simplelogger.properties     |   1 +
 .../.settings/org.eclipse.core.resources.prefs     |   1 +
 uimafit-cpe/pom.xml                                |  82 +--
 .../java/org/apache/uima/fit/cpe/CpePipeline.java  |  27 +-
 .../uima/fit/cpe/ExternalResourceFactoryTest.java  |  30 +-
 .../src/test/resources/simplelogger.properties     |   1 +
 uimafit-doc/pom.xml                                |   6 +-
 .../asciidoc/tools.uimafit.externalresources.adoc  |   2 +-
 .../src/main/asciidoc/tools.uimafit.migration.adoc | 154 ++---
 {uimafit-junit => uimafit-docbook}/pom.xml         |  31 +-
 .../tools.uimafit.configurationparameters.xml      | 185 ++++++
 .../docbook/tools.uimafit.externalresources.xml    | 321 +++++++++++
 .../src/docbook/tools.uimafit.migration.xml        | 273 +++++++++
 uimafit-examples/NOTICE                            |   3 +
 uimafit-examples/pom.xml                           | 267 ++++-----
 .../examples/resource/ExternalResourceExample.java |   7 +-
 .../resource/ExternalResourceExample2.java         |   7 +-
 .../resource/ExternalResourceExample3.java         |   6 +-
 .../examples/tutorial/ex2/RoomNumberAnnotator.java |   3 +-
 .../tutorial/ex6/UimaAcronymAnnotator.java         |   8 +-
 .../tutorial/ex6/UimaMeetingAnnotator.java         |   8 +-
 .../src/main/resources/simplelogger.properties     |   1 +
 .../fit/examples/tutorial/ex6/Example6Test.java    |   8 +-
 uimafit-junit/pom.xml                              |   8 +-
 .../.settings/org.eclipse.jdt.core.prefs           | 288 ----------
 .../.settings/org.eclipse.jdt.ui.prefs             |   3 -
 uimafit-legacy-support/NOTICE                      |   8 -
 ...marker-file-identifying-api-compatibility-check |   1 -
 uimafit-legacy-support/pom.xml                     | 144 -----
 .../uima/fit/legacy/AnnotationConverter.java       |  44 --
 .../uima/fit/legacy/LegacySupportPluginImpl.java   | 158 ------
 .../fit/legacy/converter/AnnotationLiteral.java    | 277 ---------
 .../converter/ConfigurationParameterConverter.java |  98 ----
 .../ContextlessAnnotationConverterBase.java        |  41 --
 .../converter/ExternalResourceConverter.java       |  92 ---
 .../converter/FsIndexCollectionConverter.java      |  67 ---
 .../fit/legacy/converter/FsIndexConverter.java     |  92 ---
 .../fit/legacy/converter/FsIndexKeyConverter.java  |  63 ---
 .../legacy/converter/NoConversionConverter.java    |  59 --
 .../converter/OperationalPropertiesConverter.java  |  67 ---
 .../legacy/converter/SofaCapabilityConverter.java  |  75 ---
 .../legacy/converter/TypeCapabilityConverter.java  |  75 ---
 .../org/apache/uima/fit/ComponentTestBase.java     |  89 ---
 .../uima/fit/component/CasDumpWriterTest.java      |  61 --
 .../JCasCollectionReader_ImplBaseTest.java         |  88 ---
 .../fit/component/ViewCreatorAnnotatorTest.java    | 182 ------
 .../fit/component/ViewTextCopierAnnotatorTest.java |  92 ---
 .../ConfigurationParameterInitializerTest.java     | 472 ----------------
 .../apache/uima/fit/data/CreateSampleXCASFile.java |  59 --
 .../apache/uima/fit/data/CreateSampleXMIFile.java  |  54 --
 .../uima/fit/descriptor/TypeCapabilityTest.java    |  57 --
 .../uima/fit/factory/AggregateBuilderTest.java     | 209 -------
 .../uima/fit/factory/AggregateWithReaderTest.java  | 198 -------
 .../AnalysisEngineFactoryExternalResourceTest.java | 404 --------------
 .../fit/factory/AnalysisEngineFactoryTest.java     | 467 ----------------
 .../uima/fit/factory/AnnotationFactoryTest.java    |  45 --
 ...ollectionReaderFactoryExternalResourceTest.java |  91 ---
 .../fit/factory/CollectionReaderFactoryTest.java   | 127 -----
 .../factory/ConfigurationParameterFactoryTest.java | 221 --------
 .../factory/ExternalResourceConfiguratorTest.java  |  82 ---
 .../fit/factory/ExternalResourceFactoryTest.java   | 411 --------------
 .../FlowControllerFactoryExternalResourceTest.java |  93 ---
 .../uima/fit/factory/FsIndexFactoryTest.java       | 132 -----
 .../apache/uima/fit/factory/JCasBuilderTest.java   |  73 ---
 .../apache/uima/fit/factory/JCasFactoryTest.java   |  71 ---
 .../org/apache/uima/fit/factory/LoggingTest.java   | 311 -----------
 .../ResourceCreationSpecifierFactoryTest.java      |  56 --
 .../uima/fit/factory/SofaMappingFactoryTest.java   |  40 --
 .../fit/factory/TypePrioritiesFactoryTest.java     |  47 --
 .../factory/TypeSystemDescriptionFactoryTest.java  |  48 --
 .../uima/fit/factory/UimaContextFactoryTest.java   |  70 ---
 .../initializable/InitializableFactoryTest.java    | 123 ----
 .../uima/fit/factory/testAes/Annotator1.java       |  50 --
 .../uima/fit/factory/testAes/Annotator2.java       |  63 ---
 .../uima/fit/factory/testAes/Annotator3.java       |  57 --
 .../uima/fit/factory/testAes/Annotator4.java       |  45 --
 .../apache/uima/fit/factory/testAes/FlowAE1.java   |  38 --
 .../apache/uima/fit/factory/testAes/FlowAE2.java   |  45 --
 .../apache/uima/fit/factory/testAes/FlowAE3.java   |  48 --
 .../uima/fit/factory/testAes/ParameterizedAE.java  | 409 --------------
 .../uima/fit/factory/testAes/ParameterizedAE2.java |  56 --
 .../testAes/ReversableTestFlowController.java      |  88 ---
 .../apache/uima/fit/factory/testAes/ViewNames.java |  38 --
 .../fit/factory/testCrs/SingleFileXReader.java     | 127 -----
 .../fit/factory/testCrs/SingleFileXReaderTest.java | 117 ----
 .../fit/factory/testRes/TestExternalResource.java  |  41 --
 .../factory/testRes/TestSharedResourceObject.java  |  48 --
 .../uima/fit/testing/factory/TokenBuilderTest.java | 242 --------
 .../java/org/apache/uima/fit/util/CasUtilTest.java | 188 -------
 .../apache/uima/fit/util/ContainmentIndexTest.java |  69 ---
 .../apache/uima/fit/util/DisableLoggingTest.java   | 106 ----
 .../uima/fit/util/FSCollectionFactoryTest.java     | 211 -------
 .../org/apache/uima/fit/util/HideOutputTest.java   |  72 ---
 .../org/apache/uima/fit/util/JCasIterableTest.java |  43 --
 .../org/apache/uima/fit/util/JCasUtilTest.java     | 621 ---------------------
 .../org/apache/uima/fit/util/LocaleUtilTest.java   |  64 ---
 .../apache/uima/fit/util/SimplePipelineTest.java   |  48 --
 .../org/apache/uima/fit/util/TypeSystemUtil.java   |  46 --
 .../resources/META-INF/org.uimafit/fsindexes.txt   |   1 -
 .../test/resources/META-INF/org.uimafit/types.txt  |   1 -
 .../resources/data/descriptor/DefaultValueAE1.xml  |  36 --
 .../resources/data/descriptor/DefaultValueAE2.xml  |  36 --
 .../src/test/resources/data/descriptor/README      |   3 -
 .../src/test/resources/data/docs/bad.xcas          |   1 -
 .../src/test/resources/data/docs/test.xcas         |   1 -
 .../src/test/resources/data/docs/test.xmi          |   1 -
 .../test/resources/data/docs/unix-newlines.txt.bin |   8 -
 .../resources/data/docs/windows-newlines.txt.bin   |   9 -
 .../resources/data/reference/JCasBuilderTest.dump  |  69 ---
 .../test/resources/data/reference/test.xmi.dump    |  92 ---
 .../apache/uima/fit/component/NoOpAnnotator.xml    |  48 --
 .../uima/fit/factory/testCrs/SingleFileXReader.xml |  60 --
 .../apache/uima/fit/index/AutoImportableIndex.xml  |  38 --
 .../org/apache/uima/fit/type/AnalyzedText.xml      |  39 --
 .../org/apache/uima/fit/type/Sentence.xml          |  32 --
 .../resources/org/apache/uima/fit/type/Token.xml   |  44 --
 uimafit-maven-plugin/pom.xml                       |  14 +-
 uimafit-maven-plugin/src/it/default/pom.xml        | 110 ++--
 .../org/apache/uima/fit/maven/EnhanceMojo.java     |  10 +-
 .../uima/fit/maven/GenerateDescriptorsMojo.java    |  32 +-
 .../java/org/apache/uima/fit/maven/util/Util.java  |   2 +-
 uimafit-parent/pom.xml                             | 111 ++--
 uimafit-parent/src/main/groovy/api-report.groovy   |  27 -
 uimafit-spring/NOTICE                              |   3 +
 uimafit-spring/pom.xml                             | 111 ++--
 .../spring/SpringContextResourceManagerTest.java   |   4 +-
 .../src/test/resources/simplelogger.properties     |   1 +
 201 files changed, 3861 insertions(+), 12874 deletions(-)

diff --cc uimafit-core/src/main/java/org/apache/uima/fit/factory/TypeSystemDescriptionFactory.java
index 263d85d,0c1af58..a91d9a3
--- a/uimafit-core/src/main/java/org/apache/uima/fit/factory/TypeSystemDescriptionFactory.java
+++ b/uimafit-core/src/main/java/org/apache/uima/fit/factory/TypeSystemDescriptionFactory.java
@@@ -129,8 -130,6 +130,7 @@@ public final class TypeSystemDescriptio
            }
          }
  
-         LogFactory.getLog(TypeSystemDescription.class)
-           .trace("Merging type systems and resolving imports...");
++        LOG.trace("Merging type systems and resolving imports...");
          ResourceManager resMgr = ResourceManagerFactory.newResourceManager();
          tsd = mergeTypeSystems(tsdList, resMgr);
          typeDescriptorByClassloader.put(cl, tsd);
diff --cc uimafit-core/src/main/java/org/apache/uima/fit/internal/ResourceManagerFactory.java
index 7ac142c,11e1f59..7372b9d
--- a/uimafit-core/src/main/java/org/apache/uima/fit/internal/ResourceManagerFactory.java
+++ b/uimafit-core/src/main/java/org/apache/uima/fit/internal/ResourceManagerFactory.java
@@@ -29,6 -26,6 +26,8 @@@ import org.apache.uima.impl.UimaVersion
  import org.apache.uima.resource.ResourceInitializationException;
  import org.apache.uima.resource.ResourceManager;
  import org.apache.uima.resource.impl.ResourceManager_impl;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
  
  /**
   * INTERNAL API - Helper functions for dealing with resource managers and classloading
@@@ -36,6 -33,6 +35,8 @@@
   * This API is experimental and is very likely to be removed or changed in future versions.
   */
  public class ResourceManagerFactory {
++  private static final Logger LOG = LoggerFactory.getLogger(ResourceManagerFactory.class);
++  
    private static ResourceManagerCreator resourceManagerCreator = new DefaultResourceManagerCreator();
  
    private ResourceManagerFactory() {
@@@ -69,56 -65,42 +69,46 @@@
    public static class DefaultResourceManagerCreator implements ResourceManagerCreator {
      @Override
      public ResourceManager newResourceManager() throws ResourceInitializationException {
-       try {
-         UimaContext activeContext = UimaContextHolder.getContext();
-         if (activeContext != null) {
-           // If we are already in a UIMA context, then we re-use it. Mind that the JCas cannot
-           // handle switching across more than one classloader.
-           // This can be done since UIMA 2.9.0 and starts being handled in uimaFIT 2.3.0
-           // See https://issues.apache.org/jira/browse/UIMA-5056
-           LogFactory.getLog(ResourceManagerFactory.class)
-             .trace("Using resource manager from active UIMA context");
-           return ((UimaContextAdmin) activeContext).getResourceManager();
-         }
- 
-         // If there is no UIMA context, then we create a new resource manager
-         // UIMA core still does not fall back to the context classloader in all cases.
-         // This was the default behavior until uimaFIT 2.2.0.
-         ResourceManager resMgr;
-         if (Thread.currentThread().getContextClassLoader() != null) {
-           // If the context classloader is set, then we want the resource manager to fall
-           // back to it. However, it may not reliably do that that unless we explicitly pass
-           // null here. See. UIMA-6239.
-           LogFactory.getLog(ResourceManagerFactory.class)
-             .trace("Detected thread context classloader: preparing resource manager to use it");
-           resMgr = new ResourceManager_impl(null);
-           resMgr.setExtensionClassPath(ClassLoaderUtils.findClassloader(), "", true);
-         }
-         else {
-           resMgr = UIMAFramework.newDefaultResourceManager();
-         }
- 
-         // Since UIMA Core version 2.10.3 and 3.0.1 the thread context classloader is taken
-         // into account by the core framework. Thus, we no longer have to explicitly set a
-         // classloader these or more recent versions. (cf. UIMA-5802)
-         short maj = UimaVersion.getMajorVersion();
-         short min = UimaVersion.getMinorVersion();
-         short rev = UimaVersion.getBuildRevision();
-         boolean uimaCoreIgnoresContextClassloader =
-                 (maj == 2 && (min < 10 || (min == 10 && rev < 3))) || // version < 2.10.3
-                 (maj == 3 && ((min == 0 && rev < 1)));                // version < 3.0.1
-         if (uimaCoreIgnoresContextClassloader) {
-           LogFactory.getLog(ResourceManagerFactory.class)
-             .trace("Detected UIMA version " + maj + "." + min + "." + rev + 
-                     " which ignores the thread context classloader, setting it explicitly");
-           resMgr.setExtensionClassPath(ClassLoaderUtils.findClassloader(), "", true);
-         }
+       UimaContext activeContext = UimaContextHolder.getContext();
+       if (activeContext != null) {
+         // If we are already in a UIMA context, then we re-use it. Mind that the JCas cannot
+         // handle switching across more than one classloader.
+         // This can be done since UIMA 2.9.0 and starts being handled in uimaFIT 2.3.0
+         // See https://issues.apache.org/jira/browse/UIMA-5056
++        LOG.trace("Using resource manager from active UIMA context");
+         return ((UimaContextAdmin) activeContext).getResourceManager();
+       }
  
-         return resMgr;
+       // If there is no UIMA context, then we create a new resource manager
+       // UIMA core still does not fall back to the context classloader in all cases.
+       // This was the default behavior until uimaFIT 2.2.0.
+       ResourceManager resMgr;
+       if (Thread.currentThread().getContextClassLoader() != null) {
+         // If the context classloader is set, then we want the resource manager to fallb
+         // back to it. However, it may not reliably do that that unless we explictly pass
+         // null here. See. UIMA-6239.
++        LOG.trace("Detected thread context classloader: preparing resource manager to use it");
+         resMgr = new ResourceManager_impl(null);
+       } else {
+         resMgr = UIMAFramework.newDefaultResourceManager();
        }
-       catch (MalformedURLException e) {
-         throw new ResourceInitializationException(e);
+ 
+       // Since UIMA Core version 2.10.3 and 3.0.1 the thread context classloader is taken
+       // into account by the core framework. Thus, we no longer have to explicitly set a
+       // classloader these or more recent versions. (cf. UIMA-5802)
+       short maj = UimaVersion.getMajorVersion();
+       short min = UimaVersion.getMinorVersion();
+       short rev = UimaVersion.getBuildRevision();
+       boolean uimaCoreIgnoresContextClassloader = 
+               (maj == 2 && (min < 10 || (min == 10 && rev < 3))) || // version < 2.10.3
+               (maj == 3 && ((min == 0 && rev < 1)));                // version < 3.0.1
+       if (uimaCoreIgnoresContextClassloader) {
++        LOG.trace("Detected UIMA version " + maj + "." + min + "." + rev + 
++                " which ignores the thread context classloader, setting it explicitly");
+         resMgr.setExtensionClassLoader(ClassLoaderUtils.findClassloader(), true);
        }
+ 
+       return resMgr;
      }
    }
  }
diff --cc uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
index df2bbc8,cf6cb54..b56c70a
--- a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
+++ b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/EnhanceMojo.java
@@@ -18,10 -18,6 +18,10 @@@
   */
  package org.apache.uima.fit.maven;
  
- import static org.apache.commons.lang.exception.ExceptionUtils.getRootCauseMessage;
++import static org.apache.commons.lang3.exception.ExceptionUtils.getRootCauseMessage;
 +import static org.apache.maven.plugins.annotations.LifecyclePhase.PROCESS_CLASSES;
 +import static org.apache.maven.plugins.annotations.ResolutionScope.TEST;
 +
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileOutputStream;
@@@ -35,10 -31,24 +35,11 @@@ import java.util.Collection
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
+ 
 -import javassist.CannotCompileException;
 -import javassist.ClassPool;
 -import javassist.CtClass;
 -import javassist.CtField;
 -import javassist.LoaderClassPath;
 -import javassist.NotFoundException;
 -import javassist.bytecode.AnnotationsAttribute;
 -import javassist.bytecode.ClassFile;
 -import javassist.bytecode.ConstPool;
 -import javassist.bytecode.annotation.Annotation;
 -import javassist.bytecode.annotation.MemberValue;
 -import javassist.bytecode.annotation.StringMemberValue;
 -
  import org.apache.commons.io.IOUtils;
  import org.apache.commons.io.LineIterator;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.lang.exception.ExceptionUtils;
+ import org.apache.commons.lang3.StringUtils;
+ import org.apache.commons.lang3.exception.ExceptionUtils;
  import org.apache.maven.plugin.AbstractMojo;
  import org.apache.maven.plugin.MojoExecutionException;
  import org.apache.maven.plugin.MojoFailureException;
diff --cc uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/util/Util.java
index 3de6192,db85bf6..1a7edd1
--- a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/util/Util.java
+++ b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/util/Util.java
@@@ -27,10 -27,9 +27,10 @@@ import java.util.ArrayList
  import java.util.List;
  import java.util.Set;
  
- import org.apache.commons.lang.exception.ExceptionUtils;
+ import org.apache.commons.lang3.exception.ExceptionUtils;
  import org.apache.maven.artifact.Artifact;
  import org.apache.maven.artifact.DependencyResolutionRequiredException;
 +import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
  import org.apache.maven.plugin.MojoExecutionException;
  import org.apache.maven.plugin.logging.Log;
  import org.apache.maven.project.MavenProject;