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>