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);