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 2016/05/14 14:03:01 UTC
[02/42] jena git commit: Merge commit 'refs/pull/143/head' of
github.com:apache/jena
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/test/resources/spatial-config.ttl
----------------------------------------------------------------------
diff --cc jena-spatial/src/test/resources/spatial-config.ttl
index 0c90874,0c90874..258c965
--- a/jena-spatial/src/test/resources/spatial-config.ttl
+++ b/jena-spatial/src/test/resources/spatial-config.ttl
@@@ -1,54 -1,54 +1,54 @@@
--## Example of a TDB dataset and spatial index
--
--@prefix : <http://localhost/jena_example/#> .
--@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
--@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
--@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
--@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
--@prefix spatial: <http://jena.apache.org/spatial#> .
--
--# TDB
--[] ja:loadClass "org.apache.jena.tdb.TDB" .
--tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
--tdb:GraphTDB rdfs:subClassOf ja:Model .
--
--# Spatial
--[] ja:loadClass "org.apache.jena.query.spatial.SpatialQuery" .
--spatial:SpatialtDataset rdfs:subClassOf ja:RDFDataset .
--#spatial:SpatialIndexSolr rdfs:subClassOf spatial:SpatialIndex .
--spatial:SpatialIndexLucene rdfs:subClassOf spatial:SpatialIndex .
--
--## ---------------------------------------------------------------
--## This URI must be fixed - it's used to assemble the spatial dataset.
--
--:spatial_dataset rdf:type spatial:SpatialDataset ;
-- spatial:dataset <#dataset> ;
-- ##spaital:index <#indexSolr> ;
-- spatial:index <#indexLucene> ;
-- .
--
--<#dataset> rdf:type tdb:DatasetTDB ;
-- tdb:location "--mem--" ;
-- tdb:unionDefaultGraph true ;
-- .
--
--<#indexLucene> a spatial:SpatialIndexLucene ;
-- #spatial:directory <file:Lucene> ;
-- spatial:directory "mem" ;
-- spatial:definition <#definition> ;
-- .
--
--<#definition> a spatial:EntityDefinition ;
-- spatial:entityField "uri" ;
-- spatial:geoField "geo" ;
-- # custom geo predicates for 1) latitude/longitude
-- spatial:hasSpatialPredicatePairs (
-- [ spatial:latitude :latitude_1 ; spatial:longitude :longitude_1 ]
-- [ spatial:latitude :latitude_2 ; spatial:longitude :longitude_2 ]
-- ) ;
-- # custom geo predicates for 2) Well Known Text Literal
-- spatial:hasWKTPredicates (:wkt_1 :wkt_2) ;
-- # custom SpatialContextFactory for 2) Well Known Text Literal
-- spatial:spatialContextFactory
-- "com.spatial4j.core.context.jts.JtsSpatialContextFactory"
-- .
++## Example of a TDB dataset and spatial index
++
++@prefix : <http://localhost/jena_example/#> .
++@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
++@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
++@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
++@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
++@prefix spatial: <http://jena.apache.org/spatial#> .
++
++# TDB
++[] ja:loadClass "org.apache.jena.tdb.TDB" .
++tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
++tdb:GraphTDB rdfs:subClassOf ja:Model .
++
++# Spatial
++[] ja:loadClass "org.apache.jena.query.spatial.SpatialQuery" .
++spatial:SpatialtDataset rdfs:subClassOf ja:RDFDataset .
++#spatial:SpatialIndexSolr rdfs:subClassOf spatial:SpatialIndex .
++spatial:SpatialIndexLucene rdfs:subClassOf spatial:SpatialIndex .
++
++## ---------------------------------------------------------------
++## This URI must be fixed - it's used to assemble the spatial dataset.
++
++:spatial_dataset rdf:type spatial:SpatialDataset ;
++ spatial:dataset <#dataset> ;
++ ##spaital:index <#indexSolr> ;
++ spatial:index <#indexLucene> ;
++ .
++
++<#dataset> rdf:type tdb:DatasetTDB ;
++ tdb:location "--mem--" ;
++ tdb:unionDefaultGraph true ;
++ .
++
++<#indexLucene> a spatial:SpatialIndexLucene ;
++ #spatial:directory <file:Lucene> ;
++ spatial:directory "mem" ;
++ spatial:definition <#definition> ;
++ .
++
++<#definition> a spatial:EntityDefinition ;
++ spatial:entityField "uri" ;
++ spatial:geoField "geo" ;
++ # custom geo predicates for 1) latitude/longitude
++ spatial:hasSpatialPredicatePairs (
++ [ spatial:latitude :latitude_1 ; spatial:longitude :longitude_1 ]
++ [ spatial:latitude :latitude_2 ; spatial:longitude :longitude_2 ]
++ ) ;
++ # custom geo predicates for 2) Well Known Text Literal
++ spatial:hasWKTPredicates (:wkt_1 :wkt_2) ;
++ # custom SpatialContextFactory for 2) Well Known Text Literal
++ spatial:spatialContextFactory
++ "com.spatial4j.core.context.jts.JtsSpatialContextFactory"
++ .
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-spatial/src/test/resources/spatial-solr-config.ttl
----------------------------------------------------------------------
diff --cc jena-spatial/src/test/resources/spatial-solr-config.ttl
index dfa0a33,dfa0a33..b8f16ed
--- a/jena-spatial/src/test/resources/spatial-solr-config.ttl
+++ b/jena-spatial/src/test/resources/spatial-solr-config.ttl
@@@ -1,51 -1,51 +1,51 @@@
-- ## Example of a TDB dataset and spatial index
--
--@prefix : <http://localhost/jena_example/#> .
--@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
--@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
--@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
--@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
--@prefix spatial: <http://jena.apache.org/spatial#> .
--
--# TDB
--[] ja:loadClass "org.apache.jena.tdb.TDB" .
--tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
--tdb:GraphTDB rdfs:subClassOf ja:Model .
--
--# Spatial
--[] ja:loadClass "org.apache.jena.query.spatial.SpatialQuery" .
--spatial:SpatialDataset rdfs:subClassOf ja:RDFDataset .
--spatial:SpatialIndexSolr rdfs:subClassOf spatial:SpatialIndex .
--
--## ---------------------------------------------------------------
--## This URI must be fixed - it's used to assemble the spatial dataset.
--
--:spatial_dataset rdf:type spatial:SpatialDataset ;
-- spatial:dataset <#dataset> ;
-- spatial:index <#indexSolr> ;
-- .
--
--<#dataset> rdf:type tdb:DatasetTDB ;
-- tdb:location "--mem--" ;
-- .
--
--<#indexSolr> a spatial:SpatialIndexSolr ;
-- spatial:server <embedded:SolrARQCollection> ;
-- spatial:solrHome <file:SolrHome> ;
-- spatial:definition <#definition> ;
-- .
--
--<#definition> a spatial:EntityDefinition ;
-- spatial:entityField "uri" ;
-- spatial:geoField "geo" ;
-- # custom geo predicates for 1) latitude/longitude
-- spatial:hasSpatialPredicatePairs (
-- [ spatial:latitude :latitude_1 ; spatial:longitude :longitude_1 ]
-- [ spatial:latitude :latitude_2 ; spatial:longitude :longitude_2 ]
-- ) ;
-- # custom geo predicates for 2) Well Known Text Literal
-- spatial:hasWKTPredicates (:wkt_1 :wkt_2) ;
-- # custom SpatialContextFactory for 2) Well Known Text Literal
-- spatial:spatialContextFactory
-- "com.spatial4j.core.context.jts.JtsSpatialContextFactory"
++ ## Example of a TDB dataset and spatial index
++
++@prefix : <http://localhost/jena_example/#> .
++@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
++@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
++@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
++@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
++@prefix spatial: <http://jena.apache.org/spatial#> .
++
++# TDB
++[] ja:loadClass "org.apache.jena.tdb.TDB" .
++tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
++tdb:GraphTDB rdfs:subClassOf ja:Model .
++
++# Spatial
++[] ja:loadClass "org.apache.jena.query.spatial.SpatialQuery" .
++spatial:SpatialDataset rdfs:subClassOf ja:RDFDataset .
++spatial:SpatialIndexSolr rdfs:subClassOf spatial:SpatialIndex .
++
++## ---------------------------------------------------------------
++## This URI must be fixed - it's used to assemble the spatial dataset.
++
++:spatial_dataset rdf:type spatial:SpatialDataset ;
++ spatial:dataset <#dataset> ;
++ spatial:index <#indexSolr> ;
++ .
++
++<#dataset> rdf:type tdb:DatasetTDB ;
++ tdb:location "--mem--" ;
++ .
++
++<#indexSolr> a spatial:SpatialIndexSolr ;
++ spatial:server <embedded:SolrARQCollection> ;
++ spatial:solrHome <file:SolrHome> ;
++ spatial:definition <#definition> ;
++ .
++
++<#definition> a spatial:EntityDefinition ;
++ spatial:entityField "uri" ;
++ spatial:geoField "geo" ;
++ # custom geo predicates for 1) latitude/longitude
++ spatial:hasSpatialPredicatePairs (
++ [ spatial:latitude :latitude_1 ; spatial:longitude :longitude_1 ]
++ [ spatial:latitude :latitude_2 ; spatial:longitude :longitude_2 ]
++ ) ;
++ # custom geo predicates for 2) Well Known Text Literal
++ spatial:hasWKTPredicates (:wkt_1 :wkt_2) ;
++ # custom SpatialContextFactory for 2) Well Known Text Literal
++ spatial:spatialContextFactory
++ "com.spatial4j.core.context.jts.JtsSpatialContextFactory"
.
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src-examples/tdb/examples/ExTDB1.java
----------------------------------------------------------------------
diff --cc jena-tdb/src-examples/tdb/examples/ExTDB1.java
index 8d5539d,8d5539d..2ca34d3
--- a/jena-tdb/src-examples/tdb/examples/ExTDB1.java
+++ b/jena-tdb/src-examples/tdb/examples/ExTDB1.java
@@@ -1,51 -1,51 +1,51 @@@
--/*
-- * 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 tdb.examples;
--
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.rdf.model.Model;
--
--import org.apache.jena.tdb.TDBFactory;
--
--/** Example of creating a TDB-backed model.
-- * The preferred way is to create a dataset then get the mode required from the dataset.
-- * The dataset can be used for SPARQL query and update
-- * but the Model (or Graph) can also be used.
-- *
-- * All the Jena APIs work on the model.
-- *
-- * Calling TDBFactory is the only place TDB-specific code is needed.
-- */
--
--public class ExTDB1
--{
-- public static void main(String... argv)
-- {
-- // Direct way: Make a TDB-back Jena model in the named directory.
-- String directory = "MyDatabases/DB1" ;
-- Dataset ds = TDBFactory.createDataset(directory) ;
-- Model model = ds.getDefaultModel() ;
--
-- // ... do work ...
--
-- // Close the dataset.
-- ds.close();
--
-- }
--}
++/*
++ * 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 tdb.examples;
++
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.rdf.model.Model;
++
++import org.apache.jena.tdb.TDBFactory;
++
++/** Example of creating a TDB-backed model.
++ * The preferred way is to create a dataset then get the mode required from the dataset.
++ * The dataset can be used for SPARQL query and update
++ * but the Model (or Graph) can also be used.
++ *
++ * All the Jena APIs work on the model.
++ *
++ * Calling TDBFactory is the only place TDB-specific code is needed.
++ */
++
++public class ExTDB1
++{
++ public static void main(String... argv)
++ {
++ // Direct way: Make a TDB-back Jena model in the named directory.
++ String directory = "MyDatabases/DB1" ;
++ Dataset ds = TDBFactory.createDataset(directory) ;
++ Model model = ds.getDefaultModel() ;
++
++ // ... do work ...
++
++ // Close the dataset.
++ ds.close();
++
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src-examples/tdb/examples/ExTDB2.java
----------------------------------------------------------------------
diff --cc jena-tdb/src-examples/tdb/examples/ExTDB2.java
index 3d7e825,3d7e825..9548ccf
--- a/jena-tdb/src-examples/tdb/examples/ExTDB2.java
+++ b/jena-tdb/src-examples/tdb/examples/ExTDB2.java
@@@ -1,43 -1,43 +1,43 @@@
--/*
-- * 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 tdb.examples;
--
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.tdb.TDBFactory ;
--
--/**
-- * Using an assembler description (see wiki for details of the assembler format for TDB)
-- * This way, you can change the model being used without changing the code.
-- * The assembler file is a configuration file.
-- * The same assembler description will work as part of a Joseki configuration file.
-- */
--
--public class ExTDB2
--{
-- public static void main(String... argv)
-- {
-- String assemblerFile = "Store/tdb-assembler.ttl" ;
--
-- Dataset ds = TDBFactory.assembleDataset(assemblerFile) ;
--
-- // ... do work ...
--
-- ds.close() ;
-- }
--}
++/*
++ * 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 tdb.examples;
++
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.tdb.TDBFactory ;
++
++/**
++ * Using an assembler description (see wiki for details of the assembler format for TDB)
++ * This way, you can change the model being used without changing the code.
++ * The assembler file is a configuration file.
++ * The same assembler description will work as part of a Joseki configuration file.
++ */
++
++public class ExTDB2
++{
++ public static void main(String... argv)
++ {
++ String assemblerFile = "Store/tdb-assembler.ttl" ;
++
++ Dataset ds = TDBFactory.assembleDataset(assemblerFile) ;
++
++ // ... do work ...
++
++ ds.close() ;
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src-examples/tdb/examples/ExTDB3.java
----------------------------------------------------------------------
diff --cc jena-tdb/src-examples/tdb/examples/ExTDB3.java
index 8d74c96,8d74c96..43c6173
--- a/jena-tdb/src-examples/tdb/examples/ExTDB3.java
+++ b/jena-tdb/src-examples/tdb/examples/ExTDB3.java
@@@ -1,66 -1,66 +1,66 @@@
--/*
-- * 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 tdb.examples;
--
--import org.apache.jena.riot.RDFDataMgr ;
--
--import org.apache.jena.assembler.Assembler ;
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.rdf.model.Model ;
--import org.apache.jena.rdf.model.Resource ;
--import org.apache.jena.shared.JenaException ;
--import org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab ;
--import org.apache.jena.sparql.util.TypeNotUniqueException ;
--import org.apache.jena.sparql.util.graph.GraphUtils ;
--import org.apache.jena.tdb.assembler.VocabTDB ;
--
--/**
-- * Examples of finding an assembler for a TDB model in a larger collection
-- * of descriptions in a single file.
-- */
--public class ExTDB3
--{
-- public static void main(String... argv)
-- {
-- String assemblerFile = "Store/tdb-assembler.ttl" ;
--
-- // Find a particular description in the file where there are several:
-- Model spec = RDFDataMgr.loadModel(assemblerFile) ;
--
-- // Find the right starting point for the description in some way.
-- Resource root = null ;
--
-- if ( false )
-- // If you know the Resource URI:
-- root = spec.createResource("http://example/myChoiceOfURI" );
-- else
-- {
-- // Alternatively, look for the a single resource of the right type.
-- try {
-- // Find the required description - the file can contain descriptions of many different types.
-- root = GraphUtils.findRootByType(spec, VocabTDB.tDatasetTDB) ;
-- if ( root == null )
-- throw new JenaException("Failed to find a suitable root") ;
-- } catch (TypeNotUniqueException ex)
-- { throw new JenaException("Multiple types for: "+DatasetAssemblerVocab.tDataset) ; }
-- }
--
-- Dataset ds = (Dataset)Assembler.general.open(root) ;
-- }
--}
++/*
++ * 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 tdb.examples;
++
++import org.apache.jena.riot.RDFDataMgr ;
++
++import org.apache.jena.assembler.Assembler ;
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.rdf.model.Model ;
++import org.apache.jena.rdf.model.Resource ;
++import org.apache.jena.shared.JenaException ;
++import org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab ;
++import org.apache.jena.sparql.util.TypeNotUniqueException ;
++import org.apache.jena.sparql.util.graph.GraphUtils ;
++import org.apache.jena.tdb.assembler.VocabTDB ;
++
++/**
++ * Examples of finding an assembler for a TDB model in a larger collection
++ * of descriptions in a single file.
++ */
++public class ExTDB3
++{
++ public static void main(String... argv)
++ {
++ String assemblerFile = "Store/tdb-assembler.ttl" ;
++
++ // Find a particular description in the file where there are several:
++ Model spec = RDFDataMgr.loadModel(assemblerFile) ;
++
++ // Find the right starting point for the description in some way.
++ Resource root = null ;
++
++ if ( false )
++ // If you know the Resource URI:
++ root = spec.createResource("http://example/myChoiceOfURI" );
++ else
++ {
++ // Alternatively, look for the a single resource of the right type.
++ try {
++ // Find the required description - the file can contain descriptions of many different types.
++ root = GraphUtils.findRootByType(spec, VocabTDB.tDatasetTDB) ;
++ if ( root == null )
++ throw new JenaException("Failed to find a suitable root") ;
++ } catch (TypeNotUniqueException ex)
++ { throw new JenaException("Multiple types for: "+DatasetAssemblerVocab.tDataset) ; }
++ }
++
++ Dataset ds = (Dataset)Assembler.general.open(root) ;
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src-examples/tdb/examples/ExTDB4.java
----------------------------------------------------------------------
diff --cc jena-tdb/src-examples/tdb/examples/ExTDB4.java
index 4b52b86,4b52b86..bb9ea1a
--- a/jena-tdb/src-examples/tdb/examples/ExTDB4.java
+++ b/jena-tdb/src-examples/tdb/examples/ExTDB4.java
@@@ -1,60 -1,60 +1,60 @@@
--/*
-- * 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 tdb.examples;
--
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.query.Query ;
--import org.apache.jena.query.QueryExecution ;
--import org.apache.jena.query.QueryExecutionFactory ;
--import org.apache.jena.query.QueryFactory ;
--import org.apache.jena.query.ResultSet ;
--import org.apache.jena.query.ResultSetFormatter ;
--import org.apache.jena.tdb.TDBFactory ;
--
--/** Example of creating a TDB-backed model.
-- * The preferred way is to create a dataset then get the mode required from the dataset.
-- * The dataset can be used for SPARQL query and update
-- * but the Model (or Graph) can also be used.
-- *
-- * All the Jena APIs work on the model.
-- *
-- * Calling TDBFactory is the only place TDB-specific code is needed.
-- */
--
--public class ExTDB4
--{
-- public static void main(String... argv)
-- {
-- // Direct way: Make a TDB-back Jena model in the named directory.
-- String directory = "MyDatabases/DB1" ;
-- Dataset dataset = TDBFactory.createDataset(directory) ;
--
-- // Potentially expensive query.
-- String sparqlQueryString = "SELECT (count(*) AS ?count) { ?s ?p ?o }" ;
-- // See http://incubator.apache.org/jena/documentation/query/app_api.html
--
-- Query query = QueryFactory.create(sparqlQueryString) ;
-- QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
-- ResultSet results = qexec.execSelect() ;
-- ResultSetFormatter.out(results) ;
-- qexec.close() ;
--
-- dataset.close();
-- }
--}
++/*
++ * 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 tdb.examples;
++
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.query.Query ;
++import org.apache.jena.query.QueryExecution ;
++import org.apache.jena.query.QueryExecutionFactory ;
++import org.apache.jena.query.QueryFactory ;
++import org.apache.jena.query.ResultSet ;
++import org.apache.jena.query.ResultSetFormatter ;
++import org.apache.jena.tdb.TDBFactory ;
++
++/** Example of creating a TDB-backed model.
++ * The preferred way is to create a dataset then get the mode required from the dataset.
++ * The dataset can be used for SPARQL query and update
++ * but the Model (or Graph) can also be used.
++ *
++ * All the Jena APIs work on the model.
++ *
++ * Calling TDBFactory is the only place TDB-specific code is needed.
++ */
++
++public class ExTDB4
++{
++ public static void main(String... argv)
++ {
++ // Direct way: Make a TDB-back Jena model in the named directory.
++ String directory = "MyDatabases/DB1" ;
++ Dataset dataset = TDBFactory.createDataset(directory) ;
++
++ // Potentially expensive query.
++ String sparqlQueryString = "SELECT (count(*) AS ?count) { ?s ?p ?o }" ;
++ // See http://incubator.apache.org/jena/documentation/query/app_api.html
++
++ Query query = QueryFactory.create(sparqlQueryString) ;
++ QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
++ ResultSet results = qexec.execSelect() ;
++ ResultSetFormatter.out(results) ;
++ qexec.close() ;
++
++ dataset.close();
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src-examples/tdb/examples/ExTDB5.java
----------------------------------------------------------------------
diff --cc jena-tdb/src-examples/tdb/examples/ExTDB5.java
index 255440e,255440e..92517d5
--- a/jena-tdb/src-examples/tdb/examples/ExTDB5.java
+++ b/jena-tdb/src-examples/tdb/examples/ExTDB5.java
@@@ -1,70 -1,70 +1,70 @@@
--/*
-- * 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 tdb.examples;
--
--import org.apache.jena.query.Dataset ;
--import org.apache.jena.query.Query ;
--import org.apache.jena.query.QueryExecution ;
--import org.apache.jena.query.QueryExecutionFactory ;
--import org.apache.jena.query.QueryFactory ;
--import org.apache.jena.query.QuerySolution ;
--import org.apache.jena.query.ResultSet ;
--import org.apache.jena.tdb.TDBFactory ;
--
--/** Example of creating a TDB-backed model.
-- * The preferred way is to create a dataset then get the mode required from the dataset.
-- * The dataset can be used for SPARQL query and update
-- * but the Model (or Graph) can also be used.
-- *
-- * All the Jena APIs work on the model.
-- *
-- * Calling TDBFactory is the only place TDB-specific code is needed.
-- *
-- * See also ExTDB_Txn1 for use with transactions.
-- */
--
--public class ExTDB5
--{
-- public static void main(String... argv)
-- {
-- // Direct way: Make a TDB-back Jena model in the named directory.
-- String directory = "MyDatabases/DB1" ;
-- Dataset dataset = TDBFactory.createDataset(directory) ;
--
-- // Potentially expensive query.
-- String sparqlQueryString = "SELECT (count(*) AS ?count) { ?s ?p ?o }" ;
-- // See http://incubator.apache.org/jena/documentation/query/app_api.html
--
-- Query query = QueryFactory.create(sparqlQueryString) ;
-- QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
-- try {
-- ResultSet results = qexec.execSelect() ;
-- for ( ; results.hasNext() ; )
-- {
-- QuerySolution soln = results.nextSolution() ;
-- int count = soln.getLiteral("count").getInt() ;
-- System.out.println("count = "+count) ;
-- }
-- } finally { qexec.close() ; }
--
-- // Close the dataset.
-- dataset.close();
--
-- }
--}
++/*
++ * 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 tdb.examples;
++
++import org.apache.jena.query.Dataset ;
++import org.apache.jena.query.Query ;
++import org.apache.jena.query.QueryExecution ;
++import org.apache.jena.query.QueryExecutionFactory ;
++import org.apache.jena.query.QueryFactory ;
++import org.apache.jena.query.QuerySolution ;
++import org.apache.jena.query.ResultSet ;
++import org.apache.jena.tdb.TDBFactory ;
++
++/** Example of creating a TDB-backed model.
++ * The preferred way is to create a dataset then get the mode required from the dataset.
++ * The dataset can be used for SPARQL query and update
++ * but the Model (or Graph) can also be used.
++ *
++ * All the Jena APIs work on the model.
++ *
++ * Calling TDBFactory is the only place TDB-specific code is needed.
++ *
++ * See also ExTDB_Txn1 for use with transactions.
++ */
++
++public class ExTDB5
++{
++ public static void main(String... argv)
++ {
++ // Direct way: Make a TDB-back Jena model in the named directory.
++ String directory = "MyDatabases/DB1" ;
++ Dataset dataset = TDBFactory.createDataset(directory) ;
++
++ // Potentially expensive query.
++ String sparqlQueryString = "SELECT (count(*) AS ?count) { ?s ?p ?o }" ;
++ // See http://incubator.apache.org/jena/documentation/query/app_api.html
++
++ Query query = QueryFactory.create(sparqlQueryString) ;
++ QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
++ try {
++ ResultSet results = qexec.execSelect() ;
++ for ( ; results.hasNext() ; )
++ {
++ QuerySolution soln = results.nextSolution() ;
++ int count = soln.getLiteral("count").getInt() ;
++ System.out.println("count = "+count) ;
++ }
++ } finally { qexec.close() ; }
++
++ // Close the dataset.
++ dataset.close();
++
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocator.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocator.java
index 7a12b69,7a12b69..40cf23d
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocator.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocator.java
@@@ -1,43 -1,43 +1,43 @@@
--/*
-- * 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.tdb.base.file;
--
--import java.nio.ByteBuffer ;
--
--import org.apache.jena.atlas.lib.Closeable ;
--
--/**
-- * An allocator for retrieving ByteBuffers of a given size.
-- */
--public interface BufferAllocator extends Closeable
--{
-- /**
-- * Allocate and return a ByteBuffer of the given size
-- * @param capacity the desired size of the ByteBuffer
-- * @return a ByteBuffer with the capacity set to the desired size
-- */
-- public ByteBuffer allocate(int capacity);
--
-- /**
-- * Call this method when you are finished with all of the ByteBuffers
-- * retrieved from allocate. The BufferAllocator is then free to reuse
-- * memory that was previously handed out.
-- */
-- public void clear();
--}
++/*
++ * 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.tdb.base.file;
++
++import java.nio.ByteBuffer ;
++
++import org.apache.jena.atlas.lib.Closeable ;
++
++/**
++ * An allocator for retrieving ByteBuffers of a given size.
++ */
++public interface BufferAllocator extends Closeable
++{
++ /**
++ * Allocate and return a ByteBuffer of the given size
++ * @param capacity the desired size of the ByteBuffer
++ * @return a ByteBuffer with the capacity set to the desired size
++ */
++ public ByteBuffer allocate(int capacity);
++
++ /**
++ * Call this method when you are finished with all of the ByteBuffers
++ * retrieved from allocate. The BufferAllocator is then free to reuse
++ * memory that was previously handed out.
++ */
++ public void clear();
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorDirect.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorDirect.java
index 667e5c8,667e5c8..c51e1a8
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorDirect.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorDirect.java
@@@ -1,46 -1,46 +1,46 @@@
--/*
-- * 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.tdb.base.file;
--
--import java.nio.ByteBuffer ;
--
--/**
-- * Delegates to {@link ByteBuffer#allocateDirect(int)}.
-- */
--public class BufferAllocatorDirect implements BufferAllocator
--{
-- @Override
-- public ByteBuffer allocate(int capacity)
-- {
-- return ByteBuffer.allocateDirect(capacity);
-- }
--
-- @Override
-- public void clear()
-- {
-- // Do nothing
-- }
--
-- @Override
-- public void close()
-- {
-- // Do nothing
-- }
--
--}
++/*
++ * 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.tdb.base.file;
++
++import java.nio.ByteBuffer ;
++
++/**
++ * Delegates to {@link ByteBuffer#allocateDirect(int)}.
++ */
++public class BufferAllocatorDirect implements BufferAllocator
++{
++ @Override
++ public ByteBuffer allocate(int capacity)
++ {
++ return ByteBuffer.allocateDirect(capacity);
++ }
++
++ @Override
++ public void clear()
++ {
++ // Do nothing
++ }
++
++ @Override
++ public void close()
++ {
++ // Do nothing
++ }
++
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMapped.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMapped.java
index 4e20d3c,4e20d3c..4a51f84
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMapped.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMapped.java
@@@ -1,145 -1,145 +1,145 @@@
--/*
-- * 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.tdb.base.file;
--
--import java.io.File ;
--import java.io.IOException ;
--import java.nio.ByteBuffer ;
--import java.nio.MappedByteBuffer ;
--import java.nio.channels.FileChannel.MapMode ;
--import java.util.ArrayList ;
--import java.util.List ;
--import java.util.UUID ;
--
--import org.apache.jena.tdb.sys.SystemTDB ;
--
--/**
-- * ByteBuffer access to a temporary file, using memory mapped I/O. The file will
-- * grow in chunks as necessary by the SystemTDB.SegmentSize.
-- * <p/>
-- * This class is not thread-safe.
-- */
--final public class BufferAllocatorMapped implements BufferAllocator
--{
-- private final List<MappedByteBuffer> segments;
--
-- private final int segmentSize = SystemTDB.SegmentSize;
-- private final int blockSize;
-- private final int blocksPerSegment;
--
-- private final File tmpFile;
-- private FileBase file;
-- private int seq = 0;
--
-- public BufferAllocatorMapped(int blockSize)
-- {
-- if (blockSize == 0 || blockSize > segmentSize)
-- throw new IllegalArgumentException("Illegal block size: " + blockSize);
-- if (segmentSize % blockSize != 0)
-- throw new IllegalArgumentException(String.format("BufferAllocatorMapped: Segement size(%d) not a multiple of blocksize (%d)", segmentSize, blockSize)) ;
--
-- this.blockSize = blockSize;
-- blocksPerSegment = segmentSize/blockSize ;
-- segments = new ArrayList<>();
--
-- tmpFile = getNewTemporaryFile();
-- tmpFile.deleteOnExit();
-- }
--
-- /**
-- * Returns a handle to a temporary file. Does not actually create the file on disk.
-- */
-- private final File getNewTemporaryFile()
-- {
-- File sysTempDir = new File(System.getProperty("java.io.tmpdir")) ;
-- File tmpFile = new File(sysTempDir, "JenaTempByteBuffer-" + UUID.randomUUID().toString() + ".tmp") ;
-- return tmpFile ;
-- }
--
-- private final int segment(int id) { return id/blocksPerSegment ; }
-- private final int byteOffset(int id) { return (id%blocksPerSegment)*blockSize ; }
-- private final long fileLocation(long segmentNumber) { return segmentNumber*segmentSize ; }
--
-- @Override
-- public ByteBuffer allocate(int blkSize)
-- {
-- if ( blkSize != this.blockSize )
-- throw new FileException("Fixed blocksize only: request= "+blkSize+"fixed size="+this.blockSize) ;
--
-- // Create the file lazily
-- if (null == file)
-- file = FileBase.create(tmpFile.getPath());
--
-- // Get and increment the id
-- int id = seq++;
-- int seg = segment(id);
-- int segOff = byteOffset(id);
--
-- MappedByteBuffer segBuffer;
-- // See if we need to grow the file
-- if (seg >= segments.size())
-- {
-- try
-- {
-- long offset = fileLocation(seg);
-- segBuffer = file.channel().map(MapMode.READ_WRITE, offset, segmentSize) ;
-- segments.add(segBuffer);
-- }
-- catch (IOException e)
-- {
-- throw new FileException("MappedFile.allocate: Segment= " + seg, e);
-- }
-- }
-- else
-- {
-- segBuffer = segments.get(seg);
-- }
--
-- segBuffer.position(segOff);
-- segBuffer.limit(segOff + blockSize);
--
-- ByteBuffer toReturn = segBuffer.slice();
--
-- segBuffer.limit(segBuffer.capacity());
--
-- return toReturn;
-- }
--
-- @Override
-- public void clear()
-- {
-- // Just reset to the start of the file, we'll allocate overtop of the old memory
-- seq = 0;
-- }
--
-- @Override
-- public void close()
-- {
-- // There is no unmap operation for MappedByteBuffers.
-- // Sun Bug id bug_id=4724038
-- // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038
-- clear();
-- segments.clear();
-- file.close();
-- file = null;
--
-- // May not delete on Windows :/
-- tmpFile.delete();
-- }
--}
++/*
++ * 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.tdb.base.file;
++
++import java.io.File ;
++import java.io.IOException ;
++import java.nio.ByteBuffer ;
++import java.nio.MappedByteBuffer ;
++import java.nio.channels.FileChannel.MapMode ;
++import java.util.ArrayList ;
++import java.util.List ;
++import java.util.UUID ;
++
++import org.apache.jena.tdb.sys.SystemTDB ;
++
++/**
++ * ByteBuffer access to a temporary file, using memory mapped I/O. The file will
++ * grow in chunks as necessary by the SystemTDB.SegmentSize.
++ * <p/>
++ * This class is not thread-safe.
++ */
++final public class BufferAllocatorMapped implements BufferAllocator
++{
++ private final List<MappedByteBuffer> segments;
++
++ private final int segmentSize = SystemTDB.SegmentSize;
++ private final int blockSize;
++ private final int blocksPerSegment;
++
++ private final File tmpFile;
++ private FileBase file;
++ private int seq = 0;
++
++ public BufferAllocatorMapped(int blockSize)
++ {
++ if (blockSize == 0 || blockSize > segmentSize)
++ throw new IllegalArgumentException("Illegal block size: " + blockSize);
++ if (segmentSize % blockSize != 0)
++ throw new IllegalArgumentException(String.format("BufferAllocatorMapped: Segement size(%d) not a multiple of blocksize (%d)", segmentSize, blockSize)) ;
++
++ this.blockSize = blockSize;
++ blocksPerSegment = segmentSize/blockSize ;
++ segments = new ArrayList<>();
++
++ tmpFile = getNewTemporaryFile();
++ tmpFile.deleteOnExit();
++ }
++
++ /**
++ * Returns a handle to a temporary file. Does not actually create the file on disk.
++ */
++ private final File getNewTemporaryFile()
++ {
++ File sysTempDir = new File(System.getProperty("java.io.tmpdir")) ;
++ File tmpFile = new File(sysTempDir, "JenaTempByteBuffer-" + UUID.randomUUID().toString() + ".tmp") ;
++ return tmpFile ;
++ }
++
++ private final int segment(int id) { return id/blocksPerSegment ; }
++ private final int byteOffset(int id) { return (id%blocksPerSegment)*blockSize ; }
++ private final long fileLocation(long segmentNumber) { return segmentNumber*segmentSize ; }
++
++ @Override
++ public ByteBuffer allocate(int blkSize)
++ {
++ if ( blkSize != this.blockSize )
++ throw new FileException("Fixed blocksize only: request= "+blkSize+"fixed size="+this.blockSize) ;
++
++ // Create the file lazily
++ if (null == file)
++ file = FileBase.create(tmpFile.getPath());
++
++ // Get and increment the id
++ int id = seq++;
++ int seg = segment(id);
++ int segOff = byteOffset(id);
++
++ MappedByteBuffer segBuffer;
++ // See if we need to grow the file
++ if (seg >= segments.size())
++ {
++ try
++ {
++ long offset = fileLocation(seg);
++ segBuffer = file.channel().map(MapMode.READ_WRITE, offset, segmentSize) ;
++ segments.add(segBuffer);
++ }
++ catch (IOException e)
++ {
++ throw new FileException("MappedFile.allocate: Segment= " + seg, e);
++ }
++ }
++ else
++ {
++ segBuffer = segments.get(seg);
++ }
++
++ segBuffer.position(segOff);
++ segBuffer.limit(segOff + blockSize);
++
++ ByteBuffer toReturn = segBuffer.slice();
++
++ segBuffer.limit(segBuffer.capacity());
++
++ return toReturn;
++ }
++
++ @Override
++ public void clear()
++ {
++ // Just reset to the start of the file, we'll allocate overtop of the old memory
++ seq = 0;
++ }
++
++ @Override
++ public void close()
++ {
++ // There is no unmap operation for MappedByteBuffers.
++ // Sun Bug id bug_id=4724038
++ // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038
++ clear();
++ segments.clear();
++ file.close();
++ file = null;
++
++ // May not delete on Windows :/
++ tmpFile.delete();
++ }
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMem.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMem.java
index c82dff2,c82dff2..4d3bb19
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMem.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/base/file/BufferAllocatorMem.java
@@@ -1,46 -1,46 +1,46 @@@
--/*
-- * 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.tdb.base.file;
--
--import java.nio.ByteBuffer ;
--
--/**
-- * Delegates to {@link ByteBuffer#allocate(int)}.
-- */
--public class BufferAllocatorMem implements BufferAllocator
--{
-- @Override
-- public ByteBuffer allocate(int capacity)
-- {
-- return ByteBuffer.allocate(capacity);
-- }
--
-- @Override
-- public void clear()
-- {
-- // Do nothing
-- }
--
-- @Override
-- public void close()
-- {
-- // Do nothing
-- }
--
--}
++/*
++ * 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.tdb.base.file;
++
++import java.nio.ByteBuffer ;
++
++/**
++ * Delegates to {@link ByteBuffer#allocate(int)}.
++ */
++public class BufferAllocatorMem implements BufferAllocator
++{
++ @Override
++ public ByteBuffer allocate(int capacity)
++ {
++ return ByteBuffer.allocate(capacity);
++ }
++
++ @Override
++ public void clear()
++ {
++ // Do nothing
++ }
++
++ @Override
++ public void close()
++ {
++ // Do nothing
++ }
++
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_QuadsObjectIsNull.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_QuadsObjectIsNull.java
index 76218c7,76218c7..ca701df
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_QuadsObjectIsNull.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_QuadsObjectIsNull.java
@@@ -1,110 -1,110 +1,110 @@@
--/*
-- * 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.tdb.extra ;
--
--import java.util.Iterator ;
--
--import org.apache.jena.atlas.lib.FileOps ;
--import org.apache.jena.atlas.logging.LogCtl ;
--import org.apache.jena.query.ReadWrite ;
--import org.apache.jena.sparql.core.Quad ;
--import org.apache.jena.sparql.sse.SSE ;
--import org.apache.jena.tdb.TDBFactory ;
--import org.apache.jena.tdb.base.file.Location ;
--import org.apache.jena.tdb.sys.SystemTDB ;
--import org.apache.jena.tdb.transaction.DatasetGraphTransaction ;
--import org.apache.jena.tdb.transaction.Journal ;
--import org.apache.jena.tdb.transaction.JournalControl ;
--import org.apache.jena.tdb.transaction.NodeTableTrans ;
--
--public class T_QuadsObjectIsNull {
--// static {
--// ARQ.getContext().set(SystemTDB.symFileMode, "direct");
--// TDB.getContext().set(TDB.symUnionDefaultGraph, true);
--// }
--
-- static String DIR = "DBX" ;
-- static Location location = Location.create(DIR) ;
--
-- public static void main(String[] args) {
--
-- if ( false )
-- {
-- LogCtl.enable(SystemTDB.syslog.getName()) ;
-- LogCtl.enable(Journal.class) ;
-- LogCtl.enable(JournalControl.class) ;
-- LogCtl.enable(NodeTableTrans.class) ;
-- }
-- if ( false )
-- {
-- String journal = "DBX/journal.jrnl" ;
-- if ( FileOps.exists(journal))
-- JournalControl.print(journal) ;
-- }
--
-- if ( false ) {
-- FileOps.ensureDir(DIR) ;
-- FileOps.clearDirectory(DIR) ;
-- }
-- one() ;
-- }
--
-- public static void write(DatasetGraphTransaction dsg, Quad quad)
-- {
-- dsg.begin(ReadWrite.WRITE) ;
-- dsg.add(quad) ;
-- if ( ! dsg.contains(quad) )
-- throw new RuntimeException("No quad: "+quad) ;
-- dsg.commit() ;
-- dsg.end() ;
-- }
--
-- private static void dump(DatasetGraphTransaction dsg)
-- {
-- dsg.begin(ReadWrite.READ);
-- Iterator<Quad> iter = dsg.find() ;
-- for ( ; iter.hasNext() ; )
-- {
-- Quad q = iter.next() ;
-- System.out.println(q) ;
-- }
-- //RiotWriter.writeNQuads(System.out, dsg) ;
-- dsg.commit();
-- dsg.end();
-- }
--
-- public static void one()
-- {
-- Quad q1 = SSE.parseQuad("(<g1> <s1> <p1> '1')") ;
-- Quad q2 = SSE.parseQuad("(<g2> <s2> <p2> '2')") ;
-- Quad q3 = SSE.parseQuad("(<g3> <s3> <p3> '3')") ;
--
-- DatasetGraphTransaction dsg = (DatasetGraphTransaction)TDBFactory.createDatasetGraph(location);
-- System.out.println("Start") ;
-- dump(dsg) ;
--
-- write(dsg, q1) ;
-- write(dsg, q2) ;
-- //write(dsg, q3) ;
-- System.out.println("Finish") ;
-- dump(dsg) ;
-- }
--
--
--}
++/*
++ * 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.tdb.extra ;
++
++import java.util.Iterator ;
++
++import org.apache.jena.atlas.lib.FileOps ;
++import org.apache.jena.atlas.logging.LogCtl ;
++import org.apache.jena.query.ReadWrite ;
++import org.apache.jena.sparql.core.Quad ;
++import org.apache.jena.sparql.sse.SSE ;
++import org.apache.jena.tdb.TDBFactory ;
++import org.apache.jena.tdb.base.file.Location ;
++import org.apache.jena.tdb.sys.SystemTDB ;
++import org.apache.jena.tdb.transaction.DatasetGraphTransaction ;
++import org.apache.jena.tdb.transaction.Journal ;
++import org.apache.jena.tdb.transaction.JournalControl ;
++import org.apache.jena.tdb.transaction.NodeTableTrans ;
++
++public class T_QuadsObjectIsNull {
++// static {
++// ARQ.getContext().set(SystemTDB.symFileMode, "direct");
++// TDB.getContext().set(TDB.symUnionDefaultGraph, true);
++// }
++
++ static String DIR = "DBX" ;
++ static Location location = Location.create(DIR) ;
++
++ public static void main(String[] args) {
++
++ if ( false )
++ {
++ LogCtl.enable(SystemTDB.syslog.getName()) ;
++ LogCtl.enable(Journal.class) ;
++ LogCtl.enable(JournalControl.class) ;
++ LogCtl.enable(NodeTableTrans.class) ;
++ }
++ if ( false )
++ {
++ String journal = "DBX/journal.jrnl" ;
++ if ( FileOps.exists(journal))
++ JournalControl.print(journal) ;
++ }
++
++ if ( false ) {
++ FileOps.ensureDir(DIR) ;
++ FileOps.clearDirectory(DIR) ;
++ }
++ one() ;
++ }
++
++ public static void write(DatasetGraphTransaction dsg, Quad quad)
++ {
++ dsg.begin(ReadWrite.WRITE) ;
++ dsg.add(quad) ;
++ if ( ! dsg.contains(quad) )
++ throw new RuntimeException("No quad: "+quad) ;
++ dsg.commit() ;
++ dsg.end() ;
++ }
++
++ private static void dump(DatasetGraphTransaction dsg)
++ {
++ dsg.begin(ReadWrite.READ);
++ Iterator<Quad> iter = dsg.find() ;
++ for ( ; iter.hasNext() ; )
++ {
++ Quad q = iter.next() ;
++ System.out.println(q) ;
++ }
++ //RiotWriter.writeNQuads(System.out, dsg) ;
++ dsg.commit();
++ dsg.end();
++ }
++
++ public static void one()
++ {
++ Quad q1 = SSE.parseQuad("(<g1> <s1> <p1> '1')") ;
++ Quad q2 = SSE.parseQuad("(<g2> <s2> <p2> '2')") ;
++ Quad q3 = SSE.parseQuad("(<g3> <s3> <p3> '3')") ;
++
++ DatasetGraphTransaction dsg = (DatasetGraphTransaction)TDBFactory.createDatasetGraph(location);
++ System.out.println("Start") ;
++ dump(dsg) ;
++
++ write(dsg, q1) ;
++ write(dsg, q2) ;
++ //write(dsg, q3) ;
++ System.out.println("Finish") ;
++ dump(dsg) ;
++ }
++
++
++}
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_TimeoutTDBPattern.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_TimeoutTDBPattern.java
index 9d3e09e,9d3e09e..107bf2c
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_TimeoutTDBPattern.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/extra/T_TimeoutTDBPattern.java
@@@ -1,112 -1,112 +1,112 @@@
--/**
-- * 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.tdb.extra;
--
--import java.text.MessageFormat ;
--import java.util.Date ;
--import java.util.concurrent.TimeUnit ;
--
--import org.apache.jena.query.* ;
--import org.apache.jena.rdf.model.* ;
--import org.apache.jena.tdb.TDBFactory ;
--
--// From Jena-289.
--
--public class T_TimeoutTDBPattern
--{
-- private static final int timeout1_sec = 3;
-- private static final int timeout2_sec = 5;
--
-- private static final int RESOURCES = 100000;
-- private static final int COMMIT_EVERY = 1000;
-- private static final int TRIPLES_PER_RESOURCE = 100;
-- private static final String RES_NS = "http://example.com/";
-- private static final String PROP_NS = "http://example.org/ns/1.0/";
--
-- public static void main(String[] args) {
-- String location = "DB_Jena289" ;
-- Dataset ds = TDBFactory.createDataset(location);
--
-- if (ds.asDatasetGraph().isEmpty())
-- create(ds) ;
--
-- // 10M triples.
-- // No match to { ?a ?b ?c . ?c ?d ?e }
--
-- final String sparql = "SELECT * WHERE { ?a ?b ?c . ?c ?d ?e }";
--
-- Query query = QueryFactory.create(sparql);
--
-- ds.begin(ReadWrite.READ);
-- System.out.println(MessageFormat.format("{0,date} {0,time} Executing query [timeout1={1}s timeout2={2}s]: {3}",
-- new Date(System.currentTimeMillis()), timeout1_sec, timeout2_sec, sparql));
-- try(QueryExecution qexec = QueryExecutionFactory.create(query, ds)) {
-- if ( true )
-- qexec.setTimeout(timeout1_sec, TimeUnit.SECONDS, timeout2_sec, TimeUnit.SECONDS);
-- long start = System.nanoTime() ;
-- long finish = start ;
-- ResultSet rs = qexec.execSelect();
--
-- try {
-- long x = ResultSetFormatter.consume(rs) ;
-- finish = System.nanoTime() ;
-- System.out.println("Results: "+x) ;
-- } catch (QueryCancelledException ex)
-- {
-- finish = System.nanoTime() ;
-- System.out.println("Cancelled") ;
-- }
-- System.out.printf("%.2fs\n",(finish-start)/(1000.0*1000.0*1000.0)) ;
-- } catch (Throwable t) {
-- t.printStackTrace(); // OOME
-- } finally {
-- ds.end();
-- ds.close();
-- System.out.println(MessageFormat.format("{0,date} {0,time} Finished",
-- new Date(System.currentTimeMillis())));
-- }
-- }
--
-- private static void create(Dataset ds)
-- {
-- for (int iR = 0; iR < RESOURCES; iR++) { // 100,000
-- if (iR % COMMIT_EVERY == 0) {
-- if (ds.isInTransaction()) {
-- ds.commit();
-- ds.end();
-- }
-- ds.begin(ReadWrite.WRITE);
-- }
--
-- Model model = ModelFactory.createDefaultModel();
-- Resource res = model.createResource(RES_NS + "resource" + iR);
-- for (int iP = 0; iP < TRIPLES_PER_RESOURCE; iP++) { // 100
-- Property prop = ResourceFactory.createProperty(PROP_NS, "property" + iP);
-- model.add(res, prop, model.createTypedLiteral("Property value " + iP));
-- }
-- //ds.addNamedModel(res.getURI(), model);
-- ds.getDefaultModel().add(model);
-- System.out.println("Created " + res.getURI());
-- }
-- ds.commit();
-- ds.end();
-- }
--}
--
--
++/**
++ * 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.tdb.extra;
++
++import java.text.MessageFormat ;
++import java.util.Date ;
++import java.util.concurrent.TimeUnit ;
++
++import org.apache.jena.query.* ;
++import org.apache.jena.rdf.model.* ;
++import org.apache.jena.tdb.TDBFactory ;
++
++// From Jena-289.
++
++public class T_TimeoutTDBPattern
++{
++ private static final int timeout1_sec = 3;
++ private static final int timeout2_sec = 5;
++
++ private static final int RESOURCES = 100000;
++ private static final int COMMIT_EVERY = 1000;
++ private static final int TRIPLES_PER_RESOURCE = 100;
++ private static final String RES_NS = "http://example.com/";
++ private static final String PROP_NS = "http://example.org/ns/1.0/";
++
++ public static void main(String[] args) {
++ String location = "DB_Jena289" ;
++ Dataset ds = TDBFactory.createDataset(location);
++
++ if (ds.asDatasetGraph().isEmpty())
++ create(ds) ;
++
++ // 10M triples.
++ // No match to { ?a ?b ?c . ?c ?d ?e }
++
++ final String sparql = "SELECT * WHERE { ?a ?b ?c . ?c ?d ?e }";
++
++ Query query = QueryFactory.create(sparql);
++
++ ds.begin(ReadWrite.READ);
++ System.out.println(MessageFormat.format("{0,date} {0,time} Executing query [timeout1={1}s timeout2={2}s]: {3}",
++ new Date(System.currentTimeMillis()), timeout1_sec, timeout2_sec, sparql));
++ try(QueryExecution qexec = QueryExecutionFactory.create(query, ds)) {
++ if ( true )
++ qexec.setTimeout(timeout1_sec, TimeUnit.SECONDS, timeout2_sec, TimeUnit.SECONDS);
++ long start = System.nanoTime() ;
++ long finish = start ;
++ ResultSet rs = qexec.execSelect();
++
++ try {
++ long x = ResultSetFormatter.consume(rs) ;
++ finish = System.nanoTime() ;
++ System.out.println("Results: "+x) ;
++ } catch (QueryCancelledException ex)
++ {
++ finish = System.nanoTime() ;
++ System.out.println("Cancelled") ;
++ }
++ System.out.printf("%.2fs\n",(finish-start)/(1000.0*1000.0*1000.0)) ;
++ } catch (Throwable t) {
++ t.printStackTrace(); // OOME
++ } finally {
++ ds.end();
++ ds.close();
++ System.out.println(MessageFormat.format("{0,date} {0,time} Finished",
++ new Date(System.currentTimeMillis())));
++ }
++ }
++
++ private static void create(Dataset ds)
++ {
++ for (int iR = 0; iR < RESOURCES; iR++) { // 100,000
++ if (iR % COMMIT_EVERY == 0) {
++ if (ds.isInTransaction()) {
++ ds.commit();
++ ds.end();
++ }
++ ds.begin(ReadWrite.WRITE);
++ }
++
++ Model model = ModelFactory.createDefaultModel();
++ Resource res = model.createResource(RES_NS + "resource" + iR);
++ for (int iP = 0; iP < TRIPLES_PER_RESOURCE; iP++) { // 100
++ Property prop = ResourceFactory.createProperty(PROP_NS, "property" + iP);
++ model.add(res, prop, model.createTypedLiteral("Property value " + iP));
++ }
++ //ds.addNamedModel(res.getURI(), model);
++ ds.getDefaultModel().add(model);
++ System.out.println("Created " + res.getURI());
++ }
++ ds.commit();
++ ds.end();
++ }
++}
++
++
http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestDatasetGraphAccessorTDB.java
----------------------------------------------------------------------
diff --cc jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestDatasetGraphAccessorTDB.java
index d501dbf,d501dbf..1d8d1f8
--- a/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestDatasetGraphAccessorTDB.java
+++ b/jena-tdb/src/test/java/org/apache/jena/tdb/graph/TestDatasetGraphAccessorTDB.java
@@@ -16,20 -16,20 +16,20 @@@
* limitations under the License.
*/
--package org.apache.jena.tdb.graph;
--
++package org.apache.jena.tdb.graph;
++
import org.apache.jena.query.DatasetAccessorFactory ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.tdb.TDBFactory ;
import org.apache.jena.web.DatasetGraphAccessor ;
import org.apache.jena.web.AbstractTestDatasetGraphAccessor ;
--
--public class TestDatasetGraphAccessorTDB extends AbstractTestDatasetGraphAccessor
--{
-- @Override
-- protected DatasetGraphAccessor getDatasetUpdater()
-- {
-- DatasetGraph dsg = TDBFactory.createDatasetGraph() ;
-- return DatasetAccessorFactory.make(dsg) ;
-- }
++
++public class TestDatasetGraphAccessorTDB extends AbstractTestDatasetGraphAccessor
++{
++ @Override
++ protected DatasetGraphAccessor getDatasetUpdater()
++ {
++ DatasetGraph dsg = TDBFactory.createDatasetGraph() ;
++ return DatasetAccessorFactory.make(dsg) ;
++ }
}