This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch karaf-4.1.x
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/karaf-4.1.x by this push:
new 35ffa75 [KARAF-3976] Able to use "old style" datasource
names/properties
35ffa75 is described below
commit 35ffa75653053e041f33424545df49bc7d6c0aff
Author: Jean-Baptiste Onofré <[email protected]>
AuthorDate: Fri Dec 15 09:47:43 2017 +0100
[KARAF-3976] Able to use "old style" datasource names/properties
---
.../karaf/jdbc/internal/JdbcServiceImpl.java | 26 +++++++++++++++-------
manual/src/main/asciidoc/user-guide/jdbc.adoc | 5 ++---
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
index fc6d5b5..b50fc98 100644
--- a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
+++ b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
@@ -93,16 +93,26 @@ public class JdbcServiceImpl implements JdbcService {
@Override
public List<String> datasources() throws Exception {
List<String> datasources = new ArrayList<>();
- Collection<ServiceReference<DataSource>> references =
bundleContext.getServiceReferences(DataSource.class, null);
- if (references == null) {
- return datasources;
- }
- for (ServiceReference reference : references) {
- String dsName =
(String)reference.getProperty(DataSourceFactory.JDBC_DATASOURCE_NAME);
- if (dsName != null) {
- datasources.add(dsName);
+
+ ServiceReference<?>[] references =
bundleContext.getServiceReferences((String) null,
+ "(|(" + Constants.OBJECTCLASS + "=" +
DataSource.class.getName() + ")("
+ + Constants.OBJECTCLASS + "=" +
XADataSource.class.getName() + "))");
+ if (references != null) {
+ for (ServiceReference reference : references) {
+ if (reference.getProperty("osgi.jndi.service.name") != null) {
+
datasources.add(reference.getProperty("osgi.jndi.service.name").toString());
+ } else if (reference.getProperty("datasource") != null) {
+
datasources.add(reference.getProperty("datasource").toString());
+ } else if (reference.getProperty("name") != null) {
+ datasources.add(reference.getProperty("name").toString());
+ } else if
(reference.getProperty(DataSourceFactory.JDBC_DATASOURCE_NAME) != null) {
+
datasources.add(reference.getProperty(DataSourceFactory.JDBC_DATASOURCE_NAME).toString());
+ } else {
+
datasources.add(reference.getProperty(Constants.SERVICE_ID).toString());
+ }
}
}
+
return datasources;
}
diff --git a/manual/src/main/asciidoc/user-guide/jdbc.adoc
b/manual/src/main/asciidoc/user-guide/jdbc.adoc
index 8324b33..8ed2562 100644
--- a/manual/src/main/asciidoc/user-guide/jdbc.adoc
+++ b/manual/src/main/asciidoc/user-guide/jdbc.adoc
@@ -19,12 +19,11 @@ The Apache Karaf DataSources (JDBC) is an optional
enterprise feature.
You have to install the following features first:
----
-karaf@root()> feature:repo-add pax-jdbc
-karaf@root()> feature:install pax-jdbc
-karaf@root()> feature:install pax-jdbc-config
karaf@root()> feature:install jdbc
----
+NB: `jdbc` feature automatically installs the `pax-jdbc-*` core features.
+
Pax JDBC provides ready to use adapters for different databases:
* pax-jdbc-derby
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].