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/01/19 20:44:49 UTC
svn commit: r1233550 - in /incubator/jena/Jena2/TDB/trunk: src-dev/dev/
src/main/java/com/hp/hpl/jena/tdb/ src/main/java/com/hp/hpl/jena/tdb/solver/
src/main/java/com/hp/hpl/jena/tdb/store/
src/main/java/com/hp/hpl/jena/tdb/transaction/
Author: andy
Date: Thu Jan 19 19:44:48 2012
New Revision: 1233550
URL: http://svn.apache.org/viewvc?rev=1233550&view=rev
Log:
Enable transactional datasets from TDBFactory.
Modified:
incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/solver/QueryEngineTDB.java
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java
Modified: incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java?rev=1233550&r1=1233549&r2=1233550&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java Thu Jan 19 19:44:48 2012
@@ -52,8 +52,8 @@ public class TestTxn extends BaseTest
protected Dataset create()
{
- //DatasetGraph dsg = TDBFactory.createDatasetGraph(DIR) ;
- DatasetGraph dsg = TDBFactoryTxn.XcreateDatasetGraph(Location.mem(DIR)) ;
+ DatasetGraph dsg = TDBFactory.createDatasetGraph() ;
+ //DatasetGraph dsg = TDBFactoryTxn.XcreateDatasetGraph(Location.mem(DIR)) ;
if ( dsg instanceof DatasetGraphTDB )
dsg = new DatasetGraphTransaction((DatasetGraphTDB)dsg) ;
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java?rev=1233550&r1=1233549&r2=1233550&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactory.java Thu Jan 19 19:44:48 2012
@@ -96,7 +96,6 @@ public class TDBFactory
return DatasetFactory.create(TDBMaker._createDatasetGraph()) ;
}
-
private static DatasetGraph _createDatasetGraph(Location location)
{
DatasetGraphTDB dsg = TDBMaker._createDatasetGraph(location) ;
@@ -120,10 +119,20 @@ public class TDBFactory
return asTransactional(dsg) ;
}
+ /** By default, TDBFcatory returns Datasets and DatasetGraphs that can be used in
+ * transactions. To force a return to TDB 0.8.x behaviour of returning
+ * Datasets and DatasetGraphs attached directly to the storage, set this
+ * to false. Warning: it's global.
+ */
+
+ public static boolean MAKE_TRANSACTIONAL_DATASETS = true ;
+
private static DatasetGraph asTransactional(DatasetGraphTDB dsg)
{
- return dsg ;
- //return new DatasetGraphTransaction(dsg) ;
+ if ( MAKE_TRANSACTIONAL_DATASETS )
+ return new DatasetGraphTransaction(dsg) ;
+ else
+ return dsg ;
}
/** Return the location of a dataset if it is backed by TDB, else null */
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/solver/QueryEngineTDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/solver/QueryEngineTDB.java?rev=1233550&r1=1233549&r2=1233550&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/solver/QueryEngineTDB.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/solver/QueryEngineTDB.java Thu Jan 19 19:44:48 2012
@@ -20,6 +20,8 @@ package com.hp.hpl.jena.tdb.solver;
import java.util.Set ;
+import org.openjena.atlas.lib.Lib ;
+
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.query.Query ;
import com.hp.hpl.jena.sparql.algebra.Algebra ;
@@ -38,6 +40,7 @@ import com.hp.hpl.jena.sparql.mgt.Explai
import com.hp.hpl.jena.sparql.util.Context ;
import com.hp.hpl.jena.sparql.util.NodeUtils ;
import com.hp.hpl.jena.tdb.TDB ;
+import com.hp.hpl.jena.tdb.TDBException ;
import com.hp.hpl.jena.tdb.migrate.A2 ;
import com.hp.hpl.jena.tdb.migrate.DynamicDatasets ;
import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
@@ -61,7 +64,7 @@ public class QueryEngineTDB extends Quer
private Binding initialInput ;
// ---- Object
- protected QueryEngineTDB(Op op, DatasetGraph dataset, Binding input, Context context)
+ protected QueryEngineTDB(Op op, DatasetGraphTDB dataset, Binding input, Context context)
{
super(op, dataset, input, context) ;
this.initialInput = input ;
@@ -77,7 +80,7 @@ public class QueryEngineTDB extends Quer
private static final boolean DynamicDatasetByRewrite = false ;
private boolean doingDynamicDatasetBySpecialDataset = false ;
- protected QueryEngineTDB(Query query, DatasetGraph dataset, Binding input, Context cxt)
+ protected QueryEngineTDB(Query query, DatasetGraphTDB dataset, Binding input, Context cxt)
{
super(query, dataset, input, cxt) ;
// [[DynDS]]
@@ -161,6 +164,8 @@ public class QueryEngineTDB extends Quer
private static class QueryEngineFactoryTDB implements QueryEngineFactory
{
+ // If a DatasetGraphTransaction is passed in, we are outside a transaction.
+
private static boolean isHandledByTDB(DatasetGraph dataset)
{
if (dataset instanceof DatasetGraphTDB) return true ;
@@ -168,6 +173,14 @@ public class QueryEngineTDB extends Quer
return false ;
}
+ private DatasetGraphTDB dsgToQuery(DatasetGraph dataset)
+ {
+ if (dataset instanceof DatasetGraphTDB) return (DatasetGraphTDB)dataset ;
+ if (dataset instanceof DatasetGraphTransaction)
+ return ((DatasetGraphTransaction)dataset).getDatasetGraphToQuery() ;
+ throw new TDBException("Internal inconsistency: trying to execute query on unrecognized kind of DatasetGraph: "+Lib.className(dataset)) ;
+ }
+
@Override
public boolean accept(Query query, DatasetGraph dataset, Context context)
{ return isHandledByTDB(dataset) ; }
@@ -177,7 +190,7 @@ public class QueryEngineTDB extends Quer
{
//DatasetGraphTDB ds = (DatasetGraphTDB)dataset ;
dynamicDatasetQE(query, context) ;
- QueryEngineTDB engine = new QueryEngineTDB(query, dataset, input, context) ;
+ QueryEngineTDB engine = new QueryEngineTDB(query, dsgToQuery(dataset), input, context) ;
return engine.getPlan() ;
}
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java?rev=1233550&r1=1233549&r2=1233550&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/DatasetGraphTDB.java Thu Jan 19 19:44:48 2012
@@ -43,7 +43,7 @@ import com.hp.hpl.jena.tdb.sys.Session ;
import com.hp.hpl.jena.tdb.sys.TDBMaker ;
import com.hp.hpl.jena.update.GraphStore ;
-/** TDB Dataset, updateable with SPARQL/Update */
+/** TDB Dataset - directly over the basic storage. */
public class DatasetGraphTDB extends DatasetGraphCaching
implements DatasetGraph, Sync, Closeable, GraphStore, Session
{
@@ -60,8 +60,6 @@ public class DatasetGraphTDB extends Dat
public DatasetGraphTDB(TripleTable tripleTable, QuadTable quadTable, DatasetPrefixesTDB prefixes,
ReorderTransformation transform, StoreConfig config)
{
- // ?? Change to 3 nodetables and add TripleTable/QuadTable/PrefixTable wrappers.
-
this.tripleTable = tripleTable ;
this.quadTable = quadTable ;
this.prefixes = prefixes ;
Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java?rev=1233550&r1=1233549&r2=1233550&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/DatasetGraphTransaction.java Thu Jan 19 19:44:48 2012
@@ -53,14 +53,18 @@ public class DatasetGraphTransaction ext
}
public Location getLocation() { return sConn.getLocation() ; }
+ public DatasetGraphTDB getDatasetGraphToQuery()
+ {
+ return get() ;
+ }
@Override
- protected DatasetGraph get()
+ protected DatasetGraphTDB get()
{
if ( isInTransaction() )
{
if ( dsgTxn == null )
- throw new TDBTransactionException("In a transaction but no translational DatasetGraph") ;
+ throw new TDBTransactionException("In a transaction but no transactional DatasetGraph") ;
return dsgTxn ;
}