You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2012/07/31 17:51:39 UTC

svn commit: r1367624 - /opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java

Author: joern
Date: Tue Jul 31 15:51:38 2012
New Revision: 1367624

URL: http://svn.apache.org/viewvc?rev=1367624&view=rev
Log:
OPENNLP-528 Added support to resolve the replaced type system.

Modified:
    opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java

Modified: opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java
URL: http://svn.apache.org/viewvc/opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java?rev=1367624&r1=1367623&r2=1367624&view=diff
==============================================================================
--- opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java (original)
+++ opennlp/sandbox/corpus-server-tools/src/main/java/org/apache/opennlp/corpus_server/tools/ReplaceTypeSystem.java Tue Jul 31 15:51:38 2012
@@ -17,10 +17,18 @@
 
 package org.apache.opennlp.corpus_server.tools;
 
+import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
 
 import javax.ws.rs.core.MediaType;
 
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.util.XMLInputSource;
+import org.apache.uima.util.XMLParser;
+
 import com.sun.jersey.api.client.Client;
 import com.sun.jersey.api.client.ClientResponse;
 import com.sun.jersey.api.client.WebResource;
@@ -37,16 +45,28 @@ public class ReplaceTypeSystem {
     Client c = Client.create();
 
     WebResource r = c.resource(args[0]);
+    
+ // Load and resolve type system before importing it
+    InputStream typeSystemIn = new FileInputStream(new File(args[1]));
+
+    XMLInputSource xmlTypeSystemSource = new XMLInputSource(typeSystemIn,
+        new File(args[1]));
 
-    File typeSystemFile = new File(args[1]);
+    XMLParser xmlParser = UIMAFramework.getXMLParser();
 
-    byte typeSystemBytes[] = FileUtil.fileToBytes(typeSystemFile);
+    TypeSystemDescription typeSystemDesciptor = (TypeSystemDescription) xmlParser
+        .parse(xmlTypeSystemSource);
 
+    typeSystemDesciptor.resolveImports();
+
+    ByteArrayOutputStream typeSystemBytes = new ByteArrayOutputStream();
+    typeSystemDesciptor.toXML(typeSystemBytes);
+    
     ClientResponse response = r.path("_replaceTypeSystem")
         .accept(MediaType.TEXT_XML)
         // TODO: How to fix this? Shouldn't accept do it?
         .header("Content-Type", MediaType.TEXT_XML)
-        .put(ClientResponse.class, typeSystemBytes);
+        .put(ClientResponse.class, typeSystemBytes.toByteArray());
     
     System.out.println("Response: " + response.getStatus());
   }