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 2012/11/04 19:09:19 UTC
svn commit: r1405597 - in /jena/trunk/jena-arq/src/main/java:
com/hp/hpl/jena/sparql/core/assembler/ com/hp/hpl/jena/sparql/modify/
org/openjena/atlas/lib/
Author: andy
Date: Sun Nov 4 18:09:19 2012
New Revision: 1405597
URL: http://svn.apache.org/viewvc?rev=1405597&view=rev
Log:
Add some support code from patch JENA-330_20121016.patch).
Added:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java
jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java?rev=1405597&r1=1405596&r2=1405597&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java Sun Nov 4 18:09:19 2012
@@ -40,6 +40,8 @@ public class DatasetAssemblerVocab
public static final Property pIndex = ResourceFactory.createProperty(NS, "textIndex") ;
+ public static final Property pTransactional = ResourceFactory.createProperty(NS, "transactional") ;
+
public static final Property pContext = ResourceFactory.createProperty(NS, "context") ;
public static final Property pCxtName = ResourceFactory.createProperty(NS, "cxtName") ;
public static final Property pCxtValue = ResourceFactory.createProperty(NS, "cxtValue") ;
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java?rev=1405597&r1=1405596&r2=1405597&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java Sun Nov 4 18:09:19 2012
@@ -18,12 +18,18 @@
package com.hp.hpl.jena.sparql.core.assembler;
+import org.openjena.atlas.logging.Log ;
+
import com.hp.hpl.jena.assembler.Assembler ;
import com.hp.hpl.jena.assembler.Mode ;
import com.hp.hpl.jena.assembler.assemblers.AssemblerBase ;
+import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.query.DatasetFactory ;
import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.expr.NodeValue ;
import com.hp.hpl.jena.sparql.modify.GraphStoreNull ;
+import com.hp.hpl.jena.sparql.modify.GraphStoreNullTransactional ;
public class DatasetNullAssembler extends AssemblerBase implements Assembler
{
@@ -32,6 +38,25 @@ public class DatasetNullAssembler extend
@Override
public Object open(Assembler a, Resource root, Mode mode)
{
- return DatasetFactory.create(new GraphStoreNull()) ;
+ boolean transactional = true;
+
+ if (root.hasProperty(DatasetAssemblerVocab.pTransactional))
+ {
+ Node b = root.getProperty(DatasetAssemblerVocab.pTransactional).getObject().asNode();
+ NodeValue nv = NodeValue.makeNode(b);
+ if (nv.isBoolean())
+ {
+ transactional = nv.getBoolean();
+ }
+ else
+ {
+ Log.warn(DatasetNullAssembler.class,
+ "Failed to recognize value for transactional setting (ignored): " + b);
+ }
+ }
+
+ DatasetGraph dsg = transactional ? new GraphStoreNullTransactional() : new GraphStoreNull();
+
+ return DatasetFactory.create(dsg) ;
}
}
Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java?rev=1405597&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java Sun Nov 4 18:09:19 2012
@@ -0,0 +1,44 @@
+package com.hp.hpl.jena.sparql.modify ;
+
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.sparql.core.Transactional ;
+import com.hp.hpl.jena.sparql.core.TransactionalNull ;
+
+/**
+ * A transactional black hole for Quads, add as many as you want and it will forget them all. Useful for testing.
+ */
+public class GraphStoreNullTransactional extends GraphStoreNull implements Transactional
+{
+ private final Transactional transaction = new TransactionalNull() ;
+
+ @Override
+ public void begin(ReadWrite readWrite)
+ {
+ transaction.begin(readWrite) ;
+ }
+
+ @Override
+ public void commit()
+ {
+ transaction.commit() ;
+ }
+
+ @Override
+ public void abort()
+ {
+ transaction.abort() ;
+ }
+
+ @Override
+ public boolean isInTransaction()
+ {
+ return transaction.isInTransaction() ;
+ }
+
+ @Override
+ public void end()
+ {
+ transaction.end() ;
+ }
+
+}
Added: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java?rev=1405597&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java (added)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java Sun Nov 4 18:09:19 2012
@@ -0,0 +1,38 @@
+/**
+ * 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.openjena.atlas.lib;
+
+import java.util.Collection;
+
+/** Send items to a collection */
+public class SinkToCollection<T> implements Sink<T>
+{
+ private final Collection<T> c ;
+
+ public SinkToCollection(Collection<T> c) { this.c = c ; }
+
+ @Override
+ public void send(T item) { c.add(item); }
+
+ @Override
+ public void flush() {}
+
+ @Override
+ public void close() {}
+}