You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/04/09 15:37:35 UTC
svn commit: r1466026 - in /jena/Experimental/jena-text: ./
src/main/java/org/apache/jena/dsg/ src/main/java/org/apache/jena/dsg2/
src/main/java/org/apache/jena/query/text/ src/test/java/org/apache/jena/dsg/
Author: andy
Date: Tue Apr 9 13:37:34 2013
New Revision: 1466026
URL: http://svn.apache.org/r1466026
Log:
Extract the core code, to be migrated to jena-arq, that is actually used from other machinery.
Testing of core code.
Added:
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DSGViewGraphs.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java
- copied, changed from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCapture.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCounter.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/BatchedStreamRDF.java
- copied, changed from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/BatchedStreamRDF.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamQuadsToTriples.java
- copied, changed from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamQuadsToTriples.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamRDFSplitter.java
- copied, changed from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamRDFSplitter.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamTriplesToQuads.java
- copied, changed from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamTriplesToQuads.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/AbstractTestGraphOverDataset.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/AbstractTestGraphOverDataset.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TS_ViewGraphs.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TS_ViewGraphs.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDSGViewGraphs.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDSGViewGraphs.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetGraphsRegular.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDatasetGraphsRegular.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetMonitor.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetMem.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetMem.java
jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetTDB.java
- copied, changed from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetTDB.java
Removed:
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/BatchedStreamRDF.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamQuadsToTriples.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamRDFSplitter.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamTriplesToQuads.java
Modified:
jena/Experimental/jena-text/pom.xml
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChanges.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetGraphMonitor.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/GraphViewDataset.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/TextDocProducerEntities.java
Modified: jena/Experimental/jena-text/pom.xml
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/pom.xml?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/pom.xml (original)
+++ jena/Experimental/jena-text/pom.xml Tue Apr 9 13:37:34 2013
@@ -34,6 +34,7 @@
-->
<properties>
+ <ver.jena>2.10.1-SNAPSHOT</ver.jena>
<ver.junit>[4.11,)</ver.junit>
<ver.slf4j>1.6.4</ver.slf4j>
<ver.log4j>1.2.16</ver.log4j>
@@ -56,10 +57,20 @@
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
- <version>2.10.1-SNAPSHOT</version>
+ <version>${ver.jena}</version>
<type>pom</type>
</dependency>
+ <!-- Testing support -->
+ <dependency>
+ <groupId>org.apache.jena</groupId>
+ <artifactId>jena-arq</artifactId>
+ <version>${ver.jena}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+
+
<!-- Needed for testing?
<dependency>
<groupId>org.apache.jena</groupId>
Added: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DSGViewGraphs.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DSGViewGraphs.java?rev=1466026&view=auto
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DSGViewGraphs.java (added)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DSGViewGraphs.java Tue Apr 9 13:37:34 2013
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.dsg;
+
+import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphWrapper ;
+
+/** Directly call the view mechanism */
+public class DSGViewGraphs extends DatasetGraphWrapper
+{
+ // Sort of temporary and may not be a good way to do this.
+ // This class is a converter.
+ // may integrate into DatasetGraph hierarchy.
+
+ public DSGViewGraphs(DatasetGraph dsg)
+ {
+ super(dsg) ;
+ }
+
+ @Override
+ public Graph getDefaultGraph()
+ { return GraphViewDataset.createDefaultGraph(getWrapped()) ; }
+
+ @Override
+ public Graph getGraph(Node graphNode)
+ { return GraphViewDataset.createNamedGraph(getWrapped(), graphNode) ; }
+
+
+}
+
Modified: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChanges.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChanges.java?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChanges.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChanges.java Tue Apr 9 13:37:34 2013
@@ -25,10 +25,7 @@ import com.hp.hpl.jena.graph.Node ;
*/
public interface DatasetChanges //extends Transactional
{
- /** Indicator that a sequence of changes is about to start
- * Check each implementation of DatasetChanges as to whether this is used and
- * what it indicates.
- */
+ /** Indicator that a sequence of changes is about to start */
public void start() ;
/** A change has occurred
Copied: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java (from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java?p2=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java&p1=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java&r1=1465565&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesBatched.java Tue Apr 9 13:37:34 2013
@@ -26,6 +26,9 @@ import org.apache.jena.atlas.lib.Lib ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.core.Quad ;
+/** Collect a stream of DatasetChanges into batches.with the same
+ * QuadAction that are adjacent in the change stream.
+ */
public abstract class DatasetChangesBatched implements DatasetChanges
{
private QuadAction currentAction = null ;
@@ -47,8 +50,8 @@ public abstract class DatasetChangesBatc
@Override public final void start()
{
- startBatch() ;
startBatched() ;
+ startBatch() ;
}
@Override public final void finish()
@@ -65,10 +68,11 @@ public abstract class DatasetChangesBatc
if ( batchQuads == null )
// No active batch.
startBatch() ;
+ // Drop and through and include in the current batch.
}
else if ( ! Lib.equal(currentAction, qaction) ||
- ! Lib.equal(currentGraph, g) ||
- ! Lib.equal(currentSubject, s) )
+ ! Lib.equal(currentGraph, g) ||
+ ! Lib.equal(currentSubject, s) )
{
finishBatch() ;
startBatch() ;
@@ -90,11 +94,11 @@ public abstract class DatasetChangesBatc
{
if ( batchQuads == null || batchQuads.size() == 0 )
return ;
- dispatch(batchQuads) ;
+ dispatch(currentAction, batchQuads) ;
batchQuads = null ;
}
- protected abstract void dispatch(List<Quad> batch) ;
+ protected abstract void dispatch(QuadAction quadAction, List<Quad> batch) ;
protected abstract void startBatched() ;
Added: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCapture.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCapture.java?rev=1466026&view=auto
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCapture.java (added)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCapture.java Tue Apr 9 13:37:34 2013
@@ -0,0 +1,87 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.dsg;
+
+import java.util.ArrayList ;
+import java.util.Collections ;
+import java.util.List ;
+
+import org.apache.jena.atlas.lib.Pair ;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+
+/** Capture a record of quad actions */
+class DatasetChangesCapture implements DatasetChanges
+{
+ final private List<Pair<QuadAction, Quad>> actions = new ArrayList<Pair<QuadAction, Quad>>() ;
+ final private boolean captureAdd ;
+ final private boolean captureDelete ;
+ final private boolean captureNoAdd ;
+ final private boolean captureNoDelete ;
+
+ /** Capture quad actions, excluding no-ops */
+ public DatasetChangesCapture()
+ { this(true, true, false, false) ; }
+
+ /** Capture quad actions, selectively by category */
+ public DatasetChangesCapture(boolean recordNoOps)
+ { this(true, true, recordNoOps, recordNoOps) ; }
+
+
+ /** Capture quad actions, selectively by category */
+ public DatasetChangesCapture(boolean captureAdd, boolean captureDelete, boolean captureNoAdd, boolean captureNoDelete)
+ {
+ this.captureAdd = captureAdd ;
+ this.captureDelete = captureDelete ;
+ this.captureNoAdd = captureNoAdd ;
+ this.captureNoDelete = captureNoDelete ;
+ }
+
+ public List<Pair<QuadAction, Quad>> getActions()
+ {
+ return Collections.unmodifiableList(actions) ;
+ }
+
+ @Override public void start() { }
+
+ @Override
+ public void change(QuadAction qaction, Node g, Node s, Node p, Node o)
+ {
+ Quad q = new Quad(g,s,p,o) ;
+ Pair<QuadAction, Quad> pair = Pair.create(qaction, q) ;
+
+ switch(qaction) {
+ case ADD :
+ if ( captureAdd ) actions.add(pair) ;
+ break ;
+ case DELETE :
+ if ( captureDelete ) actions.add(pair) ;
+ break ;
+ case NO_ADD :
+ if ( captureNoAdd ) actions.add(pair) ;
+ break ;
+ case NO_DELETE :
+ if ( captureNoDelete ) actions.add(pair) ;
+ break ;
+ }
+ }
+
+ @Override public void finish() { }
+}
Added: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCounter.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCounter.java?rev=1466026&view=auto
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCounter.java (added)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetChangesCounter.java Tue Apr 9 13:37:34 2013
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.dsg;
+
+import com.hp.hpl.jena.graph.Node ;
+
+class DatasetChangesCounter implements DatasetChanges
+{
+ long countStart = 0 ;
+ long countFinish = 0 ;
+ long countAdd = 0 ;
+ long countDelete = 0 ;
+ long countNoAdd = 0 ;
+ long countNoDelete = 0 ;
+
+
+ @Override
+ public void start()
+ {
+ countStart++ ;
+ }
+
+ @Override
+ public void change(QuadAction qaction, Node g, Node s, Node p, Node o)
+ {
+ switch (qaction)
+ {
+ case ADD: countAdd++ ; break ;
+ case DELETE: countDelete++ ; break ;
+ case NO_ADD: countNoAdd++ ; break ;
+ case NO_DELETE: countNoDelete++ ; break ;
+ //default : break ;
+ }
+ }
+
+ @Override
+ public void finish()
+ {
+ countFinish++ ;
+ }
+}
Modified: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetGraphMonitor.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetGraphMonitor.java?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetGraphMonitor.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/DatasetGraphMonitor.java Tue Apr 9 13:37:34 2013
@@ -18,10 +18,10 @@
package org.apache.jena.dsg ;
-import java.util.ArrayList ;
import java.util.Iterator ;
import java.util.List ;
-import java.util.NoSuchElementException ;
+
+import static org.apache.jena.atlas.iterator.Iter.take ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
@@ -124,15 +124,10 @@ public class DatasetGraphMonitor extends
@Override
public void deleteAny(Node g, Node s, Node p, Node o)
{
- // Need to find otu what is actually deleted.
- // Could record explicit ..... super.deleteAny(g,s,p,o) ;
- // or record actually diff ...
-
while (true)
{
Iterator<Quad> iter = find(g, s, p, o) ;
-
- // Read some
+ // Materialize - stops possible ConcurrentModificationExceptions
List<Quad> some = take(iter, SLICE) ;
for (Quad q : some)
delete$(q) ;
@@ -140,53 +135,6 @@ public class DatasetGraphMonitor extends
}
}
- static <T> List<T> take(Iterator<T> iter, int N)
- {
- iter = new IteratorN<T>(iter, N) ;
- List<T> x = new ArrayList<T>(N) ;
- for ( ; iter.hasNext() ; )
- x.add(iter.next()) ;
- return x ;
- }
-
- static class IteratorN<T> implements Iterator<T>
- {
- private final Iterator<T> iter ;
- private final int N ;
- private int count ;
-
- IteratorN(Iterator<T> iter, int N) {
- this.iter = iter ;
- this.N = N ;
- this.count = 0 ;
- }
-
- @Override
- public boolean hasNext()
- {
- if ( count >= N )
- return false ;
- return iter.hasNext() ;
- }
-
- @Override
- public T next()
- {
- if ( count >= N )
- throw new NoSuchElementException() ;
- T x = iter.next() ;
- count++ ;
- return null ;
- }
-
- @Override
- public void remove()
- {
- // But leave the count as-is.
- iter.remove() ;
- }
- }
-
@Override public void addGraph(Node gn, Graph g)
{
// Convert to quads.
Modified: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/GraphViewDataset.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/GraphViewDataset.java?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/GraphViewDataset.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/GraphViewDataset.java Tue Apr 9 13:37:34 2013
@@ -21,7 +21,6 @@ package org.apache.jena.dsg;
import java.util.Iterator ;
import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.query.text.DatasetGraphText ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
@@ -30,6 +29,8 @@ import com.hp.hpl.jena.graph.TripleMatch
import com.hp.hpl.jena.graph.impl.GraphBase ;
import com.hp.hpl.jena.shared.JenaException ;
import com.hp.hpl.jena.shared.PrefixMapping ;
+import com.hp.hpl.jena.shared.impl.PrefixMappingImpl ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
import com.hp.hpl.jena.util.iterator.WrappedIterator ;
@@ -46,10 +47,10 @@ public class GraphViewDataset extends Gr
public GraphViewException(String message, Throwable cause) { super(message, cause) ; }
}
- private final DatasetGraphText dsg ;
+ private final DatasetGraph dsg ;
private final Node gn ; // null for default graph.
- protected GraphViewDataset(DatasetGraphText dsg, Node gn)
+ protected GraphViewDataset(DatasetGraph dsg, Node gn)
{
this.dsg = dsg ;
if ( gn == null )
@@ -57,10 +58,10 @@ public class GraphViewDataset extends Gr
this.gn = gn ;
}
- public static Graph createDefaultGraph(DatasetGraphText dsg)
+ public static Graph createDefaultGraph(DatasetGraph dsg)
{ return new GraphViewDataset(dsg, Quad.defaultGraphNodeGenerated) ; }
- public static Graph createNamedGraph(DatasetGraphText dsg, Node graphIRI)
+ public static Graph createNamedGraph(DatasetGraph dsg, Node graphIRI)
{ return new GraphViewDataset(dsg, graphIRI) ; }
private final boolean isDefaultGraph() { return Quad.isDefaultGraph(gn) ; }
@@ -68,17 +69,18 @@ public class GraphViewDataset extends Gr
@Override
protected PrefixMapping createPrefixMapping()
{
-
- return baseGraph().getPrefixMapping() ;
+ // TODO Unsatisfactory - need PrefixMap support by DSGs then POeefixMap -> PrefixMapping
+ return new PrefixMappingImpl() ;
}
- private Graph baseGraph()
- {
- if ( isDefaultGraph() )
- return dsg.getBase().getDefaultGraph() ;
- else
- return dsg.getBase().getGraph(gn) ;
- }
+// private Graph baseGraph()
+// {
+// // TODO Be able to by pass already wrapped DSGs.
+// if ( isDefaultGraph() )
+// return dsg.getBase().getDefaultGraph() ;
+// else
+// return dsg.getBase().getGraph(gn) ;
+// }
@Override
protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
Copied: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/BatchedStreamRDF.java (from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/BatchedStreamRDF.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/BatchedStreamRDF.java?p2=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/BatchedStreamRDF.java&p1=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/BatchedStreamRDF.java&r1=1465565&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/BatchedStreamRDF.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/BatchedStreamRDF.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.dsg;
+package org.apache.jena.dsg2;
import java.util.ArrayList ;
import java.util.List ;
@@ -28,7 +28,7 @@ import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.sparql.core.Quad ;
-/** Batch a stream into truiples and/or quads.
+/** Batch a stream into triples and/or quads.
* Triples are batched on subject
* Quads are batched on (graph, subject).
*
Copied: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamQuadsToTriples.java (from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamQuadsToTriples.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamQuadsToTriples.java?p2=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamQuadsToTriples.java&p1=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamQuadsToTriples.java&r1=1465565&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamQuadsToTriples.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamQuadsToTriples.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.dsg;
+package org.apache.jena.dsg2;
import com.hp.hpl.jena.sparql.core.Quad ;
Copied: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamRDFSplitter.java (from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamRDFSplitter.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamRDFSplitter.java?p2=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamRDFSplitter.java&p1=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamRDFSplitter.java&r1=1465565&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamRDFSplitter.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamRDFSplitter.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.dsg;
+package org.apache.jena.dsg2;
import org.apache.jena.atlas.lib.Tuple ;
import org.apache.jena.riot.system.StreamRDF ;
Copied: jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamTriplesToQuads.java (from r1465565, jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamTriplesToQuads.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamTriplesToQuads.java?p2=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamTriplesToQuads.java&p1=jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamTriplesToQuads.java&r1=1465565&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg/StreamTriplesToQuads.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/dsg2/StreamTriplesToQuads.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.jena.dsg;
+package org.apache.jena.dsg2;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFWrapper ;
Modified: jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/DatasetGraphText.java Tue Apr 9 13:37:34 2013
@@ -49,9 +49,8 @@ public class DatasetGraphText extends Da
else
dsgtxn = new DatasetGraphWithLock(dsg) ;
}
-
- public DatasetGraph getBase() { return getWrapped() ; }
+// public DatasetGraph getBase() { return getWrapped() ; }
// ---- Intecept these and force the use of views.
@Override
Modified: jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/TextDocProducerEntities.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/TextDocProducerEntities.java?rev=1466026&r1=1466025&r2=1466026&view=diff
==============================================================================
--- jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/TextDocProducerEntities.java (original)
+++ jena/Experimental/jena-text/src/main/java/org/apache/jena/query/text/TextDocProducerEntities.java Tue Apr 9 13:37:34 2013
@@ -23,6 +23,7 @@ import java.util.List ;
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.iterator.Transform ;
import org.apache.jena.dsg.DatasetChangesBatched ;
+import org.apache.jena.dsg.QuadAction ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -53,18 +54,19 @@ public class TextDocProducerEntities ext
{ indexer.finishIndexing() ; }
@Override
- protected void dispatch(List<Quad> batch)
+ protected void dispatch(QuadAction quadAction, List<Quad> batch)
{
if ( ! started )
throw new IllegalStateException("Not started") ;
-
+ if ( ! QuadAction.ADD.equals(quadAction) )
+ return ;
if ( batch.size() == 0 )
return ;
Quad q = batch.get(0) ;
Node g = q.getGraph() ;
Node s = q.getSubject() ;
List<Triple> triples = quadsToTriples(batch) ;
- //docEntity(s, triples) ;
+ //docEntity(s, triples) ; // One docment per entity - future possibility.
docTriples(s,triples) ; // Does not need batching.
}
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/AbstractTestGraphOverDataset.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/AbstractTestGraphOverDataset.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/AbstractTestGraphOverDataset.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/AbstractTestGraphOverDataset.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/AbstractTestGraphOverDataset.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/AbstractTestGraphOverDataset.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/AbstractTestGraphOverDataset.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
+package org.apache.jena.dsg;
import java.util.Iterator ;
@@ -24,7 +24,6 @@ import org.apache.jena.atlas.iterator.It
import org.apache.jena.atlas.junit.BaseTest ;
import org.junit.Before ;
import org.junit.Test ;
-import projects.viewgraph.DSGViewGraphs ;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
@@ -110,13 +109,13 @@ public abstract class AbstractTestGraphO
@Test public void graphDSG_contains_1()
{
- boolean b = new DSGViewGraphs(baseDSG, null).containsGraph(gn1) ;
+ boolean b = new DSGViewGraphs(baseDSG).containsGraph(gn1) ;
assertTrue(b) ;
}
@Test public void graphDSG_contains_2()
{
- boolean b = new DSGViewGraphs(baseDSG, null).containsGraph(gnNotSuchGraph) ;
+ boolean b = new DSGViewGraphs(baseDSG).containsGraph(gnNotSuchGraph) ;
assertFalse(b) ;
}
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TS_ViewGraphs.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TS_ViewGraphs.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TS_ViewGraphs.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TS_ViewGraphs.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TS_ViewGraphs.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TS_ViewGraphs.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TS_ViewGraphs.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
+package org.apache.jena.dsg;
import org.junit.runner.RunWith ;
import org.junit.runners.Suite ;
@@ -28,8 +28,9 @@ import org.junit.runners.Suite.SuiteClas
TestDatasetGraphsRegular.class ,
TestGraphOverDatasetMem.class ,
TestDSGViewGraphs.class ,
- TestDatasetPrefixes.class ,
- TestGraphOverDatasetTDB.class
+ TestGraphOverDatasetTDB.class ,
+
+ TestDatasetMonitor.class
})
public class TS_ViewGraphs
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDSGViewGraphs.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDSGViewGraphs.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDSGViewGraphs.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDSGViewGraphs.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDSGViewGraphs.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDSGViewGraphs.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDSGViewGraphs.java Tue Apr 9 13:37:34 2013
@@ -16,9 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
-
-import projects.viewgraph.GraphViewDataset ;
+package org.apache.jena.dsg;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetGraphsRegular.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDatasetGraphsRegular.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetGraphsRegular.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetGraphsRegular.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDatasetGraphsRegular.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestDatasetGraphsRegular.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetGraphsRegular.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
+package org.apache.jena.dsg;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
Added: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetMonitor.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetMonitor.java?rev=1466026&view=auto
==============================================================================
--- jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetMonitor.java (added)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestDatasetMonitor.java Tue Apr 9 13:37:34 2013
@@ -0,0 +1,142 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.dsg;
+
+import java.util.List ;
+
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.Pair ;
+import org.junit.Test ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import static org.apache.jena.dsg.QuadAction.* ;
+
+public class TestDatasetMonitor extends BaseTest
+{
+ static Quad quad1 = SSE.parseQuad("(_ <s> <p> 1)") ;
+ static Quad quad2 = SSE.parseQuad("(<g> <s> <p> 2)") ;
+ static Quad quad3 = SSE.parseQuad("(<g> <s> <p> 3)") ;
+ static Quad quad4 = SSE.parseQuad("(<g> <s> <p> 4)") ;
+
+
+ @Test public void countChanges_01() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCounter dsgChanges = new DatasetChangesCounter() ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgChanges) ;
+
+ check(dsgChanges, 0, 0, 0, 0) ;
+ dsg.add(quad1) ;
+ check(dsgChanges, 1, 0, 0, 0) ;
+ }
+
+ @Test public void countChanges_02() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCounter dsgChanges = new DatasetChangesCounter() ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgChanges) ;
+
+ check(dsgChanges, 0, 0, 0, 0) ;
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ check(dsgChanges, 1, 1, 0, 0) ;
+ }
+
+ @Test public void countChanges_03() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCounter dsgChanges = new DatasetChangesCounter() ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgChanges) ;
+
+ check(dsgChanges, 0, 0, 0, 0) ;
+ dsg.add(quad1) ;
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ dsg.delete(quad1) ;
+ check(dsgChanges, 1, 1, 1, 1) ;
+ }
+
+ @Test public void countChanges_04() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCounter dsgChanges = new DatasetChangesCounter() ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgChanges) ;
+
+ check(dsgChanges, 0, 0, 0, 0) ;
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ check(dsgChanges, 2, 2, 0, 0) ;
+ }
+
+ @Test public void captureChanges_01() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCapture dsgCapture = new DatasetChangesCapture() ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgCapture) ;
+
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ dsg.add(quad2) ;
+ dsg.add(quad2) ;
+
+ List<Pair<QuadAction, Quad>> record = dsgCapture.getActions() ;
+ // Records only real actions.
+ assertEquals(3, record.size()) ;
+ check(record, 0, ADD, quad1) ;
+ check(record, 1, DELETE, quad1) ;
+ check(record, 2, ADD, quad2) ;
+ }
+
+ @Test public void captureChanges_02() {
+ DatasetGraph dsgBase = DatasetGraphFactory.createMem() ;
+ DatasetChangesCapture dsgCapture = new DatasetChangesCapture(true) ;
+ DatasetGraph dsg = new DatasetGraphMonitor(dsgBase, dsgCapture) ;
+
+ dsg.add(quad1) ;
+ dsg.delete(quad1) ;
+ dsg.delete(quad1) ;
+ dsg.add(quad2) ;
+ dsg.add(quad2) ;
+
+ List<Pair<QuadAction, Quad>> record = dsgCapture.getActions() ;
+ assertEquals(5, record.size()) ;
+ check(record, 0, ADD, quad1) ;
+ check(record, 1, DELETE, quad1) ;
+ check(record, 2, NO_DELETE, quad1) ;
+ check(record, 3, ADD, quad2) ;
+ check(record, 4, NO_ADD, quad2) ;
+ }
+
+ private static void check(DatasetChangesCounter changes, long adds, long deletes, long noAdds, long noDeletes)
+ {
+ assertEquals("Adds", adds, changes.countAdd) ;
+ assertEquals("Deletes", deletes, changes.countDelete) ;
+ assertEquals("NoAdds", noAdds, changes.countNoAdd) ;
+ assertEquals("NoDeletes", noDeletes, changes.countNoDelete) ;
+ }
+
+ private static void check(List<Pair<QuadAction, Quad>> record, int indx, QuadAction quadAction, Quad quad)
+ {
+ assertTrue("Index "+indx+" out of range [0,"+record.size()+")", 0 <= indx && indx < record.size() ) ;
+ Pair<QuadAction, Quad> pair = record.get(indx) ;
+ assertEquals(quadAction, pair.getLeft()) ;
+ assertEquals(quad, pair.getRight()) ;
+ }
+}
+
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetMem.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetMem.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetMem.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetMem.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetMem.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetMem.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetMem.java Tue Apr 9 13:37:34 2013
@@ -16,9 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
-
-import projects.viewgraph.DSGViewGraphs ;
+package org.apache.jena.dsg;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;
@@ -32,7 +30,7 @@ public class TestGraphOverDatasetMem ext
protected DatasetGraph createBaseDSG()
{
DatasetGraph dsg = DatasetGraphFactory.createMem() ;
- return new DSGViewGraphs(dsg, null) ;
+ return dsg ;
}
@Override
Copied: jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetTDB.java (from r1448562, jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetTDB.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetTDB.java?p2=jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetTDB.java&p1=jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetTDB.java&r1=1448562&r2=1466026&rev=1466026&view=diff
==============================================================================
--- jena/Scratch/AFS/Dev/trunk/src/main/java/projects/viewgraph/test/TestGraphOverDatasetTDB.java (original)
+++ jena/Experimental/jena-text/src/test/java/org/apache/jena/dsg/TestGraphOverDatasetTDB.java Tue Apr 9 13:37:34 2013
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package projects.viewgraph.test;
+package org.apache.jena.dsg;
import com.hp.hpl.jena.graph.Graph ;
import com.hp.hpl.jena.graph.Node ;