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

rec pushed a commit to branch 
feature/100-Enable-type-system-discovery-via-SPI-in-OSGI
in repository https://gitbox.apache.org/repos/asf/uima-ruta.git

commit c522a9e5f6a76bd9e6e46a64bc35e7c8d214f19f
Author: Richard Eckart de Castilho <[email protected]>
AuthorDate: Wed Aug 31 17:16:34 2022 +0200

    Issue #100 - Enable type system discovery via SPI in OSGI
    
    - Add missing OSGI package imports
    - Use utility method from core in SPI
---
 ruta-typesystem/pom.xml                            |  3 +-
 .../spi/RutaTypeSystemDescriptionProvider.java     | 44 ++--------------------
 2 files changed, 6 insertions(+), 41 deletions(-)

diff --git a/ruta-typesystem/pom.xml b/ruta-typesystem/pom.xml
index 12fe9d3e..a42eda00 100644
--- a/ruta-typesystem/pom.xml
+++ b/ruta-typesystem/pom.xml
@@ -104,7 +104,8 @@
           <instructions>
             <Fragment-Host>org.apache.uima.ruta-core</Fragment-Host>
             <Import-Package>
-              org.apache.uima.ruta.type;-split-package:=merge-first
+              org.apache.uima.ruta.type;-split-package:=merge-first,
+              *
             </Import-Package>
             <Export-Package>
               org.apache.uima.ruta.type;-split-package:=merge-first,
diff --git 
a/ruta-typesystem/src/main/java/org/apache/uima/ruta/type/spi/RutaTypeSystemDescriptionProvider.java
 
b/ruta-typesystem/src/main/java/org/apache/uima/ruta/type/spi/RutaTypeSystemDescriptionProvider.java
index 1edb9ef7..8739b736 100644
--- 
a/ruta-typesystem/src/main/java/org/apache/uima/ruta/type/spi/RutaTypeSystemDescriptionProvider.java
+++ 
b/ruta-typesystem/src/main/java/org/apache/uima/ruta/type/spi/RutaTypeSystemDescriptionProvider.java
@@ -18,21 +18,16 @@
  */
 package org.apache.uima.ruta.type.spi;
 
-import java.io.IOException;
-import java.net.URL;
+import static 
org.apache.uima.util.TypeSystemUtil.loadTypeSystemDescriptionsFromClasspath;
+
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.uima.UIMAFramework;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.resource.ResourceManager;
-import org.apache.uima.resource.impl.ResourceManager_impl;
 import org.apache.uima.resource.metadata.TypeDescription;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
 import org.apache.uima.spi.JCasClassProvider;
 import org.apache.uima.spi.TypeSystemDescriptionProvider;
-import org.apache.uima.util.InvalidXMLException;
-import org.apache.uima.util.XMLInputSource;
 
 public class RutaTypeSystemDescriptionProvider
         implements TypeSystemDescriptionProvider, JCasClassProvider {
@@ -50,7 +45,8 @@ public class RutaTypeSystemDescriptionProvider
             "/org/apache/uima/ruta/engine/SourceDocumentInformation.xml");
   }
 
-  @Override
+  @SuppressWarnings("unchecked")
+@Override
   public List<Class<? extends TOP>> listJCasClasses() {
 
     List<Class<? extends TOP>> classes = new ArrayList<>();
@@ -69,36 +65,4 @@ public class RutaTypeSystemDescriptionProvider
 
     return classes;
   }
-
-  public static List<TypeSystemDescription> 
loadTypeSystemDescriptionsFromClasspath(
-          Class<?> aContext, String... typeSystemDescriptionFiles) {
-
-    ResourceManager resMgr = new 
ResourceManager_impl(aContext.getClassLoader());
-    try {
-      List<TypeSystemDescription> typeSystemDescriptions = new ArrayList<>();
-
-      for (String typeSystem : typeSystemDescriptionFiles) {
-        URL resource = aContext.getResource(typeSystem);
-        if (resource == null) {
-          UIMAFramework.getLogger()
-                  .error("Unable to locate type system description as a 
resource [{}]", typeSystem);
-          continue;
-        }
-
-        try {
-          TypeSystemDescription tsd = UIMAFramework.getXMLParser()
-                  .parseTypeSystemDescription(new XMLInputSource(resource));
-          tsd.resolveImports(resMgr);
-          typeSystemDescriptions.add(tsd);
-        } catch (InvalidXMLException | IOException e) {
-          UIMAFramework.getLogger().error("Error loading type system 
description [{}] from [{}]",
-                  typeSystem, resource, e);
-        }
-      }
-
-      return typeSystemDescriptions;
-    } finally {
-      resMgr.destroy();
-    }
-  }
 }

Reply via email to