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

[1/3] jena git commit: Compacted and simplified changes to jena-text to support ppd-text-index.

Repository: jena
Updated Branches:
  refs/heads/master 797c52a71 -> 7952d35ba


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/master
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;	
+		}
+	}
+	
 }
 


[3/3] jena git commit: Merge branch 'revised-A' of https://github.com/epimorphics/jena-config-doc-producer

Posted by sa...@apache.org.
Merge branch 'revised-A' of https://github.com/epimorphics/jena-config-doc-producer

This closes #42 (jena-text updates for constructing documents suitable for conjunctive queries)


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

Branch: refs/heads/master
Commit: 7952d35ba14dcbe8600fe4bf4a58bc8c2dc862db
Parents: 797c52a a8002e8
Author: Stephen Allen <sa...@apache.org>
Authored: Fri Mar 13 16:26:47 2015 -0400
Committer: Stephen Allen <sa...@apache.org>
Committed: Fri Mar 13 16:26:47 2015 -0400

----------------------------------------------------------------------
 .../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 ++++++++++++++------
 .../assembler/TestTextDatasetAssembler.java     | 34 ++++++++++++++++++
 6 files changed, 80 insertions(+), 12 deletions(-)
----------------------------------------------------------------------



[2/3] jena git commit: Added test to check that the assembler gives access to the two-argument constructor of a docProducer.

Posted by sa...@apache.org.
Added test to check that the
assembler gives access to the two-argument constructor of a docProducer.


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

Branch: refs/heads/master
Commit: a8002e8ce3452aad7c51f20600c9389ef71a6dd5
Parents: 3ff763a
Author: Chris Dollin <eh...@googlemail.com>
Authored: Thu Mar 12 15:25:27 2015 +0000
Committer: Chris Dollin <eh...@googlemail.com>
Committed: Thu Mar 12 15:25:27 2015 +0000

----------------------------------------------------------------------
 .../assembler/TestTextDatasetAssembler.java     | 34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/a8002e8c/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
index c0bdb82..11c4bdb 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/assembler/TestTextDatasetAssembler.java
@@ -23,6 +23,7 @@ import org.apache.jena.query.text.TextDocProducer ;
 import org.apache.jena.query.text.TextIndex ;
 import org.apache.jena.query.text.TextIndexLucene ;
 import org.apache.jena.query.text.TextQuery ;
+import org.junit.Ignore;
 import org.junit.Test ;
 
 import com.hp.hpl.jena.assembler.Assembler ;
@@ -30,6 +31,7 @@ import com.hp.hpl.jena.assembler.exceptions.AssemblerException ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph;
 import com.hp.hpl.jena.sparql.core.QuadAction ;
 import com.hp.hpl.jena.tdb.assembler.AssemblerTDB ;
 import com.hp.hpl.jena.vocabulary.RDF ;
@@ -47,6 +49,7 @@ public class TestTextDatasetAssembler extends AbstractTestTextAssembler {
 	private static final Resource noDatasetPropertySpec;
 	private static final Resource noIndexPropertySpec;
 	private static final Resource customTextDocProducerSpec;
+	private static final Resource customDyadicTextDocProducerSpec;
 	
 	@Test
 	public void testSimpleDatasetAssembler() {
@@ -69,6 +72,15 @@ public class TestTextDatasetAssembler extends AbstractTestTextAssembler {
 	    Dataset dataset = (Dataset)Assembler.general.open(customTextDocProducerSpec) ;
 	    DatasetGraphText dsgText = (DatasetGraphText)dataset.asDatasetGraph() ;
         assertTrue(dsgText.getMonitor() instanceof CustomTextDocProducer) ;
+        dataset.close();
+	}
+	
+	@Test
+	public void testCustomTextDocProducerDyadicConstructor() {
+	    Dataset dataset = (Dataset)Assembler.general.open(customDyadicTextDocProducerSpec) ;
+	    DatasetGraphText dsgText = (DatasetGraphText)dataset.asDatasetGraph() ;
+        assertTrue(dsgText.getMonitor() instanceof CustomDyadicTextDocProducer) ;
+        dataset.close();
 	}
 	
 	static {
@@ -94,6 +106,13 @@ public class TestTextDatasetAssembler extends AbstractTestTextAssembler {
                      .addProperty(TextVocab.pIndex, SIMPLE_INDEX_SPEC5)
                      .addProperty(TextVocab.pTextDocProducer, model.createResource("java:org.apache.jena.query.text.assembler.TestTextDatasetAssembler$CustomTextDocProducer"));
 		
+		customDyadicTextDocProducerSpec =
+                model.createResource(TESTBASE + "customDyadicTextDocProducerSpec")
+                     .addProperty(RDF.type, TextVocab.textDataset)
+                     .addProperty(TextVocab.pDataset, SIMPLE_DATASET_SPEC)
+                     .addProperty(TextVocab.pIndex, SIMPLE_INDEX_SPEC5)
+                     .addProperty(TextVocab.pTextDocProducer, model.createResource("java:org.apache.jena.query.text.assembler.TestTextDatasetAssembler$CustomDyadicTextDocProducer"));
+		
 	}
 	
 	private static class CustomTextDocProducer implements TextDocProducer {
@@ -109,5 +128,20 @@ public class TestTextDatasetAssembler extends AbstractTestTextAssembler {
         @Override
         public void change(QuadAction qaction, Node g, Node s, Node p, Node o) { }
 	}
+	
+	
+	private static class CustomDyadicTextDocProducer implements TextDocProducer {
+	    
+	    public CustomDyadicTextDocProducer(DatasetGraph dg, TextIndex textIndex) { }
+
+        @Override
+        public void start() { }
+
+        @Override
+        public void finish() { }
+
+        @Override
+        public void change(QuadAction qaction, Node g, Node s, Node p, Node o) { }
+	}
 
 }