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 6a1dc2b..e55aedb 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
@@ -1270,9 +1270,9 @@
    * @throws ResourceInitializationException
    *           if there was a problem instantiating the resource.
    */
-  public static <R> R createExternalResource(Class<? extends Resource> resourceClass,
+  public static <R extends Resource> R createResource(Class<R> resourceClass,
           Object... params) throws ResourceInitializationException {
-    return createExternalResource(resourceClass, null, params);
+    return createResource(resourceClass, null, params);
   }
 
   /**
@@ -1292,7 +1292,7 @@
    *           if there was a problem instantiating the resource.
    */
   @SuppressWarnings("unchecked")
-  public static <R> R createExternalResource(Class<? extends Resource> resourceClass,
+  public static <R extends Resource> R createResource(Class<R> resourceClass,
           ResourceManager resMgr, Object... params) throws ResourceInitializationException {
     ExternalResourceDescription res = createResourceDescription(resourceClass, params);
     return (R) produceResource(resourceClass, res.getResourceSpecifier(), resMgr, emptyMap());
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/ResourceManagerFactoryTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/ResourceManagerFactoryTest.java
index efd65a6..ffc25ca 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/ResourceManagerFactoryTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/ResourceManagerFactoryTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.uima.fit.factory;
 
-import static org.apache.uima.fit.factory.ExternalResourceFactory.createExternalResource;
+import static org.apache.uima.fit.factory.ExternalResourceFactory.createResource;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.uima.fit.component.Resource_ImplBase;
@@ -32,7 +32,7 @@
   
   @Test
   public void thatResourceCanBeCreated() throws Exception {
-    SimpleResource sut = createExternalResource(SimpleResource.class);
+    SimpleResource sut = createResource(SimpleResource.class);
     
     assertThat(sut).isInstanceOf(SimpleResource.class);
   }
@@ -44,7 +44,7 @@
   
   @Test
   public void thatResourceCanBeParametrized() throws Exception {
-    ResourceWithParameters sut = createExternalResource(ResourceWithParameters.class,
+    ResourceWithParameters sut = createResource(ResourceWithParameters.class,
             "intValue", "1",
             "stringValue", "test");
     
