<!--
Copyright 2005-2006 The Apache Software Foundation
Licensed  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.
-->
<HTML>
<BODY>
Service implementations of the driver configuration services.

<li><b>rdbms</b>:
    Relational Database Management System implementations.
</li>

<li><b>resource</b>:
    Classpath Resources (file) based implementations.
</li>

</BODY>
</HTML>