You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by to...@apache.org on 2011/02/28 10:55:55 UTC

svn commit: r1075261 - in /uima/sandbox/trunk/Solrcas/src: main/java/org/apache/uima/solrcas/ test/java/org/apache/uima/solrcas/ test/resources/ test/resources/org/apache/uima/solrcas/conf/

Author: tommaso
Date: Mon Feb 28 09:55:55 2011
New Revision: 1075261

URL: http://svn.apache.org/viewvc?rev=1075261&view=rev
Log:
[UIMA-2047] [UIMA-2067] - added project relative solrmapping.xml resolution, removed CAS.toString() mapping

Removed:
    uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FileUtils.java
Modified:
    uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FieldMappingReader.java
    uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java
    uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrMappingConfiguration.java
    uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/EmbeddedSolrCASConsumer.java
    uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/FieldMappingReaderTest.java
    uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/SolrCasConsumerIntegrationTest.java
    uima/sandbox/trunk/Solrcas/src/test/resources/TestSolrcasAE.xml
    uima/sandbox/trunk/Solrcas/src/test/resources/org/apache/uima/solrcas/conf/schema.xml
    uima/sandbox/trunk/Solrcas/src/test/resources/solrmapping.xml

Modified: uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FieldMappingReader.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FieldMappingReader.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FieldMappingReader.java (original)
+++ uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/FieldMappingReader.java Mon Feb 28 09:55:55 2011
@@ -34,9 +34,7 @@ import java.util.Map;
  */
 public class FieldMappingReader {
 
-  public SolrMappingConfiguration getConf(String path) throws Exception {
-
-    InputStream input = FileUtils.getURL(path).openStream();
+  public SolrMappingConfiguration getConf(InputStream input) throws Exception {
 
     SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
 
@@ -49,11 +47,9 @@ public class FieldMappingReader {
 
     String documentLanguage = handler.getDocumentLanguage();
 
-    String cas = handler.getCas();
-
     input.close();
 
-    SolrMappingConfiguration solrMappingConfiguration = new SolrMappingConfiguration(cas, documentText, documentLanguage, fieldMapping);
+    SolrMappingConfiguration solrMappingConfiguration = new SolrMappingConfiguration(documentText, documentLanguage, fieldMapping);
 
     return solrMappingConfiguration;
   }
@@ -69,7 +65,6 @@ public class FieldMappingReader {
 
     private boolean inLang = false;
     private boolean inText = false;
-    private boolean inCas = false;
 
     private static final String TYPE = "type";
     private static final String MAP = "map";
@@ -91,10 +86,6 @@ public class FieldMappingReader {
       return documentLanguage;
     }
 
-    public String getCas() {
-      return cas;
-    }
-
     @Override
     public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
       if (MAPPING.equals(name)) {
@@ -110,8 +101,6 @@ public class FieldMappingReader {
         inLang = true;
       } else if (TEXT.equals(name)) {
         inText = true;
-      } else if (CAS.equals(name)) {
-        inCas = true;
       }
     }
 
@@ -121,8 +110,6 @@ public class FieldMappingReader {
         documentText = String.valueOf(chars, start, length);
       } else if (inLang) {
         documentLanguage = String.valueOf(chars, start, length);
-      } else if (inCas) {
-        cas = String.valueOf(chars, start, length);
       }
     }
 
@@ -135,8 +122,6 @@ public class FieldMappingReader {
         inLang = false;
       } else if (TEXT.equals(name)) {
         inText = false;
-      } else if (CAS.equals(name)) {
-        inCas = false;
       }
     }
 

Modified: uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java (original)
+++ uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrCASConsumer.java Mon Feb 28 09:55:55 2011
@@ -27,9 +27,12 @@ import org.apache.uima.analysis_componen
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.*;
 import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.resource.ResourceAccessException;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Level;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.URI;
 import java.net.URL;
 import java.util.Map;
@@ -39,6 +42,10 @@ import java.util.Map;
  */
 public class SolrCASConsumer extends CasAnnotator_ImplBase {
 
+  private static final String CLASSPATH = "classpath:";
+  private static final String FILEPATH = "file://";
+  private static final String EMPTY_STRING = "";
+
   protected SolrServer solrServer;
 
   private SolrMappingConfiguration mappingConfig;
@@ -55,7 +62,10 @@ public class SolrCASConsumer extends Cas
       /* read configuration */
       FieldMappingReader fieldMappingReader = new FieldMappingReader();
       String mappingFileParam = String.valueOf(context.getConfigParameterValue("mappingFile"));
-      this.mappingConfig = fieldMappingReader.getConf(mappingFileParam);
+
+      InputStream input = getInputStream(mappingFileParam);
+
+      this.mappingConfig = fieldMappingReader.getConf(input);
 
       /* set Solr autoCommit parameter */
       Object autoCommitParam = context.getConfigParameterValue("autoCommit");
@@ -70,6 +80,21 @@ public class SolrCASConsumer extends Cas
     }
   }
 
+  /* allows retrieve of input stream from a path specifying both file:// absolute or relative
+   *  paths, classpath: path or http:// and other URL protocols
+   */
+  private InputStream getInputStream(String path) throws ResourceAccessException, IOException {
+    InputStream input;
+    if (path.startsWith(CLASSPATH)) {
+      input = System.class.getResource(path.replaceFirst(CLASSPATH, EMPTY_STRING)).openStream();
+    } else if (path.startsWith(FILEPATH)) {
+      input = getContext().getResourceAsStream(path.replace(FILEPATH, EMPTY_STRING));
+    } else {
+      input = URI.create(path).toURL().openStream();
+    }
+    return input;
+  }
+
   protected SolrServer createServer() throws Exception {
     /* get Solr type*/
     String solrInstanceTypeParam = String.valueOf(getContext().
@@ -91,8 +116,6 @@ public class SolrCASConsumer extends Cas
   public void process(CAS cas) throws AnalysisEngineProcessException {
 
     SolrInputDocument document = new SolrInputDocument();
-    if (mappingConfig.getCasMapping() != null && mappingConfig.getCasMapping().length() > 0)
-      document.addField(mappingConfig.getCasMapping(), cas.toString());
     if (mappingConfig.getDocumentTextMapping() != null && mappingConfig.getDocumentTextMapping().length() > 0)
       document.addField(mappingConfig.getDocumentTextMapping(), cas.getDocumentText());
     if (mappingConfig.getDocumentLanguageMapping() != null && mappingConfig.getDocumentLanguageMapping().length() > 0)

Modified: uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrMappingConfiguration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrMappingConfiguration.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrMappingConfiguration.java (original)
+++ uima/sandbox/trunk/Solrcas/src/main/java/org/apache/uima/solrcas/SolrMappingConfiguration.java Mon Feb 28 09:55:55 2011
@@ -32,10 +32,8 @@ public class SolrMappingConfiguration {
 
   private String documentLanguageMapping;
 
-  private String casMapping;
 
-  public SolrMappingConfiguration(String casMapping, String documentTextMapping, String documentLanguageMapping, Map<String, Map<String, String>> featureStructureMapping) {
-    this.casMapping = casMapping;
+  public SolrMappingConfiguration(String documentTextMapping, String documentLanguageMapping, Map<String, Map<String, String>> featureStructureMapping) {
     this.documentLanguageMapping = documentLanguageMapping;
     this.documentTextMapping = documentTextMapping;
     this.featureStructuresMapping = featureStructureMapping;
@@ -53,7 +51,4 @@ public class SolrMappingConfiguration {
     return featureStructuresMapping;
   }
 
-  public String getCasMapping() {
-    return casMapping;
-  }
 }

Modified: uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/EmbeddedSolrCASConsumer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/EmbeddedSolrCASConsumer.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/EmbeddedSolrCASConsumer.java (original)
+++ uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/EmbeddedSolrCASConsumer.java Mon Feb 28 09:55:55 2011
@@ -37,7 +37,7 @@ public class EmbeddedSolrCASConsumer ext
             getConfigParameterValue("solrPath"));
 
     if (solrInstanceTypeParam.equals("embedded")) {
-      URL solrURL = FileUtils.getURL(solrPathParam);
+      URL solrURL = getContext().getResourceURL(solrPathParam.replace("file://",""));
       System.setProperty("solr.solr.home", solrURL.getFile());
       CoreContainer.Initializer initializer = new CoreContainer.Initializer();
       CoreContainer coreContainer = initializer.initialize();

Modified: uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/FieldMappingReaderTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/FieldMappingReaderTest.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/FieldMappingReaderTest.java (original)
+++ uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/FieldMappingReaderTest.java Mon Feb 28 09:55:55 2011
@@ -34,7 +34,8 @@ public class FieldMappingReaderTest {
   public void testConfReader() {
     try {
       FieldMappingReader fieldMappingReader = new FieldMappingReader();
-      SolrMappingConfiguration mapping = fieldMappingReader.getConf("classpath:/solrmapping.xml");
+      SolrMappingConfiguration mapping = fieldMappingReader.getConf(this.getClass().
+              getResourceAsStream("/solrmapping.xml"));
       assertNotNull(mapping);
       
       Map<String, Map<String, String>> featureStructuresMapping = mapping.getFeatureStructuresMapping();
@@ -46,7 +47,6 @@ public class FieldMappingReaderTest {
       
       assertEquals("language", mapping.getDocumentLanguageMapping());
       assertEquals("text", mapping.getDocumentTextMapping());
-      assertEquals("id", mapping.getCasMapping());
     } catch (Exception e) {
       fail(e.getLocalizedMessage());
     }

Modified: uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/SolrCasConsumerIntegrationTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/SolrCasConsumerIntegrationTest.java?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/SolrCasConsumerIntegrationTest.java (original)
+++ uima/sandbox/trunk/Solrcas/src/test/java/org/apache/uima/solrcas/SolrCasConsumerIntegrationTest.java Mon Feb 28 09:55:55 2011
@@ -69,7 +69,7 @@ public class SolrCasConsumerIntegrationT
       annotatorTester.performTest(cas);
 
       /* create a Solr instance to check document has been indexed as expected */
-      URL solrURL = FileUtils.getURL("classpath:/org/apache/uima/solrcas/");
+      URL solrURL = this.getClass().getResource("/org/apache/uima/solrcas/");
       System.setProperty("solr.solr.home", solrURL.getFile());
       CoreContainer.Initializer initializer = new CoreContainer.Initializer();
       CoreContainer coreContainer = initializer.initialize();

Modified: uima/sandbox/trunk/Solrcas/src/test/resources/TestSolrcasAE.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/resources/TestSolrcasAE.xml?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/resources/TestSolrcasAE.xml (original)
+++ uima/sandbox/trunk/Solrcas/src/test/resources/TestSolrcasAE.xml Mon Feb 28 09:55:55 2011
@@ -63,7 +63,7 @@
       <nameValuePair>
         <name>mappingFile</name>
         <value>
-          <string>classpath:/solrmapping.xml</string>
+          <string>file://solrmapping.xml</string>
         </value>
       </nameValuePair>
       <nameValuePair>
@@ -75,7 +75,7 @@
       <nameValuePair>
         <name>solrPath</name>
         <value>
-          <string>classpath:/org/apache/uima/solrcas/</string>
+          <string>file://org/apache/uima/solrcas/</string>
         </value>
       </nameValuePair>
       <nameValuePair>

Modified: uima/sandbox/trunk/Solrcas/src/test/resources/org/apache/uima/solrcas/conf/schema.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/resources/org/apache/uima/solrcas/conf/schema.xml?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/resources/org/apache/uima/solrcas/conf/schema.xml (original)
+++ uima/sandbox/trunk/Solrcas/src/test/resources/org/apache/uima/solrcas/conf/schema.xml Mon Feb 28 09:55:55 2011
@@ -400,7 +400,7 @@
        when adding a document.
    -->
 
-   <field name="id" type="string" indexed="true" stored="true" required="true" /> 
+   <field name="id" type="string" indexed="true" stored="true" required="false" />
    <field name="sku" type="textTight" indexed="true" stored="true" omitNorms="true"/>
    <field name="name" type="textgen" indexed="true" stored="true"/>
    <field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>
@@ -499,7 +499,7 @@
  <!-- Field to use to determine and enforce document uniqueness. 
       Unless this field is marked with required="false", it will be a required field
    -->
- <uniqueKey>id</uniqueKey>
+ <uniqueKey>text</uniqueKey>
 
  <!-- field for the QueryParser to use when an explicit fieldname is absent -->
  <defaultSearchField>text</defaultSearchField>

Modified: uima/sandbox/trunk/Solrcas/src/test/resources/solrmapping.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/Solrcas/src/test/resources/solrmapping.xml?rev=1075261&r1=1075260&r2=1075261&view=diff
==============================================================================
--- uima/sandbox/trunk/Solrcas/src/test/resources/solrmapping.xml (original)
+++ uima/sandbox/trunk/Solrcas/src/test/resources/solrmapping.xml Mon Feb 28 09:55:55 2011
@@ -20,7 +20,6 @@
 -->
 
 <solrMapping>
-  <cas>id</cas>
   <documentText>text</documentText>
   <documentLanguage>language</documentLanguage>
   <fsMapping>