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

pnoltes pushed a commit to branch feature/gh-509-remove-deprecated-filter-header
in repository https://gitbox.apache.org/repos/asf/celix.git

commit 1cbe1fddbb4438152e03b36042845def3a747d3e
Author: Pepijn Noltes <[email protected]>
AuthorDate: Mon Mar 2 22:20:01 2026 +0100

    Remove filter.h and replace usage with celix_filter.h
---
 .../discovery_common/src/discovery.c               |  3 +-
 .../discovery_etcd/src/discovery_impl.c            |  2 +-
 .../remote_services/topology_manager/src/scope.c   | 34 +++++++-------
 .../topology_manager/src/topology_manager.c        | 10 ++--
 .../include_deprecated/service_registry.h          |  4 +-
 libs/framework/src/service_registry.c              |  8 ++--
 libs/utils/gtest/src/FilterTestSuite.cc            | 22 ---------
 libs/utils/include_deprecated/filter.h             | 54 ----------------------
 libs/utils/src/filter.c                            |  1 -
 .../service/private/include/configuration_store.h  |  4 +-
 .../service/private/src/configuration_store.c      |  2 +-
 11 files changed, 32 insertions(+), 112 deletions(-)

diff --git a/bundles/remote_services/discovery_common/src/discovery.c 
b/bundles/remote_services/discovery_common/src/discovery.c
index 1ef701f6b..a6fd632ef 100644
--- a/bundles/remote_services/discovery_common/src/discovery.c
+++ b/bundles/remote_services/discovery_common/src/discovery.c
@@ -30,7 +30,6 @@
 #include <string.h>
 
 #include "celix_filter.h"
-#include "filter.h"
 #include "celix_threads.h"
 #include "bundle_context.h"
 #include "celix_log_helper.h"
@@ -103,7 +102,7 @@ celix_status_t discovery_endpointListenerAdded(void* 
handle, service_reference_p
                        endpoint_description_t *endpoint = 
hashMapIterator_nextValue(iter);
 
                        bool matchResult = false;
-                       filter_match(filter, endpoint->properties, 
&matchResult);
+                       matchResult = celix_filter_match(filter, 
endpoint->properties);
                        if (matchResult) {
                                endpoint_listener_t *listener = service;
 
diff --git a/bundles/remote_services/discovery_etcd/src/discovery_impl.c 
b/bundles/remote_services/discovery_etcd/src/discovery_impl.c
index 698e38ddb..5b7763485 100644
--- a/bundles/remote_services/discovery_etcd/src/discovery_impl.c
+++ b/bundles/remote_services/discovery_etcd/src/discovery_impl.c
@@ -29,7 +29,7 @@
 #include "bundle_context.h"
 #include "celix_utils.h"
 #include "celix_errno.h"
-#include "filter.h"
+#include "celix_filter.h"
 #include "service_reference.h"
 
 
diff --git a/bundles/remote_services/topology_manager/src/scope.c 
b/bundles/remote_services/topology_manager/src/scope.c
index c9b900a9e..a7532f2e7 100644
--- a/bundles/remote_services/topology_manager/src/scope.c
+++ b/bundles/remote_services/topology_manager/src/scope.c
@@ -24,7 +24,7 @@
 #include "tm_scope.h"
 #include "topology_manager.h"
 #include "celix_utils.h"
-#include "filter.h"
+#include "celix_filter.h"
 
 static bool import_equal(celix_array_list_entry_t src, 
celix_array_list_entry_t dest);
 
@@ -124,7 +124,7 @@ celix_status_t tm_addImportScope(void *handle, char 
*filter) {
         memset(&entry, 0, sizeof(entry));
         entry.voidPtrVal = new;
         int index = celix_arrayList_indexOf(scope->importScopes, entry);
-        filter_pt present = (filter_pt) 
celix_arrayList_get(scope->importScopes, index);
+        celix_filter_t* present = celix_arrayList_get(scope->importScopes, 
index);
         if (present == NULL) {
             celix_arrayList_add(scope->importScopes, celix_steal_ptr(new));
         } else {
@@ -142,12 +142,12 @@ celix_status_t tm_addImportScope(void *handle, char 
*filter) {
 celix_status_t tm_removeImportScope(void *handle, char *filter) {
     celix_status_t status = CELIX_SUCCESS;
     scope_pt scope = (scope_pt) handle;
-    filter_pt new;
+    celix_filter_t* new;
 
     if (handle == NULL)
         return CELIX_ILLEGAL_ARGUMENT;
 
-    new = filter_create(filter);
+    new = celix_filter_create(filter);
     if (new == NULL) {
         return CELIX_ILLEGAL_ARGUMENT; // filter not parsable
     }
@@ -157,19 +157,19 @@ celix_status_t tm_removeImportScope(void *handle, char 
*filter) {
         memset(&entry, 0, sizeof(entry));
         entry.voidPtrVal = new;
         int index = celix_arrayList_indexOf(scope->importScopes, entry);
-        filter_pt present = (filter_pt) 
celix_arrayList_get(scope->importScopes, index);
+        celix_filter_t* present = celix_arrayList_get(scope->importScopes, 
index);
         if (present == NULL)
             status = CELIX_ILLEGAL_ARGUMENT;
         else {
             celix_arrayList_remove(scope->importScopes, present);
-            filter_destroy(present);
+            celix_filter_destroy(present);
         }
         celixThreadMutex_unlock(&scope->importScopeLock);
     }
     if (scope->importScopeChangedHandler != NULL) {
         status = CELIX_DO_IF(status, 
scope->importScopeChangedHandler(scope->manager, filter));
     }
-    filter_destroy(new);
+    celix_filter_destroy(new);
     return status;
 }
 
@@ -228,8 +228,8 @@ celix_status_t scope_scopeDestroy(scope_pt scope) {
 
     if (celixThreadMutex_lock(&scope->importScopeLock) == CELIX_SUCCESS) {
         for (int i = 0; i < celix_arrayList_size(scope->importScopes); i++) {
-            filter_pt element = (filter_pt) 
celix_arrayList_get(scope->importScopes, i);
-            filter_destroy(element);
+            celix_filter_t* element = celix_arrayList_get(scope->importScopes, 
i);
+            celix_filter_destroy(element);
         }
         celix_arrayList_destroy(scope->importScopes);
         celixThreadMutex_unlock(&scope->importScopeLock);
@@ -245,13 +245,11 @@ celix_status_t scope_scopeDestroy(scope_pt scope) {
  * STATIC FUNCTIONS
  *****************************************************************************/
 static bool import_equal(celix_array_list_entry_t src, 
celix_array_list_entry_t dest) {
-    celix_status_t status;
-
-    filter_pt src_filter = (filter_pt) src.voidPtrVal;
-    filter_pt dest_filter = (filter_pt) dest.voidPtrVal;
+    celix_filter_t* src_filter = src.voidPtrVal;
+    celix_filter_t* dest_filter = dest.voidPtrVal;
     bool result;
-    status = filter_match_filter(src_filter, dest_filter, &result);
-    return (status == CELIX_SUCCESS) && result;
+    result = celix_filter_equals(src_filter, dest_filter);
+    return result;
 }
 
 bool scope_allowImport(scope_pt scope, endpoint_description_t *endpoint) {
@@ -262,8 +260,8 @@ bool scope_allowImport(scope_pt scope, 
endpoint_description_t *endpoint) {
             allowImport = true;
         } else {
             for (int i = 0; i < celix_arrayList_size(scope->importScopes); 
i++) {
-                filter_pt element = (filter_pt) 
celix_arrayList_get(scope->importScopes, i);
-                filter_match(element, endpoint->properties, &allowImport);
+                celix_filter_t* element = 
celix_arrayList_get(scope->importScopes, i);
+                allowImport = celix_filter_match(element, 
endpoint->properties);
                 if (allowImport) {
                     break;
                 }
@@ -310,7 +308,7 @@ celix_status_t scope_getExportProperties(scope_pt scope, 
service_reference_pt re
             celix_autoptr(celix_filter_t) filter = 
celix_filter_create(filterStr);
             if (filter != NULL) {
                 // test if the scope filter matches the exported service 
properties
-                status = filter_match(filter, serviceProperties, &found);
+                found = celix_filter_match(filter, serviceProperties);
                 if (found) {
                     struct scope_item *item = (struct scope_item *) 
hashMapEntry_getValue(scopedEntry);
                     *props = item->props;
diff --git a/bundles/remote_services/topology_manager/src/topology_manager.c 
b/bundles/remote_services/topology_manager/src/topology_manager.c
index b7b61ce82..04cd630f7 100644
--- a/bundles/remote_services/topology_manager/src/topology_manager.c
+++ b/bundles/remote_services/topology_manager/src/topology_manager.c
@@ -41,7 +41,7 @@
 #include "celix_bundle.h"
 #include "remote_service_admin.h"
 #include "remote_constants.h"
-#include "filter.h"
+#include "celix_filter.h"
 #include "listener_hook_service.h"
 #include "celix_utils.h"
 #include "service_reference.h"
@@ -690,7 +690,6 @@ celix_status_t topologyManager_rsaRemoved(void * handle, 
service_reference_pt re
 }
 
 celix_status_t topologyManager_exportScopeChanged(void *handle, char 
*filterStr) {
-       celix_status_t status = CELIX_SUCCESS;
        topology_manager_pt manager = (topology_manager_pt) handle;
        service_registration_t *reg = NULL;
        bool found;
@@ -722,13 +721,14 @@ celix_status_t topologyManager_exportScopeChanged(void 
*handle, char *filterStr)
                if (reg != NULL) {
                        props = NULL;
                        serviceRegistration_getProperties(reg, &props);
-                       status = filter_match(filter, props, &found);
+                       found = celix_filter_match(filter, props);
                        if (found) {
                                srvRefs[nrFound++] = reference;
                        }
                }
        }
 
+       celix_status_t status = CELIX_SUCCESS;
        if (nrFound > 0) {
                for (int i = 0; i < nrFound; i++) {
                        // Question: can srvRefs become invalid meanwhile??
@@ -1131,7 +1131,7 @@ celix_status_t 
topologyManager_endpointListenerAdded(void* handle, service_refer
                                status = 
topologyManager_getEndpointDescriptionForExportRegistration(rsaSvcEntry->rsa, 
export, &endpoint);
                                if (status == CELIX_SUCCESS) {
                                        bool matchResult = false;
-                                       filter_match(filter, 
endpoint->properties, &matchResult);
+                                       matchResult = 
celix_filter_match(filter, endpoint->properties);
                                        if (matchResult) {
                                                endpoint_listener_t *listener = 
(endpoint_listener_t *) service;
                                                status = 
listener->endpointAdded(listener->handle, endpoint, (char*)scope);
@@ -1202,7 +1202,7 @@ static celix_status_t 
topologyManager_notifyListenersEndpointAdded(topology_mana
                                celix_status_t substatus = 
topologyManager_getEndpointDescriptionForExportRegistration(rsa, export, 
&endpoint);
                                if (substatus == CELIX_SUCCESS) {
                                        bool matchResult = false;
-                                       filter_match(filter, 
endpoint->properties, &matchResult);
+                                       matchResult = 
celix_filter_match(filter, endpoint->properties);
                                        if (matchResult) {
                                                status = 
epl->endpointAdded(epl->handle, endpoint, (char*)scope);
                                        }
diff --git a/libs/framework/include_deprecated/service_registry.h 
b/libs/framework/include_deprecated/service_registry.h
index 155c8ee72..3b4a9b466 100644
--- a/libs/framework/include_deprecated/service_registry.h
+++ b/libs/framework/include_deprecated/service_registry.h
@@ -21,7 +21,7 @@
 #define SERVICE_REGISTRY_H_
 
 #include "celix_properties.h"
-#include "filter.h"
+#include "celix_filter.h"
 #include "service_factory.h"
 #include "celix_service_event.h"
 #include "celix_array_list.h"
@@ -64,7 +64,7 @@ CELIX_FRAMEWORK_EXPORT celix_status_t 
serviceRegistry_getServiceReference(celix_
 
 CELIX_FRAMEWORK_EXPORT celix_status_t
 serviceRegistry_getServiceReferences(celix_service_registry_t* registry, 
celix_bundle_t *bundle, const char *serviceName,
-                                     filter_pt filter, celix_array_list_t 
**references);
+                                     celix_filter_t* filter, 
celix_array_list_t **references);
 
 CELIX_FRAMEWORK_EXPORT celix_status_t 
serviceRegistry_clearReferencesFor(celix_service_registry_t* registry, 
celix_bundle_t *bundle);
 
diff --git a/libs/framework/src/service_registry.c 
b/libs/framework/src/service_registry.c
index b7e8e7dd7..f8a510617 100644
--- a/libs/framework/src/service_registry.c
+++ b/libs/framework/src/service_registry.c
@@ -327,7 +327,7 @@ static celix_status_t 
serviceRegistry_getServiceReference_internal(service_regis
 celix_status_t serviceRegistry_getServiceReferences(service_registry_pt 
registry,
                                                     bundle_pt owner,
                                                     const char* serviceName,
-                                                    filter_pt filter,
+                                                    celix_filter_t* filter,
                                                     celix_array_list_t** out) {
     bool matchResult;
     celix_autoptr(celix_array_list_t) references = celix_arrayList_create();
@@ -353,7 +353,7 @@ celix_status_t 
serviceRegistry_getServiceReferences(service_registry_pt registry
                 bool matched = false;
                 matchResult = false;
                 if (filter != NULL) {
-                    filter_match(filter, props, &matchResult);
+                    matchResult = celix_filter_match(filter, props);
                 }
                 if ((serviceName == NULL) && ((filter == NULL) || 
matchResult)) {
                     matched = true;
@@ -362,7 +362,7 @@ celix_status_t 
serviceRegistry_getServiceReferences(service_registry_pt registry
                     matchResult = false;
                     serviceRegistration_getServiceName(registration, 
&className);
                     if (filter != NULL) {
-                        filter_match(filter, props, &matchResult);
+                        matchResult = celix_filter_match(filter, props);
                     }
                     if ((strcmp(className, serviceName) == 0) && ((filter == 
NULL) || matchResult)) {
                         matched = true;
@@ -1074,7 +1074,7 @@ static void 
celix_serviceRegistry_serviceChanged(celix_service_registry_t *regis
         bool matchResult = false;
         serviceRegistration_getProperties(registration, &props);
         if (entry->filter != NULL) {
-            filter_match(entry->filter, props, &matchResult);
+            matchResult = celix_filter_match(entry->filter, props);
         }
         matched = (entry->filter == NULL) || matchResult;
         if (matched) {
diff --git a/libs/utils/gtest/src/FilterTestSuite.cc 
b/libs/utils/gtest/src/FilterTestSuite.cc
index ccb32257d..2bafee629 100644
--- a/libs/utils/gtest/src/FilterTestSuite.cc
+++ b/libs/utils/gtest/src/FilterTestSuite.cc
@@ -760,25 +760,3 @@ TEST_F(FilterTestSuite, SubStringWithArrayAttributesTest) {
     EXPECT_TRUE(filter5 != nullptr);
     EXPECT_TRUE(celix_filter_match(filter5, props));
 }
-
-#include "filter.h"
-TEST_F(FilterTestSuite, DeprecatedApiTest) {
-    auto* f1 = filter_create("(test_attr1=attr1)");
-    auto* f2 = filter_create("(test_attr1=attr1)");
-    bool result;
-    auto status = filter_match_filter(f1, f2, &result);
-    EXPECT_EQ(status, CELIX_SUCCESS);
-    EXPECT_TRUE(result);
-
-    const char* str;
-    status = filter_getString(f1, &str);
-    EXPECT_EQ(status, CELIX_SUCCESS);
-    EXPECT_STREQ(str, "(test_attr1=attr1)");
-
-    status = filter_match(f1, nullptr, &result);
-    EXPECT_EQ(status, CELIX_SUCCESS);
-    EXPECT_FALSE(result);
-
-    filter_destroy(f1);
-    filter_destroy(f2);
-}
diff --git a/libs/utils/include_deprecated/filter.h 
b/libs/utils/include_deprecated/filter.h
deleted file mode 100644
index c49efbbdf..000000000
--- a/libs/utils/include_deprecated/filter.h
+++ /dev/null
@@ -1,54 +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.
- */
-
-#ifndef FILTER_H_
-#define FILTER_H_
-
-#include "celix_errno.h"
-#include "celix_properties.h"
-#include "celix_filter.h"
-#include "celix_utils_export.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct celix_filter_struct filter_t __attribute__((deprecated("filter 
is deprecated use celix_filter instead")));
-typedef struct celix_filter_struct *filter_pt 
__attribute__((deprecated("filter is deprecated use celix_filter instead")));
-
-
-CELIX_UTILS_DEPRECATED_EXPORT celix_filter_t* filter_create(const char 
*filterString);
-
-CELIX_UTILS_DEPRECATED_EXPORT void filter_destroy(celix_filter_t *filter);
-
-CELIX_UTILS_DEPRECATED_EXPORT celix_status_t filter_match(
-        celix_filter_t *filter,
-        celix_properties_t *properties,
-        bool *result);
-
-CELIX_UTILS_DEPRECATED_EXPORT celix_status_t 
filter_match_filter(celix_filter_t *src, filter_t *dest, bool *result);
-
-CELIX_UTILS_DEPRECATED_EXPORT celix_status_t filter_getString(celix_filter_t 
*filter, const char **filterStr);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FILTER_H_ */
diff --git a/libs/utils/src/filter.c b/libs/utils/src/filter.c
index 40904df81..0ef8a6da2 100644
--- a/libs/utils/src/filter.c
+++ b/libs/utils/src/filter.c
@@ -31,7 +31,6 @@
 #include "celix_stdio_cleanup.h"
 #include "celix_stdlib_cleanup.h"
 #include "celix_version.h"
-#include "filter.h"
 
 // ignoring clang-tidy recursion warnings for this file, because filter uses 
recursion
 // NOLINTBEGIN(misc-no-recursion)
diff --git 
a/misc/experimental/bundles/config_admin/service/private/include/configuration_store.h
 
b/misc/experimental/bundles/config_admin/service/private/include/configuration_store.h
index 3bd9091da..ce8b83e1f 100644
--- 
a/misc/experimental/bundles/config_admin/service/private/include/configuration_store.h
+++ 
b/misc/experimental/bundles/config_admin/service/private/include/configuration_store.h
@@ -33,7 +33,7 @@
 /* celix.framework */
 #include "bundle_context.h"
 #include "bundle_private.h"
-#include "filter.h"
+#include "celix_filter.h"
 /* celix.config_admin.public */
 #include "configuration.h"
 /* celix.config_admin.private */
@@ -58,7 +58,7 @@ celix_status_t 
configurationStore_findConfiguration(configuration_store_pt store
 
 celix_status_t 
configurationStore_getFactoryConfigurations(configuration_store_pt store, char 
*factoryPid, configuration_pt *configuration);
 
-celix_status_t configurationStore_listConfigurations(configuration_store_pt 
store, filter_pt filter, array_list_pt *configurations);
+celix_status_t configurationStore_listConfigurations(configuration_store_pt 
store, celix_filter_t* filter, array_list_pt *configurations);
 
 celix_status_t configurationStore_unbindConfigurations(configuration_store_pt 
store, bundle_pt bundle);
 
diff --git 
a/misc/experimental/bundles/config_admin/service/private/src/configuration_store.c
 
b/misc/experimental/bundles/config_admin/service/private/src/configuration_store.c
index 4adc7e348..2ceff4644 100644
--- 
a/misc/experimental/bundles/config_admin/service/private/src/configuration_store.c
+++ 
b/misc/experimental/bundles/config_admin/service/private/src/configuration_store.c
@@ -207,7 +207,7 @@ celix_status_t 
configurationStore_getFactoryConfigurations(configuration_store_p
     return CELIX_SUCCESS;
 }
 
-celix_status_t configurationStore_listConfigurations(configuration_store_pt 
store, filter_pt filter, array_list_pt *configurations) {
+celix_status_t configurationStore_listConfigurations(configuration_store_pt 
store, celix_filter_t* filter, array_list_pt *configurations) {
     return CELIX_SUCCESS;
 }
 

Reply via email to