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 #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; }