You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2017/12/15 09:47:42 UTC
[karaf] branch master updated: [KARAF-3976] Able to use "old style"
datasource names/properties
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/master by this push:
new 2bd3726 [KARAF-3976] Able to use "old style" datasource names/properties
2bd3726 is described below
commit 2bd3726eb1812bf6060b44dd3c28f9bf8b9768b6
Author: Jean-Baptiste Onofré <jb...@apache.org>
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 aa367c9..896bce8 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
['"commits@karaf.apache.org" <co...@karaf.apache.org>'].