diff --git a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
index e55aedb..d492f57 100644
--- a/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
+++ b/uimafit-core/src/main/java/org/apache/uima/fit/factory/ExternalResourceFactory.java
@@ -38,6 +38,7 @@
 import java.util.Map.Entry;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.collection.CollectionReaderDescription;
@@ -818,7 +819,7 @@
     if (!found) {
       setResourceDependencies(
               aDesc,
-              (ExternalResourceDependency[]) ArrayUtils.add(deps,
+              ArrayUtils.add(deps,
                       createResourceDependency(aKey, aApi, false, null)));
     }
   }
@@ -887,7 +888,7 @@
       if (deps == null) {
         deps = new ExternalResourceDependency[] {};
       }
-      aDesc.setExternalResourceDependencies((ExternalResourceDependency[]) ArrayUtils.add(deps,
+      aDesc.setExternalResourceDependencies(ArrayUtils.add(deps,
               createResourceDependency(aKey, aImpl, false, null)));
     }
     bindResourceUsingUrl(aDesc, aKey, aImpl, aUrl, aParams);
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializerTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializerTest.java
index 8de2de4..fc7d86d 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializerTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/component/initialize/ConfigurationParameterInitializerTest.java
@@ -425,7 +425,7 @@
     
     assertThat(target.customFromString)
             .extracting(CustomClassWithStringConstructor::getValue)
-            .containsExactly("test");
+            .isEqualTo("test");
     assertThat(target.customArrayFromString)
             .extracting(CustomClassWithStringConstructor::getValue)
             .containsExactly("test1", "test2", "test3");
diff --git a/uimafit-parent/pom.xml b/uimafit-parent/pom.xml
index 55892b7..bef803f 100644
--- a/uimafit-parent/pom.xml
+++ b/uimafit-parent/pom.xml
@@ -96,7 +96,7 @@
       <dependency>
         <groupId>org.assertj</groupId>
         <artifactId>assertj-core</artifactId>
-        <version>3.12.2</version>
+        <version>3.15.0</version>
       </dependency>
       <dependency>
         <groupId>org.mockito</groupId>
