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 14:43:12 UTC

svn commit: r1233372 - in /incubator/jena/Jena2/TDB/trunk: src-dev/dev/ src/main/java/com/hp/hpl/jena/tdb/ src/test/java/com/hp/hpl/jena/tdb/ src/test/java/com/hp/hpl/jena/tdb/migrate/ src/test/java/com/hp/hpl/jena/tdb/transaction/

Author: andy
Date: Thu Jan 19 13:43:11 2012
New Revision: 1233372

URL: http://svn.apache.org/viewvc?rev=1233372&view=rev
Log:
Sort out running tests on transactional datasets (partial).

Added:
    incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java
    incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/migrate/AbstractTestTransaction.java
    incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
Modified:
    incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java
    incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactoryTxn.java
    incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/TestTDBFactory.java
    incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java

Added: 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=1233372&view=auto
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java (added)
+++ incubator/jena/Jena2/TDB/trunk/src-dev/dev/TestTxn.java Thu Jan 19 13:43:11 2012
@@ -0,0 +1,133 @@
+/**
+ * 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 dev;
+
+import org.junit.Test ;
+import org.openjena.atlas.junit.BaseTest ;
+
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.query.DatasetFactory ;
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.tdb.DatasetGraphTransaction ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
+import com.hp.hpl.jena.tdb.TDBFactoryTxn ;
+import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
+
+public class TestTxn extends BaseTest
+{
+// static final String DIR = ConfigTest.getTestingDirDB() ; 
+//    
+//    @Before public void before()
+//    {
+//        FileOps.clearDirectory(DIR) ; 
+//    }
+//    
+//    @After public void after()
+//    {
+//        FileOps.clearDirectory(DIR) ; 
+//    }
+//    
+    protected Dataset create()
+    { 
+        DatasetGraph dsg = TDBFactory.createDatasetGraph() ;
+        dsg = TDBFactoryTxn.XcreateDatasetGraph() ;
+        
+        if ( dsg instanceof DatasetGraphTDB )
+            dsg = new DatasetGraphTransaction((DatasetGraphTDB)dsg) ;    
+        return DatasetFactory.create(dsg) ;
+    }
+
+    private static Triple triple1 = SSE.parseTriple("(<s> <p> <o>)") ; 
+    
+    @Test public void factoryTxn1()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.READ) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn2()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.commit() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn3()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.abort() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn4()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.commit() ;
+        assertFalse(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn5()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.abort() ;
+        assertFalse(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+
+    @Test public void factoryTxn10()
+    {
+        Dataset ds1 = create() ;
+        Dataset ds2 = create() ;
+        
+        ds1.begin(ReadWrite.WRITE) ;
+        ds1.getDefaultModel().getGraph().add(triple1) ; 
+        
+        ds2.begin(ReadWrite.READ) ;
+        assertTrue(ds2.getDefaultModel().isEmpty()) ;
+        ds2.commit() ;
+        
+        ds1.commit() ;
+
+        ds2.begin(ReadWrite.READ) ;
+        assertFalse(ds2.getDefaultModel().isEmpty()) ;
+        assertEquals(1, ds2.getDefaultModel().size()) ;
+        ds2.commit() ;
+
+    }
+
+}
+

Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java?rev=1233372&r1=1233371&r2=1233372&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDB.java Thu Jan 19 13:43:11 2012
@@ -144,18 +144,24 @@ public class TDB
     { 
         // Should be: SystemARQ.sync(dataset) ;
         if ( dataset instanceof DatasetGraphTDB )
+        {
             syncObject(dataset) ;
-        else
+            return ;
+        }
+        if ( dataset instanceof DatasetGraphTransaction )
+        {
+            // Can't sync transactional dataset graphs.
+            return ;
+        }
+        
+        // May be a general purpose dataset with TDB objects in it.
+        Iterator<Node> iter = dataset.listGraphNodes() ;
+        iter = Iter.toList(iter).iterator() ;   // Avoid iterator concurrency.
+        for ( ; iter.hasNext() ; )
         {
-            // May be a general purpose dataset with TDB objects in it.
-            Iterator<Node> iter = dataset.listGraphNodes() ;
-            iter = Iter.toList(iter).iterator() ;   // Avoid iterator concurrency.
-            for ( ; iter.hasNext() ; )
-            {
-                Node n = iter.next();
-                Graph g = dataset.getGraph(n) ;
-                sync(g) ;
-            }
+            Node n = iter.next();
+            Graph g = dataset.getGraph(n) ;
+            sync(g) ;
         }
     }
     

Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactoryTxn.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactoryTxn.java?rev=1233372&r1=1233371&r2=1233372&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactoryTxn.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/TDBFactoryTxn.java Thu Jan 19 13:43:11 2012
@@ -26,35 +26,35 @@ import com.hp.hpl.jena.tdb.assembler.Voc
 import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
 
-/** Public factory for creating objects datasets backed by TDB storage which support transactions */
-class TDBFactoryTxn
+/** factory for creating objects datasets backed by TDB storage which support transactions */
+public class TDBFactoryTxn
 {
     // This is TDBFactory with a different maker.??
     
     // Assembler versions
     
     /** Create a Dataset that supports transactions */  
-    public static Dataset createDataset(Location location)
+    public static Dataset XcreateDataset(Location location)
     {
-        return DatasetFactory.create(createDatasetGraph(location)) ;
+        return DatasetFactory.create(XcreateDatasetGraph(location)) ;
     }
 
     /** Create a Dataset that supports transactions */  
-    public static Dataset createDataset(String location)
+    public static Dataset XcreateDataset(String location)
     {
-        return DatasetFactory.create(createDatasetGraph(location)) ;
+        return DatasetFactory.create(XcreateDatasetGraph(location)) ;
     }
     
     /** Create a Dataset that supports transactions but runs in-memory (for creating test cases)*/  
-    public static Dataset createDataset()
+    public static Dataset XcreateDataset()
     {
-        return createDataset(Location.mem()) ;
+        return XcreateDataset(Location.mem()) ;
     }
     
     /** Read the assembler file and create a dataset with transctional capabilities.
      * Assumes the file contains exactly one definition of a TDB dataset.  
      */ 
-    public static Dataset assembleDataset(String assemblerFile)
+    public static Dataset XassembleDataset(String assemblerFile)
     {
         Dataset ds = (Dataset)AssemblerUtils.build(assemblerFile, VocabTDB.tDatasetTDB) ;
         DatasetGraphTDB dsg = (DatasetGraphTDB)(ds.asDatasetGraph()) ;
@@ -79,24 +79,23 @@ class TDBFactoryTxn
     }
 
     /** Create a DatasetGraph that supports transactions */  
-    public static DatasetGraphTransaction createDatasetGraph(String location)
+    public static DatasetGraphTransaction XcreateDatasetGraph(String location)
     {
-        return createDatasetGraph(new Location(location)) ;
+        return XcreateDatasetGraph(new Location(location)) ;
     }
     
     /** Create a Dataset that supports transactions */  
-    public static DatasetGraphTransaction createDatasetGraph(Location location)
+    public static DatasetGraphTransaction XcreateDatasetGraph(Location location)
     {
         return _create(location) ;
     }
     
     /** Create a Dataset that supports transactions but runs in-memory (for creating test cases)*/  
-    public static DatasetGraphTransaction createDatasetGraph()
+    public static DatasetGraphTransaction XcreateDatasetGraph()
     {
-        return createDatasetGraph(Location.mem()) ;
+        return XcreateDatasetGraph(Location.mem()) ;
     }
 
-    // OLD
     private static DatasetGraphTransaction _create(Location location)
     {
         // No need to cache StoreConnection does all that.
@@ -108,32 +107,5 @@ class TDBFactoryTxn
         // No need to cache StoreConnection does all that.
         return new DatasetGraphTransaction(dsg) ;
     }
-    
-//    // NEW
-//    static class TDBMakerTxn implements DatasetGraphMakerTDB
-//    {
-//
-//        @Override
-//        public DatasetGraphTDB createDatasetGraph()
-//        {
-//            //return new DatasetGraphTransaction(Location.mem()) ;
-//            return null ;
-//        }
-//
-//        @Override
-//        public DatasetGraphTDB createDatasetGraph(Location location)
-//        {
-//            return null ;
-//        }
-//
-//        @Override
-//        public void releaseDatasetGraph(DatasetGraphTDB dataset)
-//        {}
-//
-//        @Override
-//        public void releaseLocation(Location location)
-//        {}
-//    }
-
 }
 

Modified: incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/TestTDBFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/TestTDBFactory.java?rev=1233372&r1=1233371&r2=1233372&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/TestTDBFactory.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/TestTDBFactory.java Thu Jan 19 13:43:11 2012
@@ -20,18 +20,14 @@ package com.hp.hpl.jena.tdb;
 
 import org.junit.AfterClass ;
 import org.junit.BeforeClass ;
-import org.junit.Test;
+import org.junit.Test ;
 import org.openjena.atlas.junit.BaseTest ;
 import org.openjena.atlas.lib.FileOps ;
 
-import com.hp.hpl.jena.graph.Triple ;
-import com.hp.hpl.jena.query.Dataset ;
-import com.hp.hpl.jena.query.ReadWrite ;
-import com.hp.hpl.jena.sparql.sse.SSE ;
-import com.hp.hpl.jena.tdb.base.file.Location;
-import com.hp.hpl.jena.tdb.store.DatasetGraphTDB;
-import com.hp.hpl.jena.tdb.sys.DatasetGraphMakerTDB;
-import com.hp.hpl.jena.tdb.sys.TDBMaker;
+import com.hp.hpl.jena.tdb.base.file.Location ;
+import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
+import com.hp.hpl.jena.tdb.sys.DatasetGraphMakerTDB ;
+import com.hp.hpl.jena.tdb.sys.TDBMaker ;
 
 public class TestTDBFactory extends BaseTest
 {
@@ -74,35 +70,4 @@ public class TestTDBFactory extends Base
         assertNotSame(dg3, dg2) ;
         assertSame(dg3, dg0) ;
     }
-
-    // StoreConnection no longer applies caching to in-memory datasets.  
-//    @Test public void factoryTxn1()
-//    {
-//        DatasetGraphTransaction dg1 = TDBFactoryTxn.createDatasetGraph(Location.mem()) ;
-//        DatasetGraphTransaction dg2 = TDBFactoryTxn.createDatasetGraph(Location.mem()) ;
-//        assertSame(dg1.get(), dg2.get()) ;
-//    }
-    
-    private static Triple triple1 = SSE.parseTriple("(<s> <p> <o>)") ;  
-    
-    @Test public void factoryTxn2()
-    {
-        Dataset ds1 = TDBFactoryTxn.createDataset(DIR) ;
-        Dataset ds2 = TDBFactoryTxn.createDataset(DIR) ;
-        
-        ds1.begin(ReadWrite.WRITE) ;
-        ds1.getDefaultModel().getGraph().add(triple1) ; 
-        
-        ds2.begin(ReadWrite.READ) ;
-        assertTrue(ds2.getDefaultModel().isEmpty()) ;
-        ds2.commit() ;
-        
-        ds1.commit() ;
-
-        ds2.begin(ReadWrite.READ) ;
-        assertFalse(ds2.getDefaultModel().isEmpty()) ;
-        assertEquals(1, ds2.getDefaultModel().size()) ;
-        ds2.commit() ;
-
-    }
 }

Added: incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/migrate/AbstractTestTransaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/migrate/AbstractTestTransaction.java?rev=1233372&view=auto
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/migrate/AbstractTestTransaction.java (added)
+++ incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/migrate/AbstractTestTransaction.java Thu Jan 19 13:43:11 2012
@@ -0,0 +1,114 @@
+/**
+ * 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 com.hp.hpl.jena.tdb.migrate;
+
+import org.junit.Test ;
+import org.openjena.atlas.junit.BaseTest ;
+
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+
+public abstract class AbstractTestTransaction extends BaseTest
+{
+    //MIGRATE
+    protected abstract Dataset create() ;
+    
+    private static Triple triple1 = SSE.parseTriple("(<s> <p> <o>)") ;  
+
+    @Test public void factoryTxn0()
+    {
+        Dataset ds = create() ;
+        assertTrue(ds.supportsTransactions()) ;
+    }
+    
+    @Test public void factoryTxn1()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.READ) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn2()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.commit() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn3()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.abort() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn4()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.commit() ;
+        assertFalse(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+    @Test public void factoryTxn5()
+    {
+        Dataset ds = create() ;
+        ds.begin(ReadWrite.WRITE) ;
+        assertTrue(ds.isInTransaction()) ; 
+        ds.abort() ;
+        assertFalse(ds.isInTransaction()) ; 
+        ds.end() ;
+        assertFalse(ds.isInTransaction()) ; 
+    }
+
+
+    @Test public void factoryTxn10()
+    {
+        Dataset ds1 = create() ;
+        Dataset ds2 = create() ;
+        
+        ds1.begin(ReadWrite.WRITE) ;
+        ds1.getDefaultModel().getGraph().add(triple1) ; 
+        
+        ds2.begin(ReadWrite.READ) ;
+        assertTrue(ds2.getDefaultModel().isEmpty()) ;
+        ds2.commit() ;
+        
+        ds1.commit() ;
+
+        ds2.begin(ReadWrite.READ) ;
+        assertFalse(ds2.getDefaultModel().isEmpty()) ;
+        assertEquals(1, ds2.getDefaultModel().size()) ;
+        ds2.commit() ;
+
+    }
+
+}
+

Modified: incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java?rev=1233372&r1=1233371&r2=1233372&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TS_Transaction.java Thu Jan 19 13:43:11 2012
@@ -36,6 +36,7 @@ import org.junit.runners.Suite ;
     , TestTransSequentialMem.class
     , TestTransSequentialDisk.class
     , TestTransRestart.class
+    //, TestTransactionTDB.class
 })
 public class TS_Transaction
 {

Added: incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java?rev=1233372&view=auto
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java (added)
+++ incubator/jena/Jena2/TDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransactionTDB.java Thu Jan 19 13:43:11 2012
@@ -0,0 +1,52 @@
+/**
+ * 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 com.hp.hpl.jena.tdb.transaction;
+
+import org.junit.After ;
+import org.junit.Before ;
+import org.openjena.atlas.lib.FileOps ;
+
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.tdb.ConfigTest ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
+import com.hp.hpl.jena.tdb.TDBFactoryTxn ;
+import com.hp.hpl.jena.tdb.migrate.AbstractTestTransaction ;
+
+public class TestTransactionTDB extends AbstractTestTransaction
+{
+    static final String DIR = ConfigTest.getTestingDirDB() ; 
+    
+    @Before public void before()
+    {
+        FileOps.clearDirectory(DIR) ; 
+    }
+    
+    @After public void after()
+    {
+        FileOps.clearDirectory(DIR) ; 
+    }
+    
+    @Override
+    protected Dataset create()
+    { 
+        //return TDBFactory.createDataset(DIR) ;
+        return TDBFactoryTxn.XcreateDataset(DIR) ;
+    }
+}
+