You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2016/12/19 17:34:36 UTC

svn commit: r1775142 - in /uima/ruta/trunk/ruta-core/src: main/java/org/apache/uima/ruta/descriptor/ test/java/org/apache/uima/ruta/descriptor/

Author: pkluegl
Date: Mon Dec 19 17:34:36 2016
New Revision: 1775142

URL: http://svn.apache.org/viewvc?rev=1775142&view=rev
Log:
UIMA-5192
- set rules param
- added test

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorInformation.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/descriptor/GenerateDescriptorTest.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java?rev=1775142&r1=1775141&r2=1775142&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java Mon Dec 19 17:34:36 2016
@@ -308,10 +308,12 @@ public class RutaDescriptorBuilder {
           String[] resourcePaths) throws InvalidXMLException, IOException {
     TypeSystemDescription aets = uimaFactory.createTypeSystemDescription();
     Import_impl import_impl = null;
+    boolean needToIncludeTypeSystemDescriptor = true;
     if (options.isImportByName()) {
       if (typeSystemDescription != null) {
         import_impl = new Import_impl();
         import_impl.setName(typeSystemDescription.getName());
+        needToIncludeTypeSystemDescriptor = false;
       }
     } else {
       if (typeSystemOutput != null) {
@@ -319,11 +321,15 @@ public class RutaDescriptorBuilder {
                 engineOutput);
         import_impl = new Import_impl();
         import_impl.setLocation(relativeLocation);
+        needToIncludeTypeSystemDescriptor = false;
       }
     }
 
-    return configureEngine(desc, engineOutput, options, scriptPaths, enginePaths, resourcePaths,
-            import_impl, aets);
+     AnalysisEngineDescription analysisEngineDescription = configureEngine(desc, engineOutput, options, scriptPaths, enginePaths, resourcePaths, import_impl, aets);
+     if(needToIncludeTypeSystemDescriptor) {
+       analysisEngineDescription.getAnalysisEngineMetaData().setTypeSystem(typeSystemDescription);
+     }
+     return analysisEngineDescription;
   }
 
   @Deprecated
@@ -436,7 +442,8 @@ public class RutaDescriptorBuilder {
 
     AnalysisEngineDescription analysisEngineDescription = UIMAFramework.getXMLParser()
             .parseAnalysisEngineDescription(new XMLInputSource(defaultAnalysisEngine));
-    if (import_impl != null && (import_impl.getName() != null || import_impl.getLocation() != null)) {
+    if (import_impl != null
+            && (import_impl.getName() != null || import_impl.getLocation() != null)) {
       aets.setImports(new Import[] { import_impl });
     }
     analysisEngineDescription.getAnalysisEngineMetaData().setTypeSystem(aets);
@@ -465,12 +472,17 @@ public class RutaDescriptorBuilder {
       analysisEngineDescription.getAnalysisEngineMetaData().setCapabilities(newArray);
     }
 
-    String mainScript = desc.getScriptName();
-    if (!StringUtils.isBlank(desc.getPackageString())) {
-      mainScript = desc.getPackageString().concat(".").concat(mainScript);
+    if (desc.getRules() != null) {
+      analysisEngineDescription.getAnalysisEngineMetaData().getConfigurationParameterSettings()
+              .setParameterValue(RutaEngine.PARAM_RULES, desc.getRules());
+    } else {
+      String mainScript = desc.getScriptName();
+      if (!StringUtils.isBlank(desc.getPackageString())) {
+        mainScript = desc.getPackageString().concat(".").concat(mainScript);
+      }
+      analysisEngineDescription.getAnalysisEngineMetaData().getConfigurationParameterSettings()
+              .setParameterValue(RutaEngine.PARAM_MAIN_SCRIPT, mainScript);
     }
-    analysisEngineDescription.getAnalysisEngineMetaData().getConfigurationParameterSettings()
-            .setParameterValue(RutaEngine.PARAM_MAIN_SCRIPT, mainScript);
     if (scriptPaths != null) {
       analysisEngineDescription.getAnalysisEngineMetaData().getConfigurationParameterSettings()
               .setParameterValue(RutaEngine.PARAM_SCRIPT_PATHS, scriptPaths);

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java?rev=1775142&r1=1775141&r2=1775142&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorFactory.java Mon Dec 19 17:34:36 2016
@@ -171,6 +171,7 @@ public class RutaDescriptorFactory {
     String name = "Anonymous";
     descInfo.setScriptName(name);
     parser.file_input(name);
+    descInfo.setRules(script);
     return descInfo;
   }
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorInformation.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorInformation.java?rev=1775142&r1=1775141&r2=1775142&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorInformation.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorInformation.java Mon Dec 19 17:34:36 2016
@@ -48,6 +48,8 @@ public class RutaDescriptorInformation {
 
   private String packageString;
 
+  private String rules;
+
   public RutaDescriptorInformation() {
     super();
     typeShortNames = new ArrayList<String>();
@@ -157,4 +159,12 @@ public class RutaDescriptorInformation {
     this.packageString = packageString;
   }
 
+  public String getRules() {
+    return rules;
+  }
+  
+  public void setRules(String rules) {
+    this.rules = rules;
+  }
+
 }

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/descriptor/GenerateDescriptorTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/descriptor/GenerateDescriptorTest.java?rev=1775142&r1=1775141&r2=1775142&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/descriptor/GenerateDescriptorTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/descriptor/GenerateDescriptorTest.java Mon Dec 19 17:34:36 2016
@@ -21,6 +21,7 @@ package org.apache.uima.ruta.descriptor;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 
 import java.io.File;
 import java.io.IOException;
@@ -30,7 +31,13 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.antlr.runtime.RecognitionException;
+import org.apache.commons.lang3.tuple.Pair;
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.Type;
+import org.apache.uima.fit.util.CasUtil;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.impl.ResourceManager_impl;
@@ -44,6 +51,7 @@ import org.apache.uima.util.InvalidXMLEx
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+
 public class GenerateDescriptorTest {
 
   private static URL basicAEUrl;
@@ -86,7 +94,9 @@ public class GenerateDescriptorTest {
             .getConfigurationParameterSettings();
 
     String mainScript = (String) cps.getParameterValue(RutaEngine.PARAM_MAIN_SCRIPT);
-    assertEquals("test.package.Anonymous", mainScript);
+    String rules = (String) cps.getParameterValue(RutaEngine.PARAM_RULES);
+    assertNull("mainScript param should be null", mainScript);
+    assertNotNull("rules param should not null", rules);
     
     String[] additionalEngines = (String[]) cps.getParameterValue(RutaEngine.PARAM_ADDITIONAL_ENGINES);
     assertNotNull(additionalEngines);
@@ -170,4 +180,23 @@ public class GenerateDescriptorTest {
 
   }
 
+  @Test
+  public void testScriptOnly() throws Exception {
+    String script = "DECLARE Type; CW{-> Type};";
+    
+    RutaDescriptorFactory rdf = new RutaDescriptorFactory(basicTSUrl, basicAEUrl);
+    RutaDescriptorInformation descriptorInformation = rdf.parseDescriptorInformation(script);
+    RutaBuildOptions options = new RutaBuildOptions();
+    Pair<AnalysisEngineDescription, TypeSystemDescription> descriptions = rdf.createDescriptions(null, null, descriptorInformation, options, null, null, null);
+    assertNotNull("Typesystem does not contain declaredtype!", descriptions.getValue().getType("Anonymous.Type"));
+    assertNotNull("AE typesystem does not contain declared type!", descriptions.getKey().getAnalysisEngineMetaData().getTypeSystem().getType("Anonymous.Type"));
+    AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(descriptions.getKey());
+    CAS cas = ae.newCAS();
+    cas.setDocumentText("This is a test.");
+    ae.process(cas);
+    Type type = cas.getTypeSystem().getType("Anonymous.Type");
+    assertEquals(1, CasUtil.select(cas, type).size());
+    cas.release();
+  }
+  
 }