You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2016/01/19 19:12:15 UTC
svn commit: r1725579 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java
Author: cwiklik
Date: Tue Jan 19 18:12:15 2016
New Revision: 1725579
URL: http://svn.apache.org/viewvc?rev=1725579&view=rev
Log:
UIMA-4265 updated to support specifying data file by name in addtion to by location
Modified:
uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java
Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java?rev=1725579&r1=1725578&r2=1725579&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/WarmUpDataProvider.java Tue Jan 19 18:12:15 2016
@@ -35,8 +35,12 @@ import org.apache.uima.cas.CAS;
import org.apache.uima.cas.TypeSystem;
import org.apache.uima.cas.impl.Serialization;
import org.apache.uima.cas.impl.XmiCasDeserializer;
+import org.apache.uima.resource.ResourceManager;
+import org.apache.uima.resource.metadata.Import;
import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.resource.metadata.impl.Import_impl;
import org.apache.uima.util.CasCreationUtils;
+import org.apache.uima.util.Level;
import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.XMLParser;
@@ -51,18 +55,53 @@ public class WarmUpDataProvider {
private boolean readingXmiFormat;
private TypeSystem inputTS;
- public static void main(String[] args) {
+ private static final Class<?> CLASS_NAME = WarmUpDataProvider.class;
+ public static void main(String[] args) {
+ try {
+ WarmUpDataProvider wdp = new WarmUpDataProvider(args[0]);
+
+ System.out.println("Got it initialized");
+ wdp.hasNext();
+
+ System.out.println("done");
+
+ } catch( Exception e) {
+ e.printStackTrace();
+ }
}
- public WarmUpDataProvider(String inputFileName)
- throws IOException {
+ public WarmUpDataProvider(String inputFileName) throws IOException {
this.inputFileName = inputFileName;
- fis = new FileInputStream(new File(inputFileName));
+ Import_impl theImport = new Import_impl();
+ theImport.setSuffix(".zip");
+
+ if ( !inputFileName.endsWith(".zip")) {
+ theImport.setName(inputFileName);
+ this.inputFileName = resolveToAbsolutePath(theImport);
+ // strip 'file:' from the begining
+ this.inputFileName = this.inputFileName.substring(this.inputFileName.indexOf(':')+1);
+ }
+
+
+ fis = new FileInputStream(new File(this.inputFileName));
zis = new ZipInputStream(new BufferedInputStream(fis, 1024 * 100));
docSeq = 0;
}
+ private String resolveToAbsolutePath(Import theImport) {
+ ResourceManager resourceManager = UIMAFramework.newDefaultResourceManager();
+ try {
+ return theImport.findAbsoluteUrl(resourceManager).toExternalForm();
+ } catch (Exception e) {
+ if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
+ UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, WarmUpDataProvider.class.getName(),
+ "resolveToAbsolutePath", UIMAEE_Constants.JMS_LOG_RESOURCE_BUNDLE, "UIMAEE_exception__WARNING", e);
+ }
+ return "ERROR converting import by name to absolute path";
+ }
+ }
+
public boolean hasNext() throws AnalysisEngineProcessException {
try {
nextEntry = zis.getNextEntry();
@@ -83,8 +122,7 @@ public class WarmUpDataProvider {
} else {
if (nextEntry.getName().equals("typesystem.xml")) {
throw new AnalysisEngineProcessException(new RuntimeException(
- "typesystem.xml entry found in the middle of input zipfile "
- + inputFileName));
+ "typesystem.xml entry found in the middle of input zipfile " + inputFileName));
}
}
byte[] buff = new byte[10000];
@@ -94,8 +132,7 @@ public class WarmUpDataProvider {
while (-1 != (bytesread = zis.read(buff))) {
baos.write(buff, 0, bytesread);
}
- ByteArrayInputStream bis = new ByteArrayInputStream(
- baos.toByteArray());
+ ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
if (readingXmiFormat) {
XmiCasDeserializer.deserialize(bis, cas, true);
} else {
@@ -116,18 +153,15 @@ public class WarmUpDataProvider {
while (-1 != (bytesread = zis.read(buff))) {
baos.write(buff, 0, bytesread);
}
- ByteArrayInputStream bis = new ByteArrayInputStream(
- baos.toByteArray());
+ ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
// Get XML parser from framework
XMLParser xmlParser = UIMAFramework.getXMLParser();
// Parse type system descriptor
TypeSystemDescription tsDesc = xmlParser
- .parseTypeSystemDescription(new XMLInputSource(
- (InputStream) bis, null));
+ .parseTypeSystemDescription(new XMLInputSource((InputStream) bis, null));
// Use type system description to create CAS and get the type system
// object
- inputTS = CasCreationUtils.createCas(tsDesc, null, null)
- .getTypeSystem();
+ inputTS = CasCreationUtils.createCas(tsDesc, null, null).getTypeSystem();
// advance to first input CAS
nextEntry = zis.getNextEntry();
} catch (Exception e) {