You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/03/17 12:21:49 UTC

[37/52] [abbrv] jena git commit: Compacted and simplified changes to jena-text to support ppd-text-index.

Compacted and simplified changes to jena-text
to support ppd-text-index.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3ff763ac
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3ff763ac
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3ff763ac

Branch: refs/heads/JENA-507
Commit: 3ff763ac184dd49bdc3b6ceff9acb778aac29eae
Parents: 8a67230
Author: Chris Dollin <eh...@googlemail.com>
Authored: Wed Mar 11 15:13:43 2015 +0000
Committer: Chris Dollin <eh...@googlemail.com>
Committed: Wed Mar 11 15:13:43 2015 +0000

----------------------------------------------------------------------
 .../jena/query/text/DatasetGraphText.java       |  2 +-
 .../org/apache/jena/query/text/TextIndex.java   |  1 +
 .../apache/jena/query/text/TextIndexLucene.java | 13 +++++++
 .../apache/jena/query/text/TextIndexSolr.java   |  5 +++
 .../text/assembler/TextDatasetAssembler.java    | 37 ++++++++++++++------
 5 files changed, 46 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3ff763ac/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java b/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
index f856681..f746a71 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
@@ -142,6 +142,7 @@ public class DatasetGraphText extends DatasetGraphMonitor implements Transaction
      */
     @Override
     public void commit() {
+    	super.getMonitor().finish() ;
         // Phase 1
         if (readWriteMode.get() == ReadWrite.WRITE) {
             try {
@@ -167,7 +168,6 @@ public class DatasetGraphText extends DatasetGraphMonitor implements Transaction
             throw new TextIndexException(t);
         }
         readWriteMode.set(null);
-        super.getMonitor().finish() ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/3ff763ac/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
index 3aabd5b..7d3092e 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndex.java
@@ -36,6 +36,7 @@ public interface TextIndex extends Closeable //, Transactional
     
     // Update operations
     void addEntity(Entity entity) ;
+    void updateEntity(Entity entity) ;
     
     
     // read operations

http://git-wip-us.apache.org/repos/asf/jena/blob/3ff763ac/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index 12ff1ea..7d42d9d 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -38,6 +38,7 @@ import org.apache.lucene.index.DirectoryReader ;
 import org.apache.lucene.index.IndexReader ;
 import org.apache.lucene.index.IndexWriter ;
 import org.apache.lucene.index.IndexWriterConfig ;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.queryparser.classic.ParseException ;
 import org.apache.lucene.queryparser.classic.QueryParser ;
 import org.apache.lucene.queryparser.classic.QueryParserBase ;
@@ -188,6 +189,18 @@ public class TextIndexLucene implements TextIndex {
             throw new TextIndexException(ex) ;
         }
     }
+    
+    @Override public void updateEntity(Entity entity) {
+        if ( log.isDebugEnabled() )
+            log.debug("Update entity: " + entity) ;
+        try {
+        	Document doc = doc(entity);
+        	Term term = new Term(docDef.getEntityField(), entity.getId());
+        	indexWriter.updateDocument(	term, doc);
+        } catch (IOException e) {
+            throw new TextIndexException(e) ;
+        }
+    }
 
     @Override
     public void addEntity(Entity entity) {

http://git-wip-us.apache.org/repos/asf/jena/blob/3ff763ac/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
index 45571bc..84bd11a 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexSolr.java
@@ -53,6 +53,11 @@ public class TextIndexSolr implements TextIndex
         this.solrServer = server ;
         this.docDef = def ;
     }
+
+	@Override
+	public void updateEntity(Entity entity) {
+		throw new RuntimeException("TextIndexSolr.updateEntity not implemented.");
+	}
     
     @Override
     public void prepareCommit() { }

http://git-wip-us.apache.org/repos/asf/jena/blob/3ff763ac/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
index 7fb30cb..f3eea7c 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
@@ -32,6 +32,7 @@ import com.hp.hpl.jena.assembler.assemblers.AssemblerBase ;
 import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.rdf.model.Resource ;
 import com.hp.hpl.jena.sparql.ARQConstants ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph;
 import com.hp.hpl.jena.sparql.core.assembler.DatasetAssembler ;
 import com.hp.hpl.jena.sparql.util.Loader ;
 import com.hp.hpl.jena.sparql.util.graph.GraphUtils ;
@@ -65,22 +66,36 @@ public class TextDatasetAssembler extends AssemblerBase implements Assembler
         TextDocProducer textDocProducer = null ;
         if (null != textDocProducerNode) {
             Class<?> c = Loader.loadClass(textDocProducerNode.getURI(), TextDocProducer.class) ;
-            try
-            {
-                Constructor<?> ctor = c.getConstructor(TextIndex.class) ;
-                textDocProducer = (TextDocProducer)ctor.newInstance(textIndex) ;
-            }
-            catch (Exception ex)
-            {
-                String className = textDocProducerNode.getURI().substring(ARQConstants.javaClassURIScheme.length()) ;
-                Log.warn(Loader.class, "Exception during instantiation '"+className+"': "+ex.getMessage()) ;
-                return null ;
+            
+            String className = textDocProducerNode.getURI().substring(ARQConstants.javaClassURIScheme.length()) ;
+            Constructor<?> dyadic = getConstructor(c, DatasetGraph.class, TextIndex.class);
+            Constructor<?> monadic = getConstructor(c, TextIndex.class);
+            
+            try {
+            	if (dyadic != null) {
+            		textDocProducer = (TextDocProducer) dyadic.newInstance(ds.asDatasetGraph(), textIndex) ;
+            	} else if (monadic != null) {
+            		textDocProducer = (TextDocProducer) monadic.newInstance(textIndex) ;
+            	} else {
+            		Log.warn(Loader.class, "Exception during instantiation '"+className+"' no TextIndex or DatasetGraph,Index constructor" );
+            	}
+            } catch (Exception ex) {
+            	Log.warn(Loader.class, "Exception during instantiation '"+className+"': "+ex.getMessage()) ;
+            	return null ;            	
             }
         }
         
         Dataset dst = TextDatasetFactory.create(ds, textIndex, true, textDocProducer) ;
         return dst ;
-        
     }
+	
+	private Constructor<?> getConstructor(Class<?> c, Class<?> ...types) {
+		try {
+			return c.getConstructor(types);
+		} catch (NoSuchMethodException e) {			
+			return null;	
+		}
+	}
+	
 }