Skip to content

Commit

Permalink
Build documentation with pandoc
Browse files Browse the repository at this point in the history
Start of new faq document (not yet included in distribution)
  • Loading branch information
mrotteveel committed Oct 27, 2013
1 parent f528c9a commit bd797ae
Show file tree
Hide file tree
Showing 5 changed files with 180 additions and 7 deletions.
5 changes: 5 additions & 0 deletions build.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
version.major=2
version.minor=3
version.revision=0
# version.tag should start with a dash (-) unless it is empty
version.tag=-SNAPSHOT
1 change: 1 addition & 0 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<import file="build/deploy.xml" />
<import file="build/test.xml" />
<import file="build/dist.xml" />
<import file="build/docs.xml"/>
</project>


Expand Down
22 changes: 22 additions & 0 deletions build/docs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<project name="docs">

<target name="buildalldocs" depends="buildfaq" />

<target name="buildfaq" depends="init">
<mkdir dir="${build.documentation}"/>
<exec executable="${pandoc.app}">
<arg value="-s"/>
<arg value="-f"/>
<arg value="markdown"/>
<arg value="-t"/>
<arg value="html5"/>
<arg value="--toc"/>
<arg value="-N"/>
<arg value="--section-divs"/>
<arg value="-o" />
<arg value="${build.documentation}/faq.html"/>
<arg value="${source.documentation}/faq.md"/>
</exec>
</target>
</project>
24 changes: 17 additions & 7 deletions build/init.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
<?xml version="1.0"?>
<project name="init">
<target name="init">
<!-- Setup the build timestamp & build identifer properties -->
<!-- External build properties
All properties can be overridden by adding them to build-local.properties
-->
<property file="${basedir}/build-local.properties" />
<property file="${basedir}/build.properties" />

<!-- Setup the build timestamp & build identifier properties -->
<tstamp>
<format property="build.number" pattern="yyyyMMddHHmm"/>
<format property="YEAR" pattern="yyyy"/>
Expand Down Expand Up @@ -29,11 +35,7 @@
<property name="Name" value="Jaybird"/>
<property name="name" value="jaybird"/>

<property name="version.major" value="2"/>
<property name="version.minor" value="3"/>
<property name="version.revision" value="0"/>
<property name="version.tag" value="snapshot"/>
<property name="version.name" value="JDK_${ant.java.version}"/>
<property name="version.name" value="-JDK_${ant.java.version}"/>

<property name="version.full"
value="${version.major}.${version.minor}.${version.revision}${version.tag}${version.name}"/>
Expand Down Expand Up @@ -83,6 +85,7 @@
<property name="source.stylesheets" value="${module.source}/stylesheets"/>
<property name="source.test" value="${module.source}/test"/>
<property name="source.compatibility" value="${module.source}/compatibility"/>
<property name="source.documentation" value="${module.source}/documentation"/>

<property name="thirdparty" value="${module.root}/thirdparty"/>
<property name="jboss.source.root"
Expand All @@ -108,6 +111,7 @@
<property name="build.dist" value="${module.output}/dist"/>
<property name="build.native" value="${module.output}/native"/>
<property name="build.native.output" value="${build.native}"/>
<property name="build.documentation" value="${module.output}/documentation"/>

<property name="archive.name.main" value="jaybird"/>
<property name="archive.name.version" value="${version.major}.${version.minor}.${version.revision}"/>
Expand All @@ -134,7 +138,7 @@
<property name="junit.timeout" value="60000"/>
<!--property name="junit.jvm" value="true"/-->

<!-- these may be overridden on the command line to test against a server
<!-- these may be overridden on the command line or build-local.properties to test against a server
on another host. For example,
./build.sh -Dtest.db.host=192.168.0.3 -Dtest.db.dir=/usr/local/firebird/dev/client-java/output/db tests-report-html
-->
Expand All @@ -148,6 +152,12 @@

<property name="build.compiler" value="modern"/>

<!-- Documentation build options -->
<!--
NOTE: Install pandoc from http://johnmacfarlane.net/pandoc/installing.html
-->
<property name="pandoc.app" location="/home/${user.name}/.cabal/bin/pandoc"/>

<path id="javac.j2ee.classpath">
<pathelement location="${module.thirdparty}/connector-api-1.5.jar"/>
</path>
Expand Down
135 changes: 135 additions & 0 deletions src/documentation/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
---
title: Jaybird Frequently Asked Questions
tags: [jaybird, firebird, jdbc, sql, database, java]
...

Jaybird
=======

Where do I get Jaybird?
-----------------------

Firebird can be downloaded from the Firebird website, under Downloads, [JDBC Driver](http://www.firebirdsql.org/en/jdbc-driver/).

Alternatively, you can go directly to Source Forge and download Jaybird from the [firebird-jca-jdc-driver files section](http://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/).

Where can I get the sourcecode?
-------------------------------

The Jaybird sourcecode is available from Source Forge in the Firebird subversion repository, under client-java. The full URL (trunk) is:

[http://svn.code.sf.net/p/firebird/code/client-java/trunk](http://svn.code.sf.net/p/firebird/code/client-java/trunk)

JDBC Support
============

How much of JDBC is supported by Jaybird?
-----------------------------------------

**WARNING** The information in this section is outdated

Jaybird follows the JDBC 4.2 specification with some features and methods not implemented. Some of the unimplemented items are required by the specification and some are optional.

Implemented features:

* Most useful JDBC functionality ("useful" in the opinion of the developers).
* Complete JCA API support: may be used directly in JCA-supporting application servers such as JBoss and WebLogic.
* XA transactions with true two phase commit when used as a JCA resource adapter in a managed environment (with a TransactionManager and JCA deployment support) as well as when used via javax.sql.XADataSource implementation.
* Includes optional internal connection pooling for standalone use and use in non-JCA environments such as Tomcat 4.
* ObjectFactory implementation for use in environments with JNDI but no TransactionManager such as Tomcat 4.
* DataSource implementations without pooling.
* Driver implementation for use in legacy applications.
* Complete access to all Firebird database parameter block and transaction parameter block settings.
* Optional integrated logging through log4j.
* JMX mbean for database management (so far just database create and drop).

What parts of JDBC are NOT supported by JayBird?
------------------------------------------------

**WARNING** The information in this section is outdated

The following optional features are NOT supported:

The following optional features and the methods that support it are not implemented:

* Batch Updates
* `java.sql.Statement`
* `addBatch(String sql)`
* `clearBatch()`
* `executeBatch()`
* `addBatch()`
* Scrollable cursors
* `java.sql.ResultSet`
* `beforeFirst()`
* `afterLast()`
* `first()`
* `last()`
* `absolute(int row)`
* `relative(int rows)`
* `previous()`
* Updateable cursors
* `java.sql.ResultSet`
* `rowUpdated()`
* `rowInserted()`
* `rowDeleted()`
* `updateXXX(....)`
* `insertRow()`
* `updateRow()`
* `deleteRow()`
* `refreshRow()`
* `cancelRowUpdates()`
* `moveToInsertRow()`
* `moveToCurrentRow()`
* Cursors/Positioned update/delete
* `java.sql.Statement`
* `setCursorName()`
* `java.sql.ResultSet`
* `getCursorName()`
* Ref, Clob and Array types.
* `java.sql.PreparedStatement`
* `setRef(int i, Ref x)`
* `setClob (int i, Clob x)`
* `setArray(int i, Array x)`
* `java.sql.ResultSet`
* `getArray(int i)`
* `getArray(String columnName)`
* `getRef(int i)`
* `getRef(String columnName)`
* `getClob(int i)`
* `getClob(String columnName)`
* User Defined Types/Type Maps.
* `java.sql.ResultSet`
* `getObject(int i, java.util.Map map)`
* `getObject(String columnName, java.util.Map map)`
* `java.sql.Connection`
* `getTypeMap()`
* `setTypeMap(java.util.Map map)`

Excluding the unsupported features, the following methods are not yet implemented:

* `java.sql.Statement`
* `cancel()`
* `java.sql.CallableStatement`
* `registerOutParameter(int parameterIndex, int sqlType)`
* `registerOutParameter(int parameterIndex, int sqlType, int scale)`
* `wasNull()`
* `java.sql.Blob`
* `length()`
* `getBytes(long pos, int length)`
* `position(byte pattern[], long start)`
* `position(Blob pattern, long start)`

The following methods are implemented, but do not work as expected:

* `java.sql.Statement`
* `get/setMaxFieldSize` does nothing
* `get/setQueryTimeout` does nothing
* `java.sql.PreparedStatement`
* `setObject(index,object,type)` This method is implemented but behaves as `setObject(index,object)`
* `setObject(index,object,type,scale)` This method is implemented but behaves as `setObject(index,object)`
* `java.sql.ResultSetMetaData`
* `isReadOnly(i)` always returns false
* `isWritable(i)` always returns true
* `isDefinitivelyWritable(i)` always returns true
* `java.sql.DatabaseMetaData`
* `getBestRowIdentifier(i)` always returns empty resultSet

0 comments on commit bd797ae

Please sign in to comment.