You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2017/12/18 09:36:15 UTC

[karaf] 02/02: [KARAF-5548] Improve the find-class command to support package names

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git

commit 373ee033a5dceee604cca5f4b3ff7a7c6a5c52f7
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon Dec 18 09:17:48 2017 +0100

    [KARAF-5548] Improve the find-class command to support package names
---
 .../java/org/apache/karaf/bundle/command/FindClass.java  | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/FindClass.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/FindClass.java
index 4a9fc75..bcb8c14 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/FindClass.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/FindClass.java
@@ -47,11 +47,23 @@ public class FindClass implements Action {
 
     protected void findResource() {
         Bundle[] bundles = bundleContext.getBundles();
-        String filter = "*" + className + "*";
+        String path;
+        String filter;
+        int idx = className.lastIndexOf('.');
+        if (idx >= 0) {
+            path = className.substring(0, idx).replace('.', '/');
+            if (path.isEmpty() || path.charAt(0) != '/') {
+                path = "/" + path;
+            }
+            filter = className.substring(idx + 1) + ".class";
+        } else {
+            path = "/";
+            filter = "*" + className + "*";
+        }
         for (Bundle bundle:bundles){
             BundleWiring wiring = bundle.adapt(BundleWiring.class);
             if (wiring != null){
-                Collection<String> resources = wiring.listResources("/", filter, BundleWiring.LISTRESOURCES_RECURSE);
+                Collection<String> resources = wiring.listResources(path, filter, BundleWiring.LISTRESOURCES_RECURSE);
                 if (resources.size() > 0){
                     String title = ShellUtil.getBundleName(bundle);
                     System.out.println("\n" + title);

-- 
To stop receiving notification emails like this one, please contact
"commits@karaf.apache.org" <co...@karaf.apache.org>.