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 2014/01/18 07:36:28 UTC
git commit: [KARAF-2692] Add a JDBC datasource file name completer
for the jdbc:delete command
Updated Branches:
refs/heads/master fb58c0387 -> d5dbcaa5c
[KARAF-2692] Add a JDBC datasource file name completer for the jdbc:delete command
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d5dbcaa5
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d5dbcaa5
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d5dbcaa5
Branch: refs/heads/master
Commit: d5dbcaa5c556e3a1646e65667a63f4745495ac1c
Parents: fb58c03
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Sat Jan 18 07:35:51 2014 +0100
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Sat Jan 18 07:35:51 2014 +0100
----------------------------------------------------------------------
.../karaf/jdbc/command/DataSourcesCommand.java | 2 +-
.../completers/DataSourcesCompleter.java | 53 --------------------
.../DataSourcesFileNameCompleter.java | 53 ++++++++++++++++++++
.../DataSourcesJNDINameCompleter.java | 53 ++++++++++++++++++++
.../OSGI-INF/blueprint/jdbc-command.xml | 15 +++---
.../java/org/apache/karaf/jdbc/JdbcService.java | 7 +++
.../karaf/jdbc/internal/JdbcMBeanImpl.java | 2 +-
.../karaf/jdbc/internal/JdbcServiceImpl.java | 16 ++++++
8 files changed, 140 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
index 36df691..228b22a 100644
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
@@ -28,7 +28,7 @@ public class DataSourcesCommand extends JdbcCommandSupport {
public Object doExecute() throws Exception {
ShellTable table = new ShellTable();
- table.column("Name");
+ table.column("JNDI Name");
table.column("Product");
table.column("Version");
table.column("URL");
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesCompleter.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesCompleter.java
deleted file mode 100644
index 74603b7..0000000
--- a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesCompleter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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.
- */
-package org.apache.karaf.jdbc.command.completers;
-
-import org.apache.karaf.jdbc.JdbcService;
-import org.apache.karaf.shell.console.Completer;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
-
-import java.util.List;
-
-/**
- * Completer on the JDBC datasources name/identifier
- */
-public class DataSourcesCompleter implements Completer {
-
- private JdbcService jdbcService;
-
- @Override
- public int complete(String buffer, int cursor, List<String> candidates) {
- StringsCompleter delegate = new StringsCompleter();
- try {
- for (String datasource : jdbcService.datasources()) {
- delegate.getStrings().add(datasource);
- }
- } catch (Exception e) {
- // nothing to do
- }
- return delegate.complete(buffer, cursor, candidates);
- }
-
- public JdbcService getJdbcService() {
- return jdbcService;
- }
-
- public void setJdbcService(JdbcService jdbcService) {
- this.jdbcService = jdbcService;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
new file mode 100644
index 0000000..b99b57a
--- /dev/null
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesFileNameCompleter.java
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+package org.apache.karaf.jdbc.command.completers;
+
+import org.apache.karaf.jdbc.JdbcService;
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+
+import java.util.List;
+
+/**
+ * Completer on the JDBC datasources file name.
+ */
+public class DataSourcesFileNameCompleter implements Completer {
+
+ private JdbcService jdbcService;
+
+ @Override
+ public int complete(String buffer, int cursor, List<String> candidates) {
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (String datasourceFileName : jdbcService.datasourceFileNames()) {
+ delegate.getStrings().add(datasourceFileName.replace("datasource-", "").replace(".xml", ""));
+ }
+ } catch (Exception e) {
+ // nothing to do
+ }
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+ public JdbcService getJdbcService() {
+ return jdbcService;
+ }
+
+ public void setJdbcService(JdbcService jdbcService) {
+ this.jdbcService = jdbcService;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesJNDINameCompleter.java
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesJNDINameCompleter.java b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesJNDINameCompleter.java
new file mode 100644
index 0000000..c5882a6
--- /dev/null
+++ b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/completers/DataSourcesJNDINameCompleter.java
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+package org.apache.karaf.jdbc.command.completers;
+
+import org.apache.karaf.jdbc.JdbcService;
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+
+import java.util.List;
+
+/**
+ * Completer on the JDBC datasources JNDI name (identifier).
+ */
+public class DataSourcesJNDINameCompleter implements Completer {
+
+ private JdbcService jdbcService;
+
+ @Override
+ public int complete(String buffer, int cursor, List<String> candidates) {
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (String datasource : jdbcService.datasources()) {
+ delegate.getStrings().add(datasource);
+ }
+ } catch (Exception e) {
+ // nothing to do
+ }
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+ public JdbcService getJdbcService() {
+ return jdbcService;
+ }
+
+ public void setJdbcService(JdbcService jdbcService) {
+ this.jdbcService = jdbcService;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
----------------------------------------------------------------------
diff --git a/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml b/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
index 99ad8f7..a6dd978 100644
--- a/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
+++ b/jdbc/command/src/main/resources/OSGI-INF/blueprint/jdbc-command.xml
@@ -30,7 +30,7 @@
<property name="jdbcService" ref="jdbcService"/>
</action>
<completers>
- <ref component-id="datasourcesCompleter"/>
+ <ref component-id="datasourcesFileNameCompleter"/>
<null/>
</completers>
</command>
@@ -44,7 +44,7 @@
<property name="jdbcService" ref="jdbcService"/>
</action>
<completers>
- <ref component-id="datasourcesCompleter"/>
+ <ref component-id="datasourcesJNDINameCompleter"/>
<null/>
</completers>
</command>
@@ -53,7 +53,7 @@
<property name="jdbcService" ref="jdbcService"/>
</action>
<completers>
- <ref component-id="datasourcesCompleter"/>
+ <ref component-id="datasourcesJNDINameCompleter"/>
<null/>
</completers>
</command>
@@ -62,7 +62,7 @@
<property name="jdbcService" ref="jdbcService"/>
</action>
<completers>
- <ref component-id="datasourcesCompleter"/>
+ <ref component-id="datasourcesJNDINameCompleter"/>
<null/>
</completers>
</command>
@@ -71,13 +71,16 @@
<property name="jdbcService" ref="jdbcService"/>
</action>
<completers>
- <ref component-id="datasourcesCompleter"/>
+ <ref component-id="datasourcesJNDINameCompleter"/>
<null/>
</completers>
</command>
</command-bundle>
- <bean id="datasourcesCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesCompleter">
+ <bean id="datasourcesJNDINameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesJNDINameCompleter">
+ <property name="jdbcService" ref="jdbcService" />
+ </bean>
+ <bean id="datasourcesFileNameCompleter" class="org.apache.karaf.jdbc.command.completers.DataSourcesFileNameCompleter">
<property name="jdbcService" ref="jdbcService" />
</bean>
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/core/src/main/java/org/apache/karaf/jdbc/JdbcService.java
----------------------------------------------------------------------
diff --git a/jdbc/core/src/main/java/org/apache/karaf/jdbc/JdbcService.java b/jdbc/core/src/main/java/org/apache/karaf/jdbc/JdbcService.java
index 22393c1..d883a07 100644
--- a/jdbc/core/src/main/java/org/apache/karaf/jdbc/JdbcService.java
+++ b/jdbc/core/src/main/java/org/apache/karaf/jdbc/JdbcService.java
@@ -53,6 +53,13 @@ public interface JdbcService {
List<String> datasources() throws Exception;
/**
+ * List the JDBC datasources configuration file names present in the deploy folder.
+ *
+ * @return a list of the JDBC datasources configuration file names.
+ */
+ List<String> datasourceFileNames() throws Exception;
+
+ /**
* Execute a SQL query on a given JDBC datasource.
*
* @param datasource the JDBC datasource name.
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
----------------------------------------------------------------------
diff --git a/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java b/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
index 9fdefc5..f87eafa 100644
--- a/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
+++ b/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
@@ -36,7 +36,7 @@ public class JdbcMBeanImpl implements JdbcMBean {
try {
CompositeType type = new CompositeType("DataSource", "JDBC DataSource",
new String[]{ "name", "product", "version", "url "},
- new String[]{ "JDBC DataSource Name", "Database product", "Database version", "JDBC URL" },
+ new String[]{ "JNDI Name", "Database product", "Database version", "JDBC URL" },
new OpenType[]{ SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
TabularType tableType = new TabularType("JDBC DataSources", "Table of the JDBC DataSources",
type, new String[]{ "name" });
http://git-wip-us.apache.org/repos/asf/karaf/blob/d5dbcaa5/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
----------------------------------------------------------------------
diff --git a/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java b/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
index da1e5c4..1e11938 100644
--- a/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
+++ b/jdbc/core/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
@@ -173,6 +173,22 @@ public class JdbcServiceImpl implements JdbcService {
}
@Override
+ public List<String> datasourceFileNames() throws Exception {
+ File karafBase = new File(System.getProperty("karaf.base"));
+ File deployFolder = new File(karafBase, "deploy");
+
+ String[] datasourceFileNames = deployFolder.list(new FilenameFilter() {
+
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.startsWith("datasource-") && name.endsWith(".xml");
+ }
+ });
+
+ return Arrays.asList(datasourceFileNames);
+ }
+
+ @Override
public Map<String, List<String>> query(String datasource, String query) throws Exception {
Map<String, List<String>> map = new HashMap<String, List<String>>();
ServiceReference reference = this.lookupDataSource(datasource);