Files
openGauss-connector-jdbc/docs/development/development.html
2020-06-30 14:58:21 +08:00

101 lines
3.9 KiB
HTML

---
layout: default
title: PostgreSQL JDBC Development
resource: ../media
nav: ../
---
{% include submenu_development.html %}
<div id="pgContentWrap">
<h1>Development</h1>
<hr />
<div>
<ul>
<li><a href="#About_the_Driver">About the Driver</a></li>
<li><a href="#Tools">Tools</a></li>
<li><a href="#Build_Process">Build Process</a></li>
<li><a href="#Test_Suite">Test Suite</a></li>
</ul>
</div>
<hr />
<a name="About_the_Driver"></a>
<h2 class="underlined_10">About the Driver</h2>
<div>
<p>
The PostgreSQL JDBC driver has some unique properties that you
should be aware of before starting to develop any code for it.
The current development driver supports eleven server versions and
three java environments. This doesn't mean that every feature must
work in every combination, but a reasonable behaviour must be
provided for non-supported versions. While this extra compatibility
sounds like a lot of work, the actual goal is to reduce the amount
of work by maintaining only one code base.
</p>
</div>
<hr />
<a name="Tools"></a>
<h2 class="underlined_10">Tools</h2>
<div>
<p>
The following tools are required to build and test the driver:
</p>
<ul>
<li><a href="https://java.oracle.com" target="_blank">Java 6 Standard Edition Development Kit</a> At least JDK 1.6</li>
<li><a href="https://maven.apache.org" target="_blank">Apache Maven</a> At least 3.1.1</li>
<li><a href="https://git-scm.com" target="_blank">Git SCM</a></li>
<li><a href="https://www.postgresql.org" target="_blank">A PostgreSQL instance</a> to run the tests.</li>
</ul>
</div>
<hr />
<a name="Build_Process"></a>
<h2 class="underlined_10">Build Process</h2>
<div>
<p>
After retrieving the source from the <a href="../development/git.html">git repository</a>.
Move into the top level <span style="font-family: Courier New,Courier,monospace;">pgjdbc</span> directory and simply
type <span style="font-family: Courier New,Courier,monospace;">mvn package -DskipTests</span>. This will build the appropriate driver for
your current Java version and place it into <span style="font-family: Courier New,Courier,monospace;">target/postgresql-${version}.jar</span>.
</p>
</div>
<hr />
<a name="Test_Suite"></a>
<h2 class="underlined_10">Test Suite</h2>
<div>
<p>
To make sure the driver is working as expected there are a set of
JUnit tests that should be run. These require a database to run
against that has the plpgsql procedural language installed. The
default parameters for username and database are "test", and for
password it's "test".
so a sample interaction to set this up would look the following, if
you enter "password" when asked for it:
</p>
<pre style="font-family: serif;">
postgres@host:~$ createuser -d -A test -P
Enter password for user "test":
Enter it again:
CREATE USER
postgres@host:~$ createdb -U test test
CREATE DATABASE
postgres@host:~$ createlang plpgsql test
</pre>
<p>
Now we're ready to run the tests, we simply type <span style="font-family: Courier New,Courier,monospace;">mvn clean package</span>,
and it should be off and running. To use non default values to run
the regression tests, you can create a <span style="font-family: Courier New,Courier,monospace;">build.local.properties</span>
in the top level directory. This properties file allows you to set
values for host, database, user, password, and port with the standard
properties "key = value" usage. The ability to set the port value
makes it easy to run the tests against a number of different server
versions on the same machine.
</p>
</div>
</div> <!-- pgContentWrap -->