jena-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r875919 - in /websites/staging/jena/trunk/content: ./ documentation/jdbc/custom_driver.html
Date Fri, 23 Aug 2013 21:58:18 GMT
Author: buildbot
Date: Fri Aug 23 21:58:18 2013
New Revision: 875919

Staging update by buildbot for jena

    websites/staging/jena/trunk/content/   (props changed)

Propchange: websites/staging/jena/trunk/content/
--- cms:source-revision (original)
+++ cms:source-revision Fri Aug 23 21:58:18 2013
@@ -1 +1 @@

Added: websites/staging/jena/trunk/content/documentation/jdbc/custom_driver.html
--- websites/staging/jena/trunk/content/documentation/jdbc/custom_driver.html (added)
+++ websites/staging/jena/trunk/content/documentation/jdbc/custom_driver.html Fri Aug 23 21:58:18
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+    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
+ 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.
+  <link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
+  <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
+  <title>Apache Jena - Creating a Custom Jena JDBC Driver</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <script src="" type="text/javascript"></script>
+  <script src="/js/jena-navigation.js" type="text/javascript"></script>
+  <script src="/js/bootstrap.min.js" type="text/javascript"></script>
+    <div class="navbar navbar-fixed-top">
+      <div class="navbar-inner">
+        <div class="container">
+        <a class="brand" href="/index.html" style="padding-top: 6px; padding-bottom: 0px;">
+            <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png"
alt="jena logo">
+          </a>
+          <a class="brand" href="/index.html">Apache Jena</a>
+          <div class="nav-collapse collapse">
+            <ul class="nav">
+              <li id="homepage"><a href="/index.html"><i class="icon-home"></i>
+              <li id="download"><a href="/download/index.html"><i class="icon-download-alt"></i>
+              <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-book"></i>
Learn <b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li class="nav-header">Tutorials</li>
+                  <li><a href="/tutorials/index.html">Overview</a></li>
+                  <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
+                  <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
+                  <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating
SPARQL using ARQ</a></li>
+                  <li><a href="/tutorials/using_jena_with_eclipse.html">Using
Jena with Eclipse</a></li>
+                  <li><a href="/documentation/notes/index.html">How-To's</a></li>
+                  <li class="divider"></li>
+                  <li class="nav-header">References</li>
+                  <li><a href="/documentation/index.html">Overview</a></li>
+                  <li><a href="/documentation/javadoc/">Javadoc</a></li>
+                  <li><a href="/documentation/rdf/index.html">RDF API</a></li>
+                  <li><a href="/documentation/io/">RDF I/O</a></li>
+                  <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
+                  <li><a href="/documentation/query/text-query.html">Text Search</a></li>
+                  <li><a href="/documentation/tdb/index.html">TDB</a></li>
+		  <li><a href="/documentation/sdb/index.html">SDB</a></li>
+		  <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
+                  <li><a href="/documentation/serving_data/index.html">Fuseki</a></li>
+                  <li><a href="/documentation/assembler/index.html">Assembler</a></li>
+                  <li><a href="/documentation/ontology/">Ontology API</a></li>
+                  <li><a href="/documentation/inference/index.html">Inference
+                  <li><a href="/documentation/tools/index.html">Command-line
+                </ul>
+              </li>
+              <li id="ask"><a href="/help_and_support/index.html"><i class="icon-question-sign"></i>
+              <li class="dropdown">
+                <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-bullhorn"></i>
Get involved <b class="caret"></b></a>
+                <ul class="dropdown-menu">
+                  <li><a href="/getting_involved/index.html">Contribute</a></li>
+                  <li><a href="/help_and_support/bugs_and_suggestions.html">Report
a bug</a></li>
+                  <li class="divider"></li>
+                  <li class="nav-header">Project</li>
+                  <li><a href="/about_jena/about.html">About Jena</a></li>
+                  <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
+                  <li><a href="/about_jena/architecture.html">Architecture</a></li>
+                  <li><a href="/about_jena/team.html">Project team</a></li>
+                  <li><a href="/about_jena/contributions.html">Related projects</a></li>
+                  <li class="divider"></li>
+                  <li class="nav-header">ASF</li>
+                  <li><a href="">Apache Software Foundation</a></li>
+                  <li><a href="">License</a></li>
+                  <li><a href="">Thanks</a></li>
+                  <li><a href="">Become
a Sponsor</a></li>
+                  <li><a href="">Security</a></li>
+                </ul>
+              </li>
+            </ul>
+          </div><!--/.nav-collapse -->
+        </div>
+      </div>
+    </div>
+<div class="container">
+	<div class="row-fluid">
+	<div class="span12">
+	<h1 class="title">Creating a Custom Jena JDBC Driver</h1>
+  <p>As noted in the <a href="index.html#overview">overview</a> Jena JDBC
drivers are built around a core
+library which implements much of the common functionality required in an abstract way.  This
+means that it is relatively easy to build a custom driver just by relying on the core library
+and implementing a minimum of one class.</p>
+<h2 id="custom-driver-class">Custom Driver class</h2>
+<p>The one and only thing that you are required to do to create a custom driver is
to implement
+a class that extends <code>JenaDriver</code>.  This requires you to implement
a constructor which simply
+needs to call the parent constructor with the relevant inputs, one of these is your driver
+connection URL prefix i.e. the <code>foo</code> in <code>jdbc:jena:foo:</code>.
 Implementation specific prefixes
+must conform to the regular expression <code>[A-Za-z\d\-_]+:</code> i.e. some
combination of alphanumerics,
+hyphens and underscores terminated by a colon.</p>
+<p>Additionally you must override and implement two abstract methods <code>connect()</code>
and <code>getPropertyInfo()</code>.
+The former is used to produce an instance of a <code>JenaConnection</code> while
the latter provides information 
+that may be used by tools to present users with some form of user interface for configuring
+connection to your driver.</p>
+<p>An important thing to note is that this may be all you need to do to create a custom
driver, it is
+perfectly acceptable for your <code>connect()</code> implementation to just return
one of the implementations
+from the built-in drivers.  This may be useful if you are writing a driver for a specific
store and
+wish to provide simplified connection URL parameters and create the appropriate connection
+<h2 id="custom-connection-class">Custom Connection class</h2>
+<p>The next stage in creating a custom driver (where necessary) is to create a class
derived from
+<code>JenaConnection</code>.  This has a somewhat broader set of abstract methods
which you will need to implement
+such as <code>createStatementInternal()</code> and various methods which you
may optionally override if you
+need to deviate from the default behaviors.</p>
+<p>If you wish to go down this route then we recommend looking at the source for the
built in implementations
+to guide you in this.  It may be easier to extend one of the built-in implementations rather
than writing
+an entire custom implementation yourself.</p>
+<p>Note that custom implementations may also require you to implement custom <code>JenaStatement</code>
and <code>JenaPreparedSatement</code>
+  </div>
+</div><!--/.container -->
+    <footer class="footer">
+      <div class="container">
+        <p>Copyright &copy; 2011&ndash;2013 The Apache Software Foundation,
Licensed under
+        the <a href="">Apache License, Version
+        </p>
+        <p>
+        Apache Jena, Jena, the Apache Jena project logo,
+        Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+        </p>
+      </div>
+  </footer>

View raw message