#
#
#    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.
#
#
h1. Synopsis

	${project.name}

	${project.description}

	Maven URL:
		[mvn:${project.groupId}/${project.artifactId}/${project.version}]

h1. Description

	This bundle is the core implementation of the JDBC service support.

	The JDBC service allows you to create datasources, see the defined datasources, execute query on a datasource, etc.

h1. Commands

	The bundle contains the following commands:
\${command-list|jdbc|indent=8,list,cyan}

h1. See also

	JDBC - section of the Karaf User Guide
