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

pnoltes pushed a commit to branch feature/585-celix-conditions
in repository https://gitbox.apache.org/repos/asf/celix.git

commit cb9f45dd4715b76d74850e293f0ecaefad8c9455
Author: Pepijn Noltes <[email protected]>
AuthorDate: Tue Jun 27 20:06:04 2023 +0200

    Fix query command to include framework services
---
 bundles/shell/shell/src/query_command.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/bundles/shell/shell/src/query_command.c 
b/bundles/shell/shell/src/query_command.c
index 490513b9..95c7360c 100644
--- a/bundles/shell/shell/src/query_command.c
+++ b/bundles/shell/shell/src/query_command.c
@@ -20,13 +20,13 @@
 #include <string.h>
 #include <stdlib.h>
 
+#include "celix_bundle.h"
+#include "celix_bundle_context.h"
+#include "celix_constants.h"
 #include "celix_framework.h"
 #include "celix_shell_constants.h"
-#include "celix_bundle_context.h"
-#include "std_commands.h"
-#include "celix_bundle.h"
 #include "celix_utils.h"
-
+#include "std_commands.h"
 
 struct query_options {
     bool useColors;
@@ -143,9 +143,13 @@ static void 
queryCommand_listServices(celix_bundle_context_t *ctx, const struct
     data.nrOfProvidedServicesFound = 0;
     data.nrOfRequestedServicesFound = 0;
 
-    if (opts->bndId >= 0L) {
+    if (opts->bndId >= CELIX_FRAMEWORK_BUNDLE_ID) {
         queryCommand_listServicesForBundle(ctx, opts->bndId, &data, opts, 
sout, serr);
     } else {
+        //query framework bundle
+        queryCommand_listServicesForBundle(ctx, CELIX_FRAMEWORK_BUNDLE_ID, 
&data, opts, sout, serr);
+
+        //query rest of the bundles
         celix_array_list_t *bundleIds = celix_bundleContext_listBundles(ctx);
         for (int i = 0; i < celix_arrayList_size(bundleIds); ++i) {
             long bndId = celix_arrayList_getLong(bundleIds, i);
@@ -199,7 +203,7 @@ bool queryCommand_execute(void *_ptr, const char 
*command_line_str, FILE *sout,
             //check if its a number (bundle id)
             errno = 0;
             long bndId = strtol(sub_str, NULL, 10);
-            if (bndId > 0 && errno == 0 /*not EINVAL*/) {
+            if (bndId >= CELIX_FRAMEWORK_BUNDLE_ID && errno == 0 /*not 
EINVAL*/) {
                 opts.bndId = bndId;
             } else {
                 //not option and not a bundle id -> query

Reply via email to